Xoops a seznamy

Datum 14. 10. 2019 v 10:16 | Rubrika: Zápisník pojídačky koláčů pro Xoops

     Dlouho jsem v Xoopsu postrádala možnost vložit seznam. Jediná možnost byla použít HTML tagy UL, OL a LI a do článku je vložit ručně. Pořád to ale dělalo neplechu a zobrazovalo se to nějak divně, takže jsem seznamy dělala spíše prostým formátováním textu. Není to nijak moc pohodlné ani elegantní, ale bylo to funkční. Dneska však pohár mé trpělivosti přetekl a řekla jsem si, že když jsem uměla Xoops naučit zkratky, tak jej naučím i seznamy. A ponořila jsem se do hlubin redakčního systému.

     K mému překvapení jsem zjistila, že základní podpora seznamů v Xoopsu již je, takže nebylo třeba vynalézat kolo a stačilo si nastudovat, jak to vlastně funguje a následně tuto podporu o něco vylepšit. Výsledek mého snažení si dneska ukážeme.
     Nejprve je třeba najít soubor XOOPSROOT/CLASS/TEXTSANITIZER/LI/li.php a v něm najít tuto část:

public function load($ts)
    {
        
$ts->patterns[]     = "/[li](.*)[/li]/sU";
        
$ts->replacements[] = '<li>\1</li>';

        return 
true;
    }


     Tato funkce je zodpovědná za vytvoření odrážek seznamu. Jak vidíte, umí jen základní použití bez jakýchkoli parametrů. To se mi nelíbilo a tak jsem funkci změnila takto:

{
        
$ts->patterns[]     = "/[li](.*)[/li]/sU";
        
$ts->replacements[] = '<li>\1</li>';
        
        
$ts->patterns[] = "/[li=(.*)](.*)[/li]/sU";
        
$ts->replacements[] = '<li type="\1">\2</li>';        

        return 
true;
    }


     Čímž jsem původní funkci rozšířila o možnost předání parametru tagu LI a tím je možné vytvářet různé seznamy, jak číslované, tak nečíslované. Nečíslovaných seznamů s odrážkami existují čtyři typy:

- bez parametru
- parametr circle
- parametr disc
- parametr square

     Pokud tagu LI zkusíte předat jiný parametr, tak jej bude ignorovat a zachová se tak, jako kdyby parametr nebyl vůbec předaný. Přesné chování záleží na tom kterém prohlížeči. Na předchozím seznamu také vidíte dosavadní praxi ve vytváření seznamů. Naštěstí to již jde dělat lépe

     Nečíslovaný seznam bez jakéhokoli zadaného parametru. Výsledkem je seznam s odrážkami, které dodává prohlížeč a proto jejich tvar závisí na prohlížeči a jeho nastavení.

  • První odrážka
  • Druhá odrážka
  • Třetí odrážka
  • Čtvrtá odrážka
  • Pátá odrážka


[ul]
[
li]První odrážka[/li]
[
li]Druhá odrážka[/li]
[
li]Třetí odrážka[/li]
[
li]Čtvrtá odrážka[/li]
[
li]Pátá odrážka[/li]
[/
ul]


     Nečíslovaný seznam s parametrem „circle“. Jako odrážka je použitá kružnice.

  • První odrážka
  • Druhá odrážka
  • Třetí odrážka
  • Čtvrtá odrážka
  • Pátá odrážka


[ul]
[
li=circle]První odrážka[/li]
[
li=circle]Druhá odrážka[/li]
[
li=circle]Třetí odrážka[/li]
[
li=circle]Čtvrtá odrážka[/li]
[
li=circle]Pátá odrážka[/li]
[/
ul]


     Nečíslovaný seznam s parametrem „disc“. Jako odrážka je použitý kroužek.

  • První odrážka
  • Druhá odrážka
  • Třetí odrážka
  • Čtvrtá odrážka
  • Pátá odrážka


[ul]
[
li=disc]První odrážka[/li]
[
li=disc]Druhá odrážka[/li]
[
li=disc]Třetí odrážka[/li]
[
li=disc]Čtvrtá odrážka[/li]
[
li=disc]Pátá odrážka[/li]
[/
ul]


     Nečíslovaný seznam s parametrem „square“. Jako odrážka je použitý plný obdélníček.

  • První odrážka
  • Druhá odrážka
  • Třetí odrážka
  • Čtvrtá odrážka
  • Pátá odrážka


[ul]
[
li=square]První odrážka[/li]
[
li=square]Druhá odrážka[/li]
[
li=square]Třetí odrážka[/li]
[
li=square]Čtvrtá odrážka[/li]
[
li=square]Pátá odrážka[/li]
[/
ul]


     Každá odrážka může mít parametr nastavený jinak, takže lze kombinovat všechny čtyři předchozí možnosti.

  • První odrážka
  • Druhá odrážka
  • Třetí odrážka


[ul]
[
li=circle]První odrážka[/li]
[
li=disc]Druhá odrážka[/li]
[
li=square]Třetí odrážka[/li]
[/
ul]


     Přejděme na číslované seznamy. Ačkoli je tag UL určený pro nečíslované seznamy, umí udělat seznam číslovaný, ačkoli na to byl původně určený tag OL. Proč tomu tak je patří k záhadám dnešního webu a doby.

     Jednoduchý číslovaný seznam dostaneme nastavením parametru na „1“:

  • První odrážka
  • Druhá odrážka
  • Třetí odrážka
  • Čtvrtá odrážka
  • Pátá odrážka


[ul]
[
li=1]První odrážka[/li]
[
li=1]Druhá odrážka[/li]
[
li=1]Třetí odrážka[/li]
[
li=1]Čtvrtá odrážka[/li]
[
li=1]Pátá odrážka[/li]
[/
ul]


     Pokud chcete seznam s velkými písmeny, použijeme parametr „A“:

  • První odrážka
  • Druhá odrážka
  • Třetí odrážka
  • Čtvrtá odrážka
  • Pátá odrážka


[ul]
[
li=A]První odrážka[/li]
[
li=A]Druhá odrážka[/li]
[
li=A]Třetí odrážka[/li]
[
li=A]Čtvrtá odrážka[/li]
[
li=A]Pátá odrážka[/li]
[/
ul]


     Seznam s malými písmenky dostaneme použitím parametru „a“:

  • První odrážka
  • Druhá odrážka
  • Třetí odrážka
  • Čtvrtá odrážka
  • Pátá odrážka


[ul]
[
li=a]První odrážka[/li]
[
li=a]Druhá odrážka[/li]
[
li=a]Třetí odrážka[/li]
[
li=a]Čtvrtá odrážka[/li]
[
li=a]Pátá odrážka[/li]
[/
ul]



     Parametr nastavený na „I“ vytvoří seznam číslovaný římskými čísly:

  • První odrážka
  • Druhá odrážka
  • Třetí odrážka
  • Čtvrtá odrážka
  • Pátá odrážka


[ul]
[
li=I]První odrážka[/li]
[
li=I]Druhá odrážka[/li]
[
li=I]Třetí odrážka[/li]
[
li=I]Čtvrtá odrážka[/li]
[
li=I]Pátá odrážka[/li]
[/
ul]


     A parametr „i“ vytvoří seznam číslovaný malými římskými čísly:

  • První odrážka
  • Druhá odrážka
  • Třetí odrážka
  • Čtvrtá odrážka
  • Pátá odrážka


[ul]
[
li=i]První odrážka[/li]
[
li=i]Druhá odrážka[/li]
[
li=i]Třetí odrážka[/li]
[
li=i]Čtvrtá odrážka[/li]
[
li=i]Pátá odrážka[/li]
[/
ul]


     Všechny parametry lze kombinovat, takže vznikne následující seznam:

  • První odrážka
  • Druhá odrážka
  • Třetí odrážka
  • Čtvrtá odrážka
  • Pátá odrážka


[ul]
[
li=1]První odrážka[/li]
[
li=A]Druhá odrážka[/li]
[
li=a]Třetí odrážka[/li]
[
li=I]Čtvrtá odrážka[/li]
[
li=i]Pátá odrážka[/li]
[/
ul]


     I u číslovaných seznamů platí, že pokud předáme neznámý parametr, tak jej bude prohlížeč ignorovat a zachová se stejně, jako kdyby parametr předaný nebyl. A stejně jako u nečíslovaných seznamů platí, že přesně chování záleží na tom kterém prohlížeči.

     Když jsem měla úpravu souboru li.php hotovou, tak bylo ve zdrojovém souboru stránky vidět, že to funguje, nicméně výsledek v prohlížeči byl pořád stejný, modrý text se čtvercovými odrážkami. Zkoumáním prvků jsem přišla na to, že jsou seznamy formátované i pomocí CSS a proto jsem začala hledat a nakonec toto formátování našla v souboru style.css, který je v adresáři s tématem (THEMES). Takže pokud se pro úpravu svého Xoopsu rozhodnete, všechno dobře uděláte a stejně to nebude pořádně fungovat, podívejte se ještě na stylopis, jestli tam není formátování seznamů. Hledejte něco podobného:

ul margin2pxpadding2px; list-styledecimal insidetext-alignleft;} 
li margin-left2px; list-stylesquare insidecolor#2F5376}


     Přičemž je potřeba smazat parametr „list-style“.

     Po těchto drobných změnách je Xoops zase o něco lepší a přítulnější. Pokud se pro úpravu svého Xoopsu také rozhodnete, budu ráda. Předem si ale raději zazálohujte původní soubory, člověk nikdy neví. A také je dobré promazat vyrovnávací paměť systému, aby se změny projevily okamžitě.


Použitá literatura:

https://www.jakpsatweb.cz/html/seznamy.html
https://www.zirafoviny.cz/modules/news/article.php?storyid=128



Článek pochází z webu Žirafoviny.cz
https://www.zirafoviny.cz

URL tohoto článku je:
https://www.zirafoviny.cz/modules/news/article.php?storyid=700