Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 20 Ответов
  • 8147 Просмотров
*

aleks

  • Захожу иногда
  • 54
  • 0 / 0
Есть свой компонент, который выводит в качестве параметра разные куски php-кода, хранящиеся статично в файлах
 
пытаюсь вставить в компонент вывод модулей в позиции mypos через плагин

Код: php
echo '{loadposition mypos}';

не работает. В HTML коде отображается

Код: html4strict
{loadposition mypos}

также не работает вариант со вставкой через

Код: php
echo $gantry->displayModules('mypos','standard','standard');

В HTML коде отображается
Код: html4strict
<jdoc:include type="modules" name="kurs-a" style="standard">
</jdoc:include>

Т.е. такое впечатление, что плагины (стандартные и gantry) не обрабатываются компонентом.

Как включить обработку выводимого контекста плагинами Joomla?
Надеюсь это решит мои проблемы

P.S. Ниже конструкция вывода модуля без jdoc работает, но теряется форматирование и CSS стилей и суффиксов модулей
Код: php
$document   = & JFactory::getDocument();
$renderer   = $document->loadRenderer('modules');
$options    = array('style' => 'xhtml');
$position   = 'kurs-a';
echo $renderer->render($position, $options, null);

Прошу помощи.
*

art-apple

  • Захожу иногда
  • 386
  • 61 / 2
P.S. Ниже конструкция вывода модуля без jdoc работает, но теряется форматирование и CSS стилей и суффиксов модулей
Код: php
$document   = & JFactory::getDocument();
$renderer   = $document->loadRenderer('modules');
$options    = array('style' => 'xhtml');
$position   = 'kurs-a';
echo $renderer->render($position, $options, null);

Прошу помощи.
так вы вместо XHTML поставьте свой стиль, на сколько я понял у вас - standard
*

aleks

  • Захожу иногда
  • 54
  • 0 / 0
так вы вместо XHTML поставьте свой стиль, на сколько я понял у вас - standard

стиль standard не помогает
все равно отображаются модули неверно, т.е. не так как по умолчанию, когда используются стандартная привязка модулей к элементам меню
 
то есть сочетание обрамляющих div-ов совершенно разное
суфикс у модуля "box3 title1"

в стандартном варианте
Код: html4strict
<div class="box3 title1">
                    <div class="rt-block">
            <div class="module-surround">
<div class="module-title">
<h2 class="title" style="visibility: visible;"><span>Платежные</span> реквизиты</h2>
            <div class="module-border"></div>
        </div>
                <div class="module-content">
<div class="custombox3 title1">
 
далее сам код модуля

в моем варианте

Код: html4strict
<div class="component-content rt-joomla">
 <div style="float:right;width:230px;">
<div class="moduletablebox3 title1">
<h3 style="visibility: visible;"><span>Платежные</span> реквизиты</h3>
<div class="custombox3 title1">
далее сам код модуля


Вариант 1. либо имитировать такое же сочетание обрамляющих дивов
Вариант 2. либо разрешить плагины в этом компоненты

второй мне кажется более правильным
« Последнее редактирование: 20.01.2013, 14:09:18 от aleks »
*

aleks

  • Захожу иногда
  • 54
  • 0 / 0
Несколько модулей в 1 статье
Код: php-brief
<?php echo JHTML::_('content.prepare', '{loadposition mypos}'); ?>

куда этот код вставлять?

нашел статью http://www.jdevelop.info/articles/14-develop-joomla/220-obrabotka-dannykh-s-pomoshchyu-plaginov-joomla-2-5
описана обработка данных с помощью с помощью плагинов для Joomla 2.5

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

мой компонент очень простой, там не используется стандартная компонентная модель
просто выводит имя php-файла который передается в параметре pdoc

Код: php
 $config = JFactory::getConfig();
$live_site = $config->get('live_site');

 $mosConfig_live_site=$config->get('live_site');
 $mosConfig_absolute_path=$config->get('mosConfig_absolute_path');

 $pdoc=$_GET["pdoc"];
 
 if (isset($pdoc))
{
$str=$mosConfig_absolute_path."/text/pdoc/$pdoc.php";
if (file_exists ($str))
{
$kurs_connect = mysql_connect($dbhost,$dbuname, $dbpass);
include($str);
}
else
{
?>
<script>
location = "index.php";
</script>
<?
};
}
else
{
?>
<script>
  location = "index.php";
</script>
<?

};
*

art-apple

  • Захожу иногда
  • 386
  • 61 / 2
стиль standard не помогает
Ну значит другой стиль нужно указать, да и что вообще мешает создать свой стиль? и оформить как нужно?
Какой-то огород городите...
*

art-apple

  • Захожу иногда
  • 386
  • 61 / 2
куда этот код вставлять?
Елы палы... В компонент свой. Что-то я перестаю верить что вы пишите свой компонент...
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
$config = JFactory::getConfig();
         $live_site = $config->get('live_site');
 
 $mosConfig_live_site=$config->get('live_site');
 $mosConfig_absolute_path=$config->get('mosConfig_absolute_path');

Код: php-brief
echo JPATH_ROOT;
$pdoc=$_GET["pdoc"];
 
 if (isset($pdoc))

Код: php-brief
$app= JFactory::getApplication();
$pdoc = $app->input->getString('pdoc');
if ($pdoc)

Код: php-brief
$filename = JPATH_ROOT.'/text/pdoc/'.$pdoc.'.php';
if(JFile::exists($filename)) require_once $filename;
//...
$app->redirect(JURI::base());

$kurs_connect = mysql_connect($dbhost,$dbuname, $dbpass);
В Joomla есть свое API для работами с базами. Пару примеров
*

aleks

  • Захожу иногда
  • 54
  • 0 / 0
В Joomla есть свое API для работами с базами. Пару примеров

а что насчет подключения плагинов и обработка ими кода, который генерируется кусками php-кода, который задан в файлах (через параметр pdoc)?
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Несколько модулей в 1 статье. Читали пост
Чем не устраивает <?php echo JHTML::_('content.prepare', 'обрабатываемы контент плагином'); ?>
*

aleks

  • Захожу иногда
  • 54
  • 0 / 0
Несколько модулей в 1 статье. Читали пост
Чем не устраивает <?php echo JHTML::_('content.prepare', 'обрабатываемы контент плагином'); ?>

в том то и вопрос
что у меня инклудится в компоненте кусок php-кода
в этом куске кода задан {loadposition mypos}

куда я должен вставить?
Код: php
<?php echo JHTML::_('content.prepare', '{loadposition mypos}'); ?>

в конец компонент сразу после вставки ?
в конец инклудимого php-кода ?

эта конструкция работает после или до кода?

куда?
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Цитировать
в том то и вопрос
что у меня инклудится в компоненте кусок php-кода
И что из этого. Код по особенному начал обрабатываться? >:(
Цитировать
в этом куске кода задан {loadposition mypos}
Вы вызываете плагин который парсит строку '{loadposition mypos}' и выводит модули в позиции mypos
Вам же дали ссылку где приведены примеры вывода модулей без участия плагинa вывода модуля
Цитировать
куда я должен вставить? :laugh:
туда где нужен вывод
*

aleks

  • Захожу иногда
  • 54
  • 0 / 0
короче, как распарсить {loadposition mypos} вручную?
в $pdoc имя файла 

Код: php
$pdoc=$_GET["pdoc"];
if (isset($pdoc))
{
if (file_exists ($str))
{
include($str);
                }
}

вот можно сказать весь код компонента
в само тело компонента вставляется кусок php кода с {loadposition mypos}

и как мне его распарсить?
может как-то обработать вывод?
*

mohax

  • Давно я тут
  • 901
  • 66 / 3
мде. вставьте в подключаемый файл в то место в коде, где Вы хотите сделать вывод модуля своего
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Зачем тогда файл вам Вы можете передавать только позицию модулей
Код: php-brief
<?php
$app= JFactory::getApplication();
$poz = $app->input->getString('poz');
if ($poz)
{
$modules =& JModuleHelper::getModules($poz);
foreach ($modules as $module)
  {
     echo JModuleHelper::renderModule($module);
  }
}
?>
*

aleks

  • Захожу иногда
  • 54
  • 0 / 0
Зачем тогда файл вам Вы можете передавать только позицию модулей

Это хороший вариант, потому что возможно сделать как сам движок оформляет блок-модуль в div'ы (тем самым проэмулировать обработку плагинами)
А какой код можно использовать для вывода по этой схеме модуля с нужным наименованием?   
*

aleks

  • Захожу иногда
  • 54
  • 0 / 0
только вот маленькая проблемка возникает
когда используется код
Код: php
$document   = & JFactory::getDocument();
$renderer   = $document->loadRenderer('modules');
$options    = array('style' => 'xhtml');
$position   = 'mypos';
echo $renderer->render($position, $options, null);

выводится в том числе title модуля, суффикс отрабатывает
да и сам он как модуль выглядит

если же через код, который приведен выше, то
Код: php
echo JModuleHelper::renderModule($module);
тайтла нет

*

aleks

  • Захожу иногда
  • 54
  • 0 / 0
хотелось бы понять, как с помощью класса JModuleHelper вытащить суффикс модуля (sfx)
и его тайтл

или в качестве альтернативы
использовать
Код: php
echo $renderer->render($position, $options, null);
но в цикле с выводом отдельного модуля ?
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
aleks вы опять уверен велосипедите.
Вам не хватает заголовка. Правьте modules.php вашего шаблона.
Код: php-brief
function modChrome_none($module, &$params, &$attribs)
{
         echo $module->title;
echo $module->content;
}
И опять же стоит ли делать компонент, который по параметру модуль вызывает. Если это модуль один (одного типа). То передавайте ему параметры(вызывайте его с нужными параметрами $options) или прямо в модуле считывайте параметры.
*

aleks

  • Захожу иногда
  • 54
  • 0 / 0
На самом деле, как я уже говорил, компонент инклюдит различные файлы с php-кодом
один из php-файлов взаимодействует с "третьей" базой данных (не joomla) выводя нужные мне сущности

но к этому выводу хотелось бы подтянуть стандартный механизм модулей

я пытался делать через {loadpositions }
но не обрабатывается плагинами заинклуженный код
скорее, моя реализация компонента несколько хромает, НО

выше предложено несколько вариантов, которые в принципе интересны и могут задачу решить

фактически ваш вариант устраивает перебора в цикле и вывод через
Код: php
echo JModuleHelper::renderModule($module);

но не выводиться title
и я не знаю суффикс у модуля

если бы вы подсказали как его получить, используя объектную модель JModuleHelper
я бы тему закрыл

в варианте с
Код: php
echo $renderer->render($position, $options, null);
научить бы выводить в цикле модуль чтобы блоки div расставлять с суффиксами и то же вопрос бы закрыл

в общем остается только надеятся на помощь знатоков объектной модели Joomla
:)
*

mohax

  • Давно я тут
  • 901
  • 66 / 3
А var_dump($module) что выдает Вы смотрели?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Порядок плагинов на странице

Автор intcorp

Ответов: 5
Просмотров: 1666
Последний ответ 26.04.2017, 23:51:10
от UN_Tony
Как в пункте меню сделать ссылку на свой php-файл?

Автор larin_

Ответов: 1
Просмотров: 891
Последний ответ 28.12.2016, 22:13:17
от effrit
Компонент для он-лайн бронирования авиабилетов. Что посоветуете?

Автор MadagAskar

Ответов: 2
Просмотров: 2335
Последний ответ 05.10.2016, 16:08:07
от marissia
Как вставить компонент, созданный как меню, в материал?

Автор makc9I

Ответов: 12
Просмотров: 2572
Последний ответ 11.09.2016, 11:45:52
от makc9I
Как подключить библиотеку Joomla в свой php файл?

Автор kowap

Ответов: 5
Просмотров: 5497
Последний ответ 13.02.2016, 13:49:55
от buyanov