smarty не должен анализировать файл javascript - PullRequest
2 голосов
/ 28 апреля 2011

через stackoverlfow и google я нашел много вещей для этого и много жалоб и в основном все. следовательно, я должен быть совершенно глуп, чтобы достичь этого, но я хочу, чтобы моя умница не разбирала мой javascript.

Каким-то образом это делает это. Как в документации указано: {} {Буквальным / буквальным} избегает блоков от анализа js. Тем не менее, это работает нормально. Например, этот шаблон: http://pastebin.com/nfM1S1D8

Работает как надо ... НО

все, что написано в этих вещах, полностью анализируется и игнорируется сверху вниз. Я мог бы написать 100 раз {буквальный} в этом файле, и это не даст крысам задницу об этом. И это не только это. Также моя умная вещь уничтожает мой jquery142min и мой файл jqueryui1812min. Я больше не могу использовать jquery: (((

Может кто-нибудь сказать мне, как я становлюсь умнее, чтобы не заботиться о целом файле? Я не собираюсь вставлять файл jqueryUI просто чтобы показать, что он выглядит так: {Буквальным} JQuery UI-код {/ Буквальным}

Поверьте мне, ребята, я попробовал это с

    $smarty->left_delimiter = '<!--{';
$smarty->right_delimiter = '}-->';

Но это не так хорошо работает - и ДА, я действительно удалил кеш, которого нет, поскольку я не кеширую, и ДА, я действительно удаляю скомпилированные представления каждый раз!

Итак, вы видите, что я, должно быть, слишком глуп, чтобы решить это здесь, но я надеюсь, что у кого-то есть ответ на этот вопрос.

PS: структура и код smarty: http://img560.imageshack.us/f/smarty.png/

@ редактировать: «Файл js будет вызываться со ссылкой на файл PHP, который вызывает шаблон. Путь будет зависеть не от того, где находится шаблон smart y, а от того, где находится вызывающий файл php.»

не относится ко мне, так как я могу открыть после разбора js-файлов

Ответы [ 2 ]

1 голос
/ 28 апреля 2011

Я не уверен, что происходит для вас, но вы делаете неправильно, но я дам вам несколько основ

вам не нужно

 {literal}.... {/literal}

, чтобы включитьфайл, пример

 <script type="text/javascript" src="{$prefix}js/jquery.form.2.64.js"></script>

НЕ УСТАНАВЛИВАЙТЕ ЛИТЕРАЛЬНУЮ ТЭГ В ЗАГРУЖЕННЫЕ ФАЙЛЫ JS IE БУДЕТ ВЫЗВАТЬ ПРОБЛЕМЫ С ВАШИМ JAVASCRIPT

, но если бы я хотел включить, скажем, swfobjec iwсделайте это следующим образом

{literal}
<script type="text/javascript">
    var params = { allowScriptAccess: "always", wmode: "transparent"};
    var atts = { id: "myytplayer"};
    swfobject.embedSWF("http://www.youtube.com/v/{/literal}{$youtube_id}{literal}&amp;enablejsapi=1&amp;playerapiid=ytplayer&amp;hl=en&amp;fs=1&amp;rel=0&amp;autoplay=0","ytapiplayer", "689", "400", "8", null, null, params, atts);
</script>
{/literal}

если вы не извлекаете выходные файлы, измените ваши phtml-назначения следующим образом

 $smarty->assign('bodyCnt',$smarty->fetch(APPLICATION_PATH . DS . "view" . DS  .$controller . DS . $action . ".tpl"));

обратите внимание, что я изменил имя файла на ".tpl"в ваших файлах tpl не должно быть php, в этих файлах должны быть только html и smarty

, если вы получаете пустую страницу, существует пара вещей, которые могут происходить

  1. у вас есть синтаксическая ошибка в вашем PHP-файле ... проверьте ваш php
  2. вы не указали smarty правильное расположение некоторых или всех ваших файлов шаблонов

    $smarty->display('index.tpl'); // will display a tpl file 
    
0 голосов
/ 29 апреля 2011

Я нашел проблему.Мне очень жаль за ум.Smarty работает нормально, и я полагаю, что в начале все работало нормально.

Проблема была / есть мой файл script.js.

Что я сделал, чтобы выяснить это: 1-й, я создал резервную копию моего файла script.js.2-й я убедился, что кодировка файла - это utf-8.В-третьих, я создал форматер в своей Zend Studio для форматирования всего файла после того, как он был немного испорчен.4-е - Пока что это все еще не работает.5-е - я удалил все - это сработало - но, очевидно, никакого javascript, так как ничего не называлось.6-е - я добавил функцию document.ready из jquery - снова не сработало 7-е - я удалил .ready и попробовал его с каждой отдельной функцией.- После этого я был уверен, что речь идет о 8-й функции .ready - я разделил свою функцию ready и обнаружил следующую строку, вызвавшую проблему: [code] google.load ('search', '1', {language: 'en ', style: google.loader.themes.MINIMALIST}); [/ code]

Я хотел бы поблагодарить @mcgrailm за его усилия.И, наконец, я надеюсь, что это всего лишь вопрос «отладки» файла js.Я надеюсь, что кто-то, кто сталкивается с той же самой проблемой, получает немного идеи, чтобы решить его / ее собственную проблему.

...