Привет Джумляне, хочу попросить у вас совет по ходу разработки плагина (Joomla 1.5x) для добавления дополнительной иконки в статьях (компонент com_content) - этот плагин вставляет еще одну иконку с помощью mootools в DOM структуру страницы с статьей (рядом с иконками PDF E-mail Edit).
Суть проблемы:
При нажатии на любую из этих иконок открывается Pop_up окно в который вставляется ссылка, по которой в это окно загружается содержимое страницы.
Покапавшись в компоненте
com_content в папке
components\com_content\helpers\ я обнаружил файл
icon.php в котором содержится класс
JHTMLIcon формирующий три стандартные иконки и ссылку для них, вот так выглядит метод (функция) формирующая иконку PDF:
function pdf($article, $params, $access, $attribs = array())
{
$url = 'index.php?view=article';
$url .= @$article->catslug ? '&catid='.$article->catslug : '';
$url .= '&id='.$article->slug.'&format=pdf';
$status = 'status=no,toolbar=no,scrollbars=yes,titlebar=no,menubar=no,resizable=yes,width=640,height=480,directories=no,location=no';
// checks template image directory for image, if non found default are loaded
if ($params->get('show_icons')) {
$text = JHTML::_('image.site', 'pdf_button.png', '/images/M_images/', NULL, NULL, JText::_('PDF'));
} else {
$text = JText::_('PDF').' ';
}
$attribs['title'] = JText::_( 'PDF' );
$attribs['onclick'] = "window.open(this.href,'win2','".$status."'); return false;";
$attribs['rel'] = 'nofollow';
return JHTML::_('link', JRoute::_($url), $text, $attribs);
}
По этой же аналогии я пытаюсь сформировать свой класс в плагине который будет также формировать ссылку с id статьи (это главное что мне нужно), а затем эту ссылку я вставляю в открывающееся Pop_up окно:
Вот как я пишу:
jimport('joomla.plugin.plugin');
$host_name = $_SERVER['SERVER_NAME'];//We receive a server name
class plgContentPdf2emailicon extends JPlugin
{
function onPrepareContent(&$article, &$params, $limitstart){
global $host_name;//Obyavlaem peremenuyu kak globalnuyu
//formiruem ssulku
$url = 'http://'.$host_name.'/index.php?option=com_pdf2email&view=pdf2email&id='.$article->slug.'&tmpl=component';
//vozvraschaem resultat
return ('url');
}
}
$class = new plgContentPdf2emailicon();
$func = 'onPrepareContent';
$link = $class->$func;
?>
<script type="text/javascript">
window.addEvent('domready', function() {
var LINK = new Element('a', {
'class' : 'My_link',
'rel' : 'nofollow',
'href' : '#',
'events' : {
'click': function(){
window.open('<?php echo $link; ?>','win2','width=435,height=480,menubar=yes,resizable=yes'); return false;
}
}
});
Тоесть что я здеь делаю... Я создаю подкласс
plgContentPdf2emailicon класса
JPlugin в котором создаю слушателя (функию) которая получает параметры (
&$article, &$params, $limitstart) первый из которых я использую для получения
id статьи, также как и в приведенном выше примере (icon.php) -
&id='.$article->slug.
Затем делаю вызов функции через обрашение к классу и заношу результат в переменную
$link, которую затем вывожу через
echo как ссылку в Pop_up окне:
'events' : {
'click': function(){
window.open('<?php echo $link; ?>','win2','width=435,height=480,menubar=yes,resizable=yes'); return false;
}
}
В чем проблема: когда плагин установлен и опубликован, выводится сообщение ссылающееся на ошибку в файле с классом JPlugin, с тем что нехватает какогото передаваемого аргумента для функции конструктора.
Помогите разобратся в этом непростом деле зарание пасибо

P.S Текст ошибки:
Warning: Missing argument 1 for JPlugin::__construct(), called in /home/u191499/joomla.ru/www/plugins/content/icon_trigger.php on line 19 and defined in /home/u191499/joomla.ru/www/libraries/joomla/plugin/plugin.php on line 75
Fatal error: Call to a member function attach() on a non-object in /home/u191499/joomla.ru/www/libraries/joomla/base/observer.php on line 42