Texy z db

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
cetko
Člen | 8
+
0
-

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.

xificurk
Člen | 121
+
0
-

Nikde :-)

Možná by to chtělo taky uvést očekávané chování ;)

cetko
Člen | 8
+
0
-

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.

rokerkony
Člen | 122
+
0
-

podle me to mas spatne ulozene v DB… cili ze pred ------- mas vic entru nebo podobne… zkus to overit :)

p.s.: podivej se do zdrojaku co presne ti vraci:
→ Text z databáze bez block|texy:

Editoval rokerkony (23. 4. 2009 0:12)

cetko
Člen | 8
+
0
-

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)

cetko
Člen | 8
+
0
-

Tak jsem to dokázal.

Musel jsem dát ENTER před Vítejte!

Asi je tam nějaký špatný znak který nevidím

rokerkony
Člen | 122
+
0
-

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
+
0
-

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
+
0
-

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
+
0
-

Mne to dělá v 281 a 283. Zkusím pak updatovat mysql.
A nebo je ta chyba tak jasná, že na to nikdo nekouká. :)

_Martin_
Generous Backer | 679
+
0
-

Ten můj kód funguje i v revizi 283. PHP verze 5.2.6, MySQL verze 5.0.51b, kódování UTF-8 a PHP klient pro připojení k DB je mysqli.

cetko
Člen | 8
+
0
-

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
+
0
-

A není úplně nejjednodušší použít {!$radek->clanek |texy} ? (v objektu to je, pokud používáš dibi)

David Grudl
Nette Core | 8144
+
0
-

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
+
0
-

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)