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}">&lt; 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)