Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите разобраться со smarty
 
 автор: Filsh   (09.06.2010 в 18:51)   письмо автору
 
 

Зравствуйте, устроился на новую работу(фактически учеником программиста исправлять мелкие баги), а там готовый сайт с использованием Smarty, много прочитал, из-за того что сайт ооочень большой остаються непонятные вопросы, подскажите кому не трудно)))

1. Что означает эта запись:
<span class="tabs-title">{g}photo_manager.upload_source{/g}</span>
    <a class="tab-header tab-header-active" href="#add-photo-computer">{g}photo_manager.upload_source_1{/g}</a>


2. Как мне найти файл, который реализует и подставляет в шаблон значения?

Вообщем дремучий лес

  Ответить  
 
 автор: Лена   (09.06.2010 в 20:10)   письмо автору
 
   для: Filsh   (09.06.2010 в 18:51)
 

{g}photo_manager.upload_source{/g} - обычно так обрамляются блочные функции, а то, что между {g} и {/g} похоже на плагин, только плагины должны начинаться вроде как со smarty_ - иначе смарти их не увидит.

  Ответить  
 
 автор: Tonik992   (09.06.2010 в 22:41)   письмо автору
270.9 Кб
 
   для: Лена   (09.06.2010 в 20:10)
 

Гид по смарти. Может что найдешь здесь

  Ответить  
 
 автор: Filsh   (09.06.2010 в 23:36)   письмо автору
 
   для: Лена   (09.06.2010 в 20:10)
 

По контексту это не плагин, а результат работы какой-то небольшой функции, потому что выводит одну текстовую строку. Вопрос в том как мне ее найти?? ведь там тысячи файлов??

  Ответить  
 
 автор: Лена   (09.06.2010 в 23:48)   письмо автору
 
   для: Filsh   (09.06.2010 в 23:36)
 

У вас есть Far manager или типа другого файлового менеджера?
Пробуйте поиском.
В Far жмете ALT + F7 - открывается окно поиска, вбиваете строку, которую хотите найти, выводит список файлов, в которых содержится эта строка. Может, найдете совпадение... Хотя если это уже результат работы функции, даже не знаю, как вам помочь...

Там какая-то привязка идет к photo_manager, оба блока так начинаются - пробуйте это по поиску.

  Ответить  
 
 автор: Filsh   (10.06.2010 в 00:10)   письмо автору
 
   для: Лена   (09.06.2010 в 23:48)
 

Так не выйдет, сайт весит ~700 метров, я уже пробовал в Zend, очень долго и не всегда получается.

Возникла идея:
использовать константу _FILE_ в шаблоне,
смарти подхватит шаблон и каким-то образом заставить
его отобразить содержимое константы в нужном мне месте

  Ответить  
 
 автор: Лена   (10.06.2010 в 11:56)   письмо автору
 
   для: Filsh   (10.06.2010 в 00:10)
 

>Так не выйдет, сайт весит ~700 метров,

Не надо. В любом разумно написанном движке файлы шаблонов лежат отдельно, и уже получается никак не 700 метров.

Я уже говорила, перед вами - блоковая функция. Есть встроенные блоковые функции типа {if}{/if}, а это уже создали свою функцию, т.е. это плагин.
Смарти все плагины обычно держит в одной папке - Smarty/plugins
Файлы блоков начинаются так: block.textformat.php, а значит, в вашем случае будет block.g.php и функцию вам надо искать такую: function smarty_block_g. Неужели так тяжело зайти в папку плагинов и поиском найти, где объявляется эта функция?

  Ответить  
 
 автор: Filsh   (10.06.2010 в 23:07)   письмо автору
 
   для: Лена   (10.06.2010 в 11:56)
 

>>Так не выйдет, сайт весит ~700 метров,
>
>Не надо. В любом разумно написанном движке файлы шаблонов лежат отдельно, и уже получается никак не 700 метров.
>
>Я уже говорила, перед вами - блоковая функция. Есть встроенные блоковые функции типа {if}{/if}, а это уже создали свою функцию, т.е. это плагин.
>Смарти все плагины обычно держит в одной папке - Smarty/plugins
>Файлы блоков начинаются так: block.textformat.php, а значит, в вашем случае будет block.g.php и функцию вам надо искать такую: function smarty_block_g. Неужели так тяжело зайти в папку плагинов и поиском найти, где объявляется эта функция?

Только заметил этот пост)))
Да, Лена, все так, с этим я уже разобрался, вопрос в другом:
в шаблоне(tpl или htm) нет подключения файла php (reqiure и т. п.)!!!,
вот в чем путаница, как мне узнать в каком файле php вызывается данный шаблон??
и это не block.g.php.
На данный момент самый реальный вариант - поиском, по крайней мере пока не выучу матчасть

  Ответить  
 
 автор: Ирбис   (10.06.2010 в 09:45)   письмо автору
 
   для: Filsh   (09.06.2010 в 18:51)
 

Можно попробовать поискать в исходном коде имя шаблона. php-файл, если он выводит этот шаблон, должен содержать в своем исходном коде имя шаблона. Ну а там уже смотреть найденные php-файлы. Скорее всего в каком-то из них вы найдете зацепку.

У Abode Dreamweaver CS4 очень хороший поисковик по исходному коду. Попробуйте его, если есть возможность.

Вот хорошая документация по smarty:
http://www.fpublisher.ru/documentation/smarty_doc/

  Ответить  
 
 автор: Filsh   (10.06.2010 в 10:19)   письмо автору
 
   для: Ирбис   (10.06.2010 в 09:45)
 

Эта вся документация с официального сайта Smarty, ее полно в инете

что значит {g} и {/g}??

  Ответить  
 
 автор: sim5   (10.06.2010 в 10:42)   письмо автору
 
   для: Filsh   (10.06.2010 в 10:19)
 

Читайте документацию. В Smarty нет встроенной конструкции {g}{/g}, следовательно это функция/плагин написанный пользователем. Что она делает, ищите и изучайте.

  Ответить  
 
 автор: Axxil   (10.06.2010 в 17:32)   письмо автору
 
   для: Filsh   (10.06.2010 в 10:19)
 

Надо смотреть файл /path/to/smarty/plugins/block.g.php

Это самописный блоковый плагин.

Скорее всего ничего сложного, просто он как-то модифицирует то что между {g}{/g} (принимая эту строку в качестве параметра) и заменяет эту конструкцию на результат модификации.

  Ответить  
 
 автор: Filsh   (10.06.2010 в 18:34)   письмо автору
 
   для: Axxil   (10.06.2010 в 17:32)
 

Да, так оно и есть, нашел я там этот файл.
Попытка использовать _FILE_ не увенчалась успехом, смарти умный
и все распознает, надо придумать что-то еще....

  Ответить  
 
 автор: Axxil   (10.06.2010 в 20:48)   письмо автору
 
   для: Filsh   (10.06.2010 в 18:34)
 

Зачем что-то придумывать, если файл найден?

  Ответить  
 
 автор: Filsh   (10.06.2010 в 22:18)   письмо автору
 
   для: Axxil   (10.06.2010 в 20:48)
 

Это не последний файл, который мне надо будет найти в будущем

  Ответить  
 
 автор: Axxil   (10.06.2010 в 22:37)   письмо автору
 
   для: Filsh   (10.06.2010 в 22:18)
 

Структура смарти гораздо проще чем кажется на первый взгляд. Лучше то время, которое собираетесь потратить на придумывание "способа" используйте для изучения документации. Окупится с лихвой.

  Ответить  
 
 автор: Filsh   (10.06.2010 в 22:48)   письмо автору
 
   для: Axxil   (10.06.2010 в 22:37)
 

Хорошо, прислушаюсь к Вашему совету))))) буду учить, спасибо.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования