LiveInternetMail.ru
Форум русской поддержки Joomla!® CMS
11.02.2012, 00:37:04 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 1.7 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор Тема: Что такое jdoc  (Прочитано 10391 раз)
0 Пользователей и 1 Гость смотрят эту тему.
efimov777
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 23


« : 03.07.2009, 19:15:12 »

Народ подскажите новичку что есть jdoc  в конструкции <jdoc:include type="head" /> . И что ее обрабатывает. Я так понимаю это не phpшная конструкция так как она не в тегах php и в HTML ьакого тега я не нашел. Тогда что же ее обрабатывает?
Записан
beliyadm
Профи
********

Репутация: +1432/-61
Offline Offline

Пол: Мужской
Сообщений: 9254


Севастополь==Россия


« Ответ #1 : 03.07.2009, 19:43:19 »

это шаблонизатор движка, в данном случае эта конструкция выводит стандартные параметры для HEAD, а также для подгрузки скриптов\стилей в сторонних компонентах
Записан
efimov777
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 23


« Ответ #2 : 03.07.2009, 19:52:56 »

спасибо, но я хотел узнать  где она (jdoc) определена если это джумловская конструкция, если же не джумловская то чья же /?
Записан
beliyadm
Профи
********

Репутация: +1432/-61
Offline Offline

Пол: Мужской
Сообщений: 9254


Севастополь==Россия


« Ответ #3 : 03.07.2009, 20:02:56 »

да, это конструкция ядра для шаблонизации
но что конкретно вас интересует?
Записан
userxp
Администратор
*******

Репутация: +388/-6
Offline Offline

Пол: Мужской
Сообщений: 3188


Злой и ужасный бармалей


« Ответ #4 : 03.07.2009, 20:10:10 »

Описание формата: http://docs.joomla.org/Jdoc_statements
Парсер формата '<jdoc:include ... />': JDocumentHTML::_parseTemplate
/libraries/joomla/document/html/html.php
Записан
beliyadm
Профи
********

Репутация: +1432/-61
Offline Offline

Пол: Мужской
Сообщений: 9254


Севастополь==Россия


« Ответ #5 : 03.07.2009, 20:13:20 »

userxp - спасибо, сам давно искал эту ссылку
Записан
userxp
Администратор
*******

Репутация: +388/-6
Offline Offline

Пол: Мужской
Сообщений: 3188


Злой и ужасный бармалей


« Ответ #6 : 03.07.2009, 20:20:43 »

всегда пажалста
Записан
efimov777
Захожу иногда
**

Репутация: +0/-0
Offline 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
Администратор
*******

Репутация: +388/-6
Offline Offline

Пол: Мужской
Сообщений: 3188


Злой и ужасный бармалей


« Ответ #8 : 04.07.2009, 00:23:28 »

для этого есть такая волшебная штука, как захват буфера обмена Azn
таким образом работают большинство темплейторов
Записан
efimov777
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 23


« Ответ #9 : 04.07.2009, 17:53:19 »

круто! а можно поподробнее.. спасибо
Записан
userxp
Администратор
*******

Репутация: +388/-6
Offline Offline

Пол: Мужской
Сообщений: 3188


Злой и ужасный бармалей


« Ответ #10 : 04.07.2009, 18:12:33 »

php manual в руки
http://php-book.net/ob-start.html
Код
ob_start();
   include_once( 'template.php' );
   $c = ob_get_contents();
ob_end_clean();
/*
... some code ...
*/

 
echo $c;
 
 
« Последнее редактирование: 04.07.2009, 18:17:02 от userxp » Записан
efimov777
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 23


« Ответ #11 : 04.07.2009, 19:26:04 »

Насколько я понял енто дело все загоняет в буфер , а потом перед выводом из буфера проверяет каждую строку в не зависимости есть пхпшные теги или нет . Так ? Ну в оббщем если , я в глубоко пока лезть не собираюсь , так принуип понять 
Записан
userxp
Администратор
*******

Репутация: +388/-6
Offline Offline

Пол: Мужской
Сообщений: 3188


Злой и ужасный бармалей


« Ответ #12 : 04.07.2009, 20:39:05 »

Насколько я понял енто дело все загоняет в буфер
он не загонят его в буфер.
оно и так ВСЕГДА идет в буфер.
просто ob_start позволяет вставить перехватчик содержимого буфера.
Записан
efimov777
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 23


« Ответ #13 : 04.07.2009, 20:42:50 »

ну вроде понятно спасибо
Записан
Dron79
Осваиваюсь на форуме
***

Репутация: +20/-0
Offline Offline

Пол: Мужской
Сообщений: 197


« Ответ #14 : 06.12.2009, 20:42:11 »

Здравствуйте!
Подскажите пожалуйста, где можно поменять содержимое публикуемое конструкцией: <jdoc:include type="head" />
Может кто встречался с такой необходимостью?
Записан
Lex
Тестеры
*****

Репутация: +246/-1
Online Online

Пол: Мужской
Сообщений: 1850


« Ответ #15 : 06.12.2009, 20:57:11 »

Где угодно. API здесь и не только head
http://api.joomla.org/Joomla-Framework/Document/JDocument.html
Записан
Dron79
Осваиваюсь на форуме
***

Репутация: +20/-0
Offline 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
Тестеры
*****

Репутация: +246/-1
Online Online

Пол: Мужской
Сообщений: 1850


« Ответ #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 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
Тестеры
*****

Репутация: +246/-1
Online Online

Пол: Мужской
Сообщений: 1850


« Ответ #19 : 06.12.2009, 22:29:52 »

1.Угу
2.Угу
3.Не-а Отследить можно по пути подключения скриптов там обычно имя компонента/плагина/модуля указано.
Записан
Dron79
Осваиваюсь на форуме
***

Репутация: +20/-0
Offline 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
Тестеры
*****

Репутация: +246/-1
Online Online

Пол: Мужской
Сообщений: 1850


« Ответ #21 : 06.12.2009, 22:55:14 »

Эта штука выводится этим
JHTML::_('behavior.modal','a.modal-button',$params);
 
Записан
Dron79
Осваиваюсь на форуме
***

Репутация: +20/-0
Offline Offline

Пол: Мужской
Сообщений: 197


« Ответ #22 : 06.12.2009, 23:29:47 »

Lex, спасибо тебе.
Записан
userxp
Администратор
*******

Репутация: +388/-6
Offline Offline

Пол: Мужской
Сообщений: 3188


Злой и ужасный бармалей


« Ответ #23 : 16.12.2009, 21:59:01 »

прикольно.
и куда-же, простите, его "вгонять"?
Записан
userxp
Администратор
*******

Репутация: +388/-6
Offline Offline

Пол: Мужской
Сообщений: 3188


Злой и ужасный бармалей


« Ответ #24 : 19.12.2009, 00:55:52 »

ну и в каком  мануале это написано?
Записан
KorKuno_v
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 3


« Ответ #25 : 10.03.2010, 15:49:10 »

какойто хитрый PHP бех тегов
Записан
genius
Захожу иногда
**

Репутация: +2/-0
Offline 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 Offline

Сообщений: 10


« Ответ #28 : 13.09.2011, 17:44:23 »

А можно как-нибудь шаблонизировать вывод строк от jdoc head?

Допустим если я хочу убрать не нужные строчки, title поднять повыше и т.д.
И хочу, чтобы при обновлении всё оставалось. То есть всю эту информацию занести в шаблон.
Но так чтобы не в ручную вместо jdoc head строчки писать, а именно этой конструкцией воспользоваться.
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.16 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet