efimov777
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 23
|
 |
« : 03.07.2009, 19:15:12 » |
|
Народ подскажите новичку что есть jdoc в конструкции <jdoc:include type="head" /> . И что ее обрабатывает. Я так понимаю это не phpшная конструкция так как она не в тегах php и в HTML ьакого тега я не нашел. Тогда что же ее обрабатывает?
|
|
|
|
|
Записан
|
|
|
|
|
beliyadm
|
 |
« Ответ #1 : 03.07.2009, 19:43:19 » |
|
это шаблонизатор движка, в данном случае эта конструкция выводит стандартные параметры для HEAD, а также для подгрузки скриптов\стилей в сторонних компонентах
|
|
|
|
|
Записан
|
|
|
|
efimov777
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 23
|
 |
« Ответ #2 : 03.07.2009, 19:52:56 » |
|
спасибо, но я хотел узнать где она (jdoc) определена если это джумловская конструкция, если же не джумловская то чья же /?
|
|
|
|
|
Записан
|
|
|
|
|
beliyadm
|
 |
« Ответ #3 : 03.07.2009, 20:02:56 » |
|
да, это конструкция ядра для шаблонизации но что конкретно вас интересует?
|
|
|
|
|
Записан
|
|
|
|
|
|
|
beliyadm
|
 |
« Ответ #5 : 03.07.2009, 20:13:20 » |
|
userxp - спасибо, сам давно искал эту ссылку
|
|
|
|
|
Записан
|
|
|
|
|
userxp
|
 |
« Ответ #6 : 03.07.2009, 20:20:43 » |
|
всегда пажалста
|
|
|
|
|
Записан
|
|
|
|
efimov777
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 23
|
 |
« Ответ #7 : 03.07.2009, 22:31:29 » |
|
Спасибо большое, потихоньку начинает все проясняться. Только вот еще что не понятно. На сколько я понимаю все что в тегах <?php...?> обрабатывавется как код рнр, все остальное обычный хтмл. Так вот по идее чтобы эта вся конструкция была правильно разобрана тем самым парсерем это должен быть код рнр , а он там не в рнршных тегах. <?php defined( '_JEXEC' ) or die( 'Restricted access' ); include_once (dirname(__FILE__).DS.'/ja_vars.php'); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>"> <head> <jdoc:include type="head" /> <?php JHTML::_('behavior.mootools'); ?>
Как же он тогда обрабатывается ?
|
|
|
|
|
Записан
|
|
|
|
|
userxp
|
 |
« Ответ #8 : 04.07.2009, 00:23:28 » |
|
для этого есть такая волшебная штука, как захват буфера обмена  таким образом работают большинство темплейторов
|
|
|
|
|
Записан
|
|
|
|
efimov777
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 23
|
 |
« Ответ #9 : 04.07.2009, 17:53:19 » |
|
круто! а можно поподробнее.. спасибо
|
|
|
|
|
Записан
|
|
|
|
|
|
efimov777
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 23
|
 |
« Ответ #11 : 04.07.2009, 19:26:04 » |
|
Насколько я понял енто дело все загоняет в буфер , а потом перед выводом из буфера проверяет каждую строку в не зависимости есть пхпшные теги или нет . Так ? Ну в оббщем если , я в глубоко пока лезть не собираюсь , так принуип понять
|
|
|
|
|
Записан
|
|
|
|
|
userxp
|
 |
« Ответ #12 : 04.07.2009, 20:39:05 » |
|
Насколько я понял енто дело все загоняет в буфер он не загонят его в буфер. оно и так ВСЕГДА идет в буфер. просто ob_start позволяет вставить перехватчик содержимого буфера.
|
|
|
|
|
Записан
|
|
|
|
efimov777
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 23
|
 |
« Ответ #13 : 04.07.2009, 20:42:50 » |
|
ну вроде понятно спасибо
|
|
|
|
|
Записан
|
|
|
|
Dron79
Осваиваюсь на форуме
 
Репутация: +20/-0
Offline
Пол: 
Сообщений: 197
|
 |
« Ответ #14 : 06.12.2009, 20:42:11 » |
|
Здравствуйте! Подскажите пожалуйста, где можно поменять содержимое публикуемое конструкцией: <jdoc:include type="head" /> Может кто встречался с такой необходимостью?
|
|
|
|
|
Записан
|
|
|
|
|
Lex
|
 |
« Ответ #15 : 06.12.2009, 20:57:11 » |
|
Где угодно. API здесь и не только head http://api.joomla.org/Joomla-Framework/Document/JDocument.html
|
|
|
|
|
Записан
|
|
|
|
Dron79
Осваиваюсь на форуме
 
Репутация: +20/-0
Offline
Пол: 
Сообщений: 197
|
 |
« Ответ #16 : 06.12.2009, 21:34:25 » |
|
Где угодно. API здесь и не только head http://api.joomla.org/Joomla-Framework/Document/JDocument.html
Спасибо уважаемый LEX. А может Вы мне еще подскажите в файле /libraries/joomla/document/html/html.php есть конструкция function setHeadData($data) { $this->title = (isset($data['title']))? $data['title'] : $this->title; $this->description = (isset($data['description']))? $data['description'] : $this->description; $this->link = (isset($data['link']))? $data['link'] : $this->link; $this->_metaTags = (isset($data['metaTags']))? $data['metaTags'] : $this->_metaTags; $this->_links = (isset($data['links']))? $data['links'] : $this->_links; $this->_styleSheets = (isset($data['styleSheets']))? $data['styleSheets'] : $this->_styleSheets; $this->_style = (isset($data['style']))? $data['style'] : $this->_style; $this->_scripts = (isset($data['scripts']))? $data['scripts'] : $this->_scripts; $this->_script = (isset($data['script']))? $data['script'] : $this->_script; $this->_custom = (isset($data['custom']))? $data['custom'] : $this->_custom; } откуда в переменные $this->_scripts; $this->_script;$this->_custom; или $data['scripts'] $data['script'] $data['custom'] поступают данные, выводимые в последствие конструкцией <jdoc:include type="head" />
|
|
|
|
|
Записан
|
|
|
|
|
Lex
|
 |
« Ответ #17 : 06.12.2009, 21:49:00 » |
|
$this->_scripts из объекта JDocument, $data['script'] из параметра функции array $data: The document head data in array form
|
|
|
|
|
Записан
|
|
|
|
Dron79
Осваиваюсь на форуме
 
Репутация: +20/-0
Offline
Пол: 
Сообщений: 197
|
 |
« Ответ #18 : 06.12.2009, 22:06:11 » |
|
$this->_scripts из объекта JDocument, $data['script'] из параметра функции array $data: The document head data in array form
И насколько я правильно понял к переменной $this->_scripts можно обратится прямо из шаблона и заменить ее содержание на своё. кроме того доступ к ней могут получать и установленные компоненты, для вывода своих скриптов на страницы со своим содержанием? и отследить какой компонент подгружает свои скрипты в заголовок можно методом поочередного выключения установленных компонентов.
|
|
|
|
|
Записан
|
|
|
|
|
Lex
|
 |
« Ответ #19 : 06.12.2009, 22:29:52 » |
|
1.Угу 2.Угу 3.Не-а Отследить можно по пути подключения скриптов там обычно имя компонента/плагина/модуля указано.
|
|
|
|
|
Записан
|
|
|
|
Dron79
Осваиваюсь на форуме
 
Репутация: +20/-0
Offline
Пол: 
Сообщений: 197
|
 |
« Ответ #20 : 06.12.2009, 22:46:26 » |
|
понятно. по 3 пункту, это если файл со скриптом прописывается то по пути можно его найти, а если он внедряет скрипт сразу в страницу, например: <script type="text/javascript">
window.addEvent('domready', function() {
SqueezeBox.initialize({});
$$('a.modal-button').each(function(el) { el.addEvent('click', function(e) { new Event(e).stop(); SqueezeBox.fromElement(el); }); }); }); </script> то тут, файл откуда эти строки грузятся сразу не найдешь, поиск по файлам по слову SqueezeBox.fromElement(el); результатов не дал ...
|
|
|
|
|
Записан
|
|
|
|
|
Lex
|
 |
« Ответ #21 : 06.12.2009, 22:55:14 » |
|
Эта штука выводится этим JHTML::_('behavior.modal','a.modal-button',$params);
|
|
|
|
|
Записан
|
|
|
|
Dron79
Осваиваюсь на форуме
 
Репутация: +20/-0
Offline
Пол: 
Сообщений: 197
|
 |
« Ответ #22 : 06.12.2009, 23:29:47 » |
|
Lex, спасибо тебе.
|
|
|
|
|
Записан
|
|
|
|
|
userxp
|
 |
« Ответ #23 : 16.12.2009, 21:59:01 » |
|
прикольно. и куда-же, простите, его "вгонять"?
|
|
|
|
|
Записан
|
|
|
|
|
userxp
|
 |
« Ответ #24 : 19.12.2009, 00:55:52 » |
|
ну и в каком мануале это написано?
|
|
|
|
|
Записан
|
|
|
|
KorKuno_v
Новичок
Репутация: +0/-0
Offline
Сообщений: 3
|
 |
« Ответ #25 : 10.03.2010, 15:49:10 » |
|
какойто хитрый PHP бех тегов
|
|
|
|
|
Записан
|
|
|
|
genius
Захожу иногда

Репутация: +2/-0
Offline
Сообщений: 8
|
 |
« Ответ #26 : 15.12.2010, 13:17:22 » |
|
Здравствуйте! Возник вопрос по выводу позиций. Думаю jdoc в этом играет какую то роль Суть: раньше на Joomla 1.0 добавлял новую позицию в файл /components/com_jcomments/tpl/default/tpl_index.php, и новая позиция корректно работала в шаблоне, получалось, что между основным текстом и формой комментария добавлялась удлбная позиция. В Joomla 1.5 также в файле /components/com_jcomments/tpl/default/tpl_index.php добавляю строку <jdoc:include type="modules" name="user6" />, но позиция не появляется, при формировании страницы эта строка просто не обработывается и если посмотреть исходный код странице то там она остается в таком же виде <jdoc:include type="modules" name="user6" />, даная строчка просто не обрабатывается. Помогите добавить позицию в данное место!
|
|
|
|
|
Записан
|
|
|
|
|
jarogor
Гость
|
 |
« Ответ #27 : 04.02.2011, 04:01:00 » |
|
Здравствуйте! Возник вопрос по выводу позиций. Думаю jdoc в этом играет какую то роль Суть: раньше на Joomla 1.0 добавлял новую позицию в файл /components/com_jcomments/tpl/default/tpl_index.php, и новая позиция корректно работала в шаблоне, получалось, что между основным текстом и формой комментария добавлялась удлбная позиция. В Joomla 1.5 также в файле /components/com_jcomments/tpl/default/tpl_index.php добавляю строку <jdoc:include type="modules" name="user6" />, но позиция не появляется, при формировании страницы эта строка просто не обработывается и если посмотреть исходный код странице то там она остается в таком же виде <jdoc:include type="modules" name="user6" />, даная строчка просто не обрабатывается. Помогите добавить позицию в данное место!
Вот нашёл такое решение, у меня работает <?php $style = 'xhtml'; // set the style $position = "user1"; // set the position of the modules to be loaded $document = &JFactory::getDocument(); $renderer = $document->loadRenderer('module'); $params = array('style'=>$style); $contents = ''; foreach (JModuleHelper::getModules($position) as $mod) { $contents .= $renderer->render($mod, $params); } echo $contents; // do something with the module output ?>
|
|
|
|
|
Записан
|
|
|
|
RTEagle
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 10
|
 |
« Ответ #28 : 13.09.2011, 17:44:23 » |
|
А можно как-нибудь шаблонизировать вывод строк от jdoc head?
Допустим если я хочу убрать не нужные строчки, title поднять повыше и т.д. И хочу, чтобы при обновлении всё оставалось. То есть всю эту информацию занести в шаблон. Но так чтобы не в ручную вместо jdoc head строчки писать, а именно этой конструкцией воспользоваться.
|
|
|
|
|
Записан
|
|
|
|
|