Главное меню
все форумы все темы форума добавить тему
Парсер шаблонов
Не стал писать в багтрекер, так как сомневаюсь, что ошибка системы. Скорее всего моя. Надеюсь поможете разобратся.
Сверстал html-страницу под шаблон, полностью работающую, проверялся в разных браузерах. На странице используется несколько jQuery элементов. Создаю tpl шаблон, дабы посадить страничку на LabCMS. Заблаговременно сделал, что бы мой jQuery и Mootols системы не конфликтовали. Когда шаблон запускается из-под LabCMS, выдаёт следующую ошибку в синтаксисе определённого места шаблона. После следуют описание ошибок парсера. Но без CMS шаблон отлично работает, и ничего не ругается. Собственно сама ошибка:
 
Fatal error: Uncaught exception 'SmartyCompilerException' with message 'Syntax Error in template "Y:/home/test1.ru/www/skins/mushtat/default.tpl" on line 559 "$(".gallery:first a[rel^='prettyPhoto']" ).prettyPhoto({animation_speed:'normal',theme:'facebook',slideshow:3000, autoplay_slideshow: true});" - Unexpected ":", expected one of: "}" , " "' in Y:\home\test1.ru\www\kernel\classes\Smarty\sysplugins\smarty_internal_templatecompilerbase.php:437 Stack trace: #0 Y:\home\test1.ru\www\kernel\classes\Smarty\sysplugins\smarty_internal_templateparser.php(2872): Smarty_Internal_TemplateCompilerBase->trigger_template_error() #1 Y:\home\test1.ru\www\kernel\classes\Smarty\sysplugins\smarty_internal_templateparser.php(2937): Smarty_Internal_Templateparser->yy_syntax_error(2, ':') #2 Y:\home\test1.ru\www\kernel\classes\Smarty\sysplugins\smarty_internal_smartytemplatecompiler.php(51): Smarty_Internal_Templateparser->doParse(2, ':') #3 Y:\home\test1.ru\www\kernel\classes\Smarty\sysplugins\smarty_internal_templatecompilerbase in Y:\home\test1.ru\www\kernel\classes\Smarty\sysplugins\smarty_internal_templatecompilerbase.php on line 437
 
Тестирую локально, на Денвере.
Фигурные скобки в смарти используются как спецсимволы. Так что для их использования в коде надо либо их заменять на {ldelim} {rdelim}, либо обрамлять блоки кода тегами {literal}...{/literal}, либо после открывающей и перед закрывающей скобками оставлять пробелы.
Вот тут подробно расписано.
Всё верно, спасибо! И мои сложности разрешились.
По поводу mootools одна трудность, по которой возникали вопросы. В собственном шаблоне, если оставить tooltips, то над каждой ссылкой показывается путь вместо описания. Как заставить отображать описание, которое нужно и где описывается форматирование подсказок? Я, не разобравшись в этом, просто удалял js tooltips.
Всплывающая подсказка имеет следующий вид:
 
Smarty
<div>
        <div class="tip-top"></div>
        <div class="tip">
                <div class="tip-title">Заголовок ссылки</div>
                <div class="tip-text">/path/of/link/</div>
        </div>
        <div class="tip-bottom"></div>
</div>

 
Так что достаточно для этих элементов задать стили, и подсказка будет выглядеть как Вам нужно. Пример можно посмотреть в all.css дизайна default.
Вот тоже вопрос, на который целую тему заводить нецелесообразно.
Знаю, что решение в CMS, но не могу понять где копать...
На сайте юзаю @font-face.
В css прописаны относительные пути. Режим разработчика Chrome показывает, что шрифты не загружены. Хотя изображения и т.д. с относительными путями показывает отлично. Изменил путь на абсолютный. Та же ситуация. Шрифты не видятся. Пробуя перейти по ссылке на шрифт вида
Text
http://test1.ru/skins/mushtat/fonts/PTC55F_W.ttf
, сайт выдаёт ошибку, что страница не найдена. Естественно папка с существующими шрифтами есть на сервере, проверил. Что и где мне нужно править? Спасибо
Надо в файл .htaccess (в корне сайта) исправить строчку
Text
RewriteRule ^skins.*\.(js|css|jpg|gif|png|swf|html|htc|ico|xml) - [L]

на
Text
RewriteRule ^skins.*\.(js|css|jpg|gif|png|swf|html|htc|ico|xml|ttf) - [L]
Файлы шрифтов у меня в нескольких расширениях, соответственно добавил через чёрточку все. Loki, Вы в репозитории, смотрю, обновили ревизию, добавив правило доступа к ttf файлам. Целесообразно добавить ещё eot, svg и woff. При грамотном использовании @font-face они все используются.
Спасибо! Добавлю их тоже.