Oznámení

Provoz fóra byl ukončen

Kde co upravit v TexyListModule

před 12 lety

bigfood
Člen | 9

Zdravím všechny T(S)exysty!

Chtěl bych TexyListModule upravit tak, aby se před každou položku odrážkovaného seznamu (<ul>) přidával nějaký text, respektive textová odrážka. Pro lepší pochopení – aby z tohoto textu:

- první odrážka
- druhá odrážka

při převedení pomocí Texy! 1.1 vylezl tento kód:

<ul>
<li><span>-</span> první odrážka </li>
<li><span>-</span> druhá odřážka </li>
</ul>

Důležité je, aby to tak dělalo u všech úrovní odrážkovaného seznamu ale nikdy u seznamů jiných typů, například číslovaného (<ol>).

PS: 2dgx: Zajímalo by mne, jestli mi někdy odpovíš na mailovou žádost o udělení placené licence na používání Texy!

Editoval bigfood (19. 6. 2007 9:55)

před 12 lety

Honza M.
Člen | 1674

Asi bych si udělal obrázek s pomlčkou a nastavil ho v css. Ale nevim, jestli je to to, co zamýšlíš :p

http://www.jakpsatweb.cz/…t-style.html

před 12 lety

David Grudl
Nette Core | 6806

Jde to udělat v Texy2:

class myHandler
{

    /**
     * User handler for lists
     * @param TexyBlockParser
     * @param TexyHtml
     * @param TexyModifier
     * @return void
     */
    public function afterList($parser, $element, $modifier)
    {
        foreach ($element->getChildren() as $li)
        {
            // $li is TexyHtml element 'li'

            // $bullet = <span>-</span>
            $bullet = TexyHtml::el('span')->setText('-');

            // prepend $bullet to the front of children of $li
            $li->insert(0, $bullet);
        }
    }

}


$texy = new Texy;
$texy->handler = new myHandler;

ad email: jdu ho pohledat :-)

před 12 lety

bigfood
Člen | 9

Škoda, opravdu to nejde udělat i pro Texy 1.1? Klient má totiž samozřejmě jako na potvoru hosting s PHP 4. Četl jsem sice o tvém převodníku z PHP 5 na PHP 4, ale cituji: „Převodník se pochlapil, úkol zvládl výborně a stačilo jen několik manuálních zásahů do kódu.“ Natolik jsem ještě do tvého systému nepronikl (ani nezmiňuju, že v OOP v PHP ještě moc dobře plavat neumím), abych těch několik manuálních zásahů do kódu provedl úspěšně. A na adrese https://texy.info/cs/texy2-php4 jsem nenašel žádný odkaz na stažení Texy2 pro PHP 4. Snad nejsem slepý…

Pokud by to tedy opravdu nešlo, nemohl bys prosím aspoň pověsit někam na web Texy2 pro PHP 4?

PS: Nehledej e-mail, jenž mám zde v profilu, hledej xhon[zavináč]seznam[tečka]cz ;)

před 12 lety

David Grudl
Nette Core | 6806

Samozřejmě dávám verzi pro PHP4 od začátku ke stažení. Stáhni Texy2

před 12 lety

bigfood
Člen | 9

Takže jsem slepý, jak jsem předpokládal. Díky moc.

před 12 lety

bigfood
Člen | 9

Poslušně hlásím, že daný postup nesplňuje jednu moc důležitou podmínku, kterou jsem již znínil. Textová odrážka se nemá přidávat i do číslovaného seznamu. Možná je řešení jednoduché, prosím o dodatečnou pomoc… (Čistě teoreticky, všechno by stanovila podmínka: Když je rodič daného li element ul, pak přidej odrážku. Teď jen, jak ji napsat)

//edit: Zatím to šlo velice jednoduše vyřešit pomocí CSS a vlastnosti visibility, což ale není ideální pro prohlížení bez CSS – PDA, Mobily atd.

Editoval bigfood (29. 6. 2007 23:21)

před 12 lety

David Grudl
Nette Core | 6806

Je to podmínka if ($element->getName() === 'ul') ....

před 12 lety

bigfood
Člen | 9

Bohužel, nefunguje to tak, jak má s php verze 4. Pro jistotu jsem tvůj navrhovaný skript ještě převedl tvým PHP5 → PHP4 převodníkem a přesto to vypisuje tuto hlášku:

Parse error: syntax error, unexpected T_OBJECT_OPERATOR in /www/o/okna-dvere/public_html/texy-nastaveni.php on line 26

V texy-nastaveni.php je na řádku 26 toto:

$bullet = TexyHtml::el(‚span‘)->setText(‚»‘);

Kde je prosímtě chyba.. Já vím, už tě dlouho otravuju…

před 12 lety

David Grudl
Nette Core | 6806

V PHP4 neexistovalo zřetězení TexyHtml::el('span')->setText('-'), takže je potřeba psát $el = TexyHtml::el('span'); $el->setText('-'); ...

před 12 lety

bigfood
Člen | 9

Takže oficiálně hlásím bug tvého převodníku :-) viz. http://www.dgx.cz/tools/php-5to4/?…

před 12 lety

David Grudl
Nette Core | 6806

Ano, tohle převodník neumí. Není to bug, jen neexistující schopnost.

před 12 lety

bigfood
Člen | 9

Omlouvám se, nicméně díky moc za všechnu pomoc, je to všechno nesmírně elegantní a jednoduché.

Teď už jen zbývá dořešit tu licenci na používání Texy2 pro komerční účely, neboť za tohle by sis zasloužil víc než jen uznání. V brzké době pošlu email s pár dotazy, jehože předmět bude „Komerční licence – Texy! 2“ a jehož odesílatel bude xhon[zavináč]seznam[tečka]cz.