Mallineprojektiin liittyvät työkalut sekä niiden kehittäminen ja käyttö.

Mallineiden ja navigaatiomallineiden ylläpitotyökaluMuokkaa

Sisäänrakennetut toiminnallisuudetMuokkaa

  1. Tunnistus mallineluokan ja navigaatiomallineluokan välillä: Ei sotke luokkapolkuja näiden kahden välillä
  2. Ylätunnisteen muotoilu, <includeonly>...</includeonly><noinclude>...</noinclude> tuki
  3. Tason mukainen otsikointi
  4. Luokkien lisäys ulostuloon

KäyttöMuokkaa

Aloittava luokka: Luokka josta aloitetaan mallineiden nouto
Vain tämä luokka: Aloittavan luokan alaluokkia ei käydä läpi
Ei otsikoita: Jättää otsikkotason tiedot pois
Ylätunniste: Tulostetaan läpikäytävän luokan alussa
Muotoilu: Tulostetaan jokaisen mallineen kohdalla. Muotoilussa käytetään sprintf-muotoilua, joka lisää %s kohdalle (annetussa järjestyksessä): Mallineen nimi, luokkaan lisäyspäivä, mallineen nimi, mallineen nimi, mallineen nimi, mallineen nimi, mallineen nimi, mallineen nimi, mallineen nimi, mallineen nimi, mallineen nimi
Alatunniste: Tulostetaan jokaisen läpikäydyn luokan lopussa

OngelmatMuokkaa

  1. Asetukset / luokka löytyy vain mallinesivulta
  2. Muotoilun vaihto alaluokittain ei onnistu, vaan data tulee noutaa yksittäisen luokkahaaran poikkeusluokalle erikseen
  3. Muotoilun vaihto mallinettain ei onnistu, vaan vaihto tulee suorittaa manuaalisesti
  4. <includeonly> luettelomuotoilu joka kolmannessa tapauksessa huonoa suomea
  5. <includeonly> luettelo toteutettava manuaalisesti tapauksissa jossa aloittava luokan alaluokat on jaettu useammalle sivulle

KehitysehdotuksiaMuokkaa

Oletusmuotoilut ja luokka- sekä mallinekohtaiset poikkeustapauksetMuokkaa

Jos työkalulle annettaisiin URl-parametrina ID, työkalu automaattisesti noutaisi oletusmuotoilut ja aloittavan luokan. Lisäksi uudistus lisäisi luokille luettelotulosteen, jolloin yläsivujen luetteloita voitaisiin kontrolloida luokkatasolla. Uudistuksessa voitaisiin ottaa mukaan myös poikkeusmallineet, jotka käyttäisivät erikoismuotoilua oletusmuotoilun sijasta (esim. taulukon päättävät mallineet, tynkämallineet jne.).

Tietokantataulu: MuotoilutMuokkaa
CREATE TABLE IF NOT EXISTS Muotoilut (
    MuotoilutId INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
    Muotoilu TEXT NOT NULL
)
ENGINE=InnoDB;
Tietokantataulu: LuokatMuokkaa
CREATE TABLE IF NOT EXISTS Luokat (
    LuokatId INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
    Nimi VARCHAR(255) NOT NULL,
    Luettelotuloste VARCHAR(255) NULL,
    YlatunnisteId INT UNSIGNED NOT NULL,
    MuotoiluId INT UNSIGNED NOT NULL,
    AlatunnisteId INT UNSIGNED NOT NULL,
    UNIQUE(Nimi),
    INDEX YId (YlätunnisteId),
    INDEX MId (MuotoiluId),
    INDEX AId (AlatunnisteId),
    FOREIGN KEY (YlätunnisteId) REFERENCES Muotoilut(MuotoilutId)
        ON UPDATE CASCADE ON DELETE SET NULL,
    FOREIGN KEY (MuotoiluId) REFERENCES Muotoilut(MuotoilutId)
        ON UPDATE CASCADE ON DELETE SET NULL,
    FOREIGN KEY (AlatunnisteId) REFERENCES Muotoilut(MuotoilutId)
        ON UPDATE CASCADE ON DELETE SET NULL
)
ENGINE=InnoDB;
Tietokantataulu: MallineetMuokkaa
CREATE TABLE IF NOT EXISTS Mallineet (
    MallineetId INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
    Nimi VARCHAR(255) NOT NULL,
    NimiOnRegex TINYINT(1) UNSIGNED NOT NULL DEFAULT 0,
    MuotoiluId INT UNSIGNED NOT NULL,
    UNIQUE(Nimi),
    INDEX MId (MuotoiluId),
    FOREIGN KEY (MuotoiluId) REFERENCES Muotoilut(MuotoilutId)
        ON UPDATE CASCADE ON DELETE SET NULL
)
ENGINE=InnoDB;
Tietokantataulu: OletusmuotoilutMuokkaa
CREATE TABLE IF NOT EXISTS Mallineet (
    OletusmuotoilutId INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
    AloittavaLuokkaId INT UNSIGNED NOT NULL,
    VainTamaLuokka TINYINT(1) UNSIGNED NOT NULL DEFAULT 0,
    YlikirjoitaAlaluokkienMuotoilut TINYINT(1) UNSIGNED NOT NULL DEFAULT 0,
    YlikirjoitaPoikkeusmallineidenMuotoilut TINYINT(1) UNSIGNED NOT NULL DEFAULT 0,
    ExtraIncludeonly TEXT NULL,
    ExtraNoInclude TEXT NULL,
    ExtraLuokat TEXT NULL,
    INDEX OId (OletusmuotoilutId),
    FOREIGN KEY (OletusmuotoilutId) REFERENCES Luokat(LuokatId)
        ON UPDATE CASCADE ON DELETE SET NULL
)
ENGINE=InnoDB;
Huomioitavia seikkojaMuokkaa
  1. Ylläpito vain salasanasuojatusti
  2. Käyttöönotto hidasta: Monimutkainen ohjelmoitava ja pitkä oletusdatan keräysprosessi
  3. Jääkö työkalu paitsioon: Päivittyykö fiwiki liian nopeasti?