Texy z db
- cetko
- Člen | 8
Ahoj, bez mučení se přiznávám, že jsem na programování idiot a na objekty zvlášť, ale mám potřebu se něco učit, i když tomu prd rozumím.
Prosím Vás.
Na http://pastebin.com/m15aedca8 mám Default.default.phtml
template a kousek defaultPresenteru.
No a tady je výstup. http://img136.imageshack.us/…texytest.jpg
Zobrazuje stejný text s formátováním Texy po načtení z db, bez formátování ve var_dump po načtení z db, formátováno jako text v template a to samé bez texy formátování.
Pro vás to bude hračka.
V čem prosím Vás dělám chybu ?
Mockrát Vám děkuji.
- cetko
- Člen | 8
No ten nadpis Vítejte při formátování načteného databáze není jako heading a je tam místo toho hr . var_dump je jak to vypadá v db. Text jsem tam zadával copy&paste v phpMyadmin.
Rád bych aby to vypadalo jako při formátování textu napsaného přímo
do template.
Jsem si jist, že problém je ve mne, ale nedokážu si to najít.
- cetko
- Člen | 8
Ověřeno. Je to copy&paste, jen jeden enter, bez mezery a zkoušeno
i s mezerou za Vítejte.
Taky jsem to opsal ručně, a bez zlepšení.
Zkusil jsem i
==Vítejte!
a vypsalo to rovnáse rovnáse Vítejte!. Prostě tak jak je to zapsáno. Ale
**tučně**
mi funguje.
Výstupní zdroják bez block|texy
<h3 style="color: blue;">Text z databáze bez block|texy:</h3>
<div> string(186) "Vítejte! -------- Můžete používat syntax Texy!, pokud Vám vyhovuje: - třeba **tučné** písmo nebo *kurzíva* - a takto se dělá "odkaz":https://texy.info [* image.jpg *]" </div>
Editoval cetko (23. 4. 2009 0:21)
- rokerkony
- Člen | 122
hele ted jsem to vyzkousel nastavil jsem texy stejne jako mas ty, pouzil priklad jako ty (z dema na texy.info) a funguje mi to.. :-/
jediny co delam jinak je ze do sablony prirazuji uz jen hodnotu toho daneho sloupce..
$a = dibi::fetch("SELECT * FROM articles WHERE menuId=111");
$this->template->a = $a->article_text; // konkretni text (Vitejte! ........)
sablona pak vypada:
{block|texy}
{$a}
{/block}
ale to by nemel byt problem…
zkus jeste vyuzit ladenky a napsat v presenteru
Debug::dump($promenna_s_textem_v_texy);exit;
(ladenku povolis v bootstrap.php prikazem Debug::enable(); to ale predpokladam mas(je to uzitecny nastroj) … ta zachovava radky (ne jako var_dump)…
- cetko
- Člen | 8
Laděnku jsem si zapnul. Bez toho bych nemohl fungovat a všechno by mi trvalo o 14 dní déle :-)
Výstup nefunkční:
string(185) "Vítejte!
--------
Můžete používat syntax Texy!, pokud Vám vyhovuje:
- třeba **tučné** písmo nebo *kurzíva*
- a takto se dělá "odkaz": ... "
funkční:
string(187) "
Vítejte!
--------
Můžete používat syntax Texy!, pokud Vám vyhovuje:
- třeba **tučné** písmo nebo *kurzíva*
- a takto se dělá "odkaz ... "
Může to být podivná kombinace verzí MySql,Nette,dibi, texy ?
Zkusil jsem si to na jiném příkladu:
Vítejte!
########
Vítejte!
********
Vítejte!
========
Vítejte!
--------
První se nepovedl, další 3 ano. Když jsem dal enter před první Vítejte, tak to bylo v pořádku.
Děkuji za pomoc. Určitě se v budoucnu opět na Vás obrátím.
- _Martin_
- Generous Backer | 679
Zvláštní, mě vše funguje bez prvního odřádkování.
Načtení Texy:
/**
* @return ITemplate
*/
protected function createTemplate()
{
$template = parent::createTemplate();
$template->registerFilter('Nette\Templates\CurlyBracketsFilter::invoke');
$texy = new Texy;
$texy->encoding = 'utf-8';
$texy->allowedTags = Texy::NONE;
$texy->allowedStyles = Texy::NONE;
$texy->setOutputMode(Texy::HTML4_TRANSITIONAL);
$template->registerHelper('texy', array($texy, 'process'));
return $template;
}
Text v DB vložený přes phpMyAdmina:
Vítejte!
========
Můžete používat syntax Texy!, pokud Vám vyhovuje:
- třeba **tučné** písmo nebo *kurzíva*
- a takto se dělá "odkaz":[...]
Způsob získání dat z DB:
$this->model = new Pages;
$page = $this->model->getPage($category, $id); // dělá zhruba: return dibi::query('SELECT ... ')->fetch();
$this->template->title = $page->name;
$this->template->text = $page->text;
Šablona:
{!$text|texy}
<!-- ovšem funguje i toto: -->
{block|texy}
{!$text}
{/block}
Zkoušeno na revizi 280.
- cetko
- Člen | 8
Tabulátor za to může. Tak to je ONO.
{block|texy}
<?php echo $radek["clanek"] ?>
{/block}
je něco jiného než
{block|texy}
<?php echo $radek["clanek"] ?>
{/block}
Tak byl to nakonec userproblem :-)
Pardon, že jsem otravoval.
P.S: Každopádně budu používat Nette syntax.
Editoval cetko (25. 4. 2009 10:44)
- Ondřej Mirtes
- Člen | 1536
A není úplně nejjednodušší použít
{!$radek->clanek |texy}
? (v objektu to je, pokud
používáš dibi)
- David Grudl
- Nette Core | 8228
V Texy nesmí mít titulek levostrannou mezeru, tj. tohle je titulek:
Titulek
-------
a tohle není:
ahoj ---
Ta mezera před <?php echo
se nalepila před titulek a tím
jej zneplatnila.
- cetko
- Člen | 8
LastHunter napsal(a):
A není úplně nejjednodušší použít
{!$radek->clanek |texy}
? (v objektu to je, pokud používáš dibi)
Je. Taky píšu, že budu používat Nette syntaxi a přivedl mne k tomu _Martin_. Jak jsem v úvodním příspěvku psal, jsem na skriptování jaksi ehm a na objekty ještě větší.
David Grudl napsal(a):
V Texy nesmí mít titulek levostrannou mezeru, tj. tohle je titulek:
Ano. Už mi to taky docvaklo. Nette syntaxí se moje nepozornost eliminuje a
používám nyní {!$radek["clanek"]|texy}
, ale
začnu {!$radek->clanek |texy}
Editoval cetko (25. 4. 2009 15:37)