Oznámení
Provoz fóra byl ukončen
Odlišné chování na serveru
před 10 lety
- LastHunter
- Člen | 1539
Právě jsem dokončil jeden web, na localhostu Texy fungovalo bez problému, ovšem na serveru mi nebere určitou syntaxi! Např. nadpisy, seznamy, zápis modifikátorů pro bloky. Odstavce a obrázky ovšem vytváří.
Zde je třída, ze které Texy vytvářím (není to ideálně napsané, psal jsem to už dávno):
class Factories extends NObject {
private static $texyAdminInstance;
private static $texyPublicInstance;
/**
* Texy instance getter
* @param boolean $public True if public Texy, false if not
* @return Texy
*/
public static function getTexy($public=false) {
if ($public) {
if (self::$texyPublicInstance == null) self::initTexy(true);
return self::$texyPublicInstance;
}
else {
if (self::$texyAdminInstance == null) self::initTexy(false);
return self::$texyAdminInstance;
}
}
private static function initTexy($public) {
$texy = new Texy();
$texy->encoding = 'utf-8';
$texy->setOutputMode(Texy::XHTML1_STRICT);
$texy->headingModule->balancing = TexyHeadingModule::FIXED;
Texy::$advertisingNotice = false;
$baseUri = NEnvironment::getHttpRequest()->getUri()->basePath;
$dirConfig = NEnvironment::getConfig('dir')->images;
$texy->imageModule->linkedRoot = $baseUri.$dirConfig;
$texy->imageModule->root = $baseUri.$dirConfig;
$texy->imageModule->fileRoot = WWW_DIR.'/'.$dirConfig;
$texy->allowed['phrase/del'] = true; // --deleted--
if ($public) {
TexyConfigurator::safeMode($texy);
$texy->allowedTags = Texy::NONE;
$texy->allowedStyles = Texy::NONE;
$texy->allowedClasses = Texy::NONE;
$texy->allowed['heading/underlined'] = FALSE;
$texy->allowed['heading/surrounded'] = FALSE;
$texy->allowed['horizline'] = FALSE;
$texy->allowed['blocks'] = FALSE;
$texy->allowed['blockquote'] = FALSE;
$texy->allowed['list'] = FALSE;
$texy->allowed['list/definition'] = FALSE;
$texy->allowed['script'] = FALSE;
$texy->allowed['table'] = FALSE;
$texy->allowed['phrase/cite'] = false;
} else $texy->addHandler('script', array('Factories','insertFlash'));
if ($public) self::$texyPublicInstance = $texy;
else self::$texyAdminInstance = $texy;
}
//just for Texy! purpose
public static function insertFlash($invocation, $cmd, $args, $raw) {
switch ($cmd) {
case 'flash':
$movie = Texy::escapeHtml($args[0]);
$width = $args[1];
$height = $args[2];
if (isset($args[3])) $vars = Texy::escapeHtml($args[3]);
$output = '<!--[if !IE]> -->
<object type="application/x-shockwave-flash" data="'.$movie.'" width="'.$width.'" height="'.$height.'">
<!-- <![endif]-->
<!--[if IE]>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"
width="'.$width.'" height="'.$height.'">
<param name="movie" value="'.$movie.'" />
<!--><!--dgx-->
<param name="loop" value="true" />
<param name="menu" value="false" />';
if (isset($vars)) $output .='<param name="flashvars" value="'.$vars.'" />';
$output .= '</object>
<!-- <![endif]-->';
return $invocation->texy->protect($output, Texy::CONTENT_MARKUP);
default: // neumime zpracovat, zavolame dalsi handler v rade
return $invocation->proceed();
}
}
}
Takto registruji Texy jako helper do Nette šablon:
$template->registerHelper('texy', array(Factories::getTexy(), 'process'));
$template->registerHelper('texyPublic', array(Factories::getTexy(true), 'process'));
A takto vypadá šablona (je to statický web):
{block #title}Kúpeľný dom Aphrodite | {/block}
{block #content}
<p><a href="{link default}">< Spät na galérii</a></p>
{* check https://texy.info/ for syntax *}
{block |texy}
Kúpeľný dom Aphrodite, Rajecké Teplice
**********
- kompletné zastrešenie bazénovej časti z lepených lamelových nosníkov
- realizované v roku 1999
- celkový objem dreva 212m^3
- súčasťou stavby bolo aj premostenie z kúpeľného domu do hotelu Veľká Fatra
[* galeria/kupelny-dom-aphrodite-1.jpg *]
[* galeria/kupelny-dom-aphrodite-2.jpg *]
{/block}
EDIT: Jasně, je to aplikováním strip filtru :)) Šel by upravit, aby v šablonách nesahal do {block} úseků (nemyslím tím {block #content}, ale využití právě jen pro helper, jako v případě {block |texy}), nebo chci už moc? :)
Editoval LastHunter (17. 9. 2009 23:25)