Форум русской поддержки Joomla! CMS |

23.04.2010, 20:28:39

Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь. Вам не пришло письмо с кодом активации? Войти

|  | Начало |  | Поиск | Joomla 1.5 FAQ | Joomla 1.0 FAQ | Правила форума | Новости Joomla | Войти | Регистрация | Помощь |

Страниц: [1] Вниз |

| Добавить закладку | Печать |

| Автор | Тема: Как написать системный плагин для Joomla 1.5 (Прочитано 2848 раз)
0 Пользователей и 1 Гость смотрят эту тему.

Sergey2 Давно я тут Репутация: +6/-1 Offline Сообщений: 211

| Как написать системный плагин для Joomla 1.5 « : 05.11.2009, 00:03:37 » |

Хочу контент, отдаваемый пользователю, прогнать через свой скрипт. Я так понял, мне нужен мамбот из группы system. Так? Как его написать? Может кто кинет шаблон какой-нить или ссылку какую полезную подкинет?

« Последнее редактирование: 05.11.2009, 00:31:03 от smart » | Записан

smart Администратор Репутация: +779/-13 Offline Пол:
Сообщений: 6561
я все вижу...

| Re: Как написать системный плагин для Joomla 1.5 « Ответ #1 : 05.11.2009, 00:29:06 » |

Вот простейший системный плагин для Joomla 1.5, который имеет доступ уже к сформированной странице:
Файл sample.php:
Код

    <?php
    class plgSystemSample extends JPlugin {

    	function onAfterRender()
    	{
    		// пример обработки параметра
    		if ($this->params->get('enable_replacement', 0) == 0) {
    			return true;
    		}

    		$app =& JFactory::getApplication();

    		// проверка, что мы не в административной панели
    		if ($app->getName()!= 'site') {
    			return true;
    		}

    		// получаем текст сформированной страницы
    		$buffer = JResponse::getBody();
    		// делаем замены в тексте
    		$buffer = str_replace('test', 'tost', $buffer);

    		if ($buffer != '') {
    			// подменяем текст страницы
    			JResponse::setBody($buffer);
    		}
    		return true;
    	}
    }

и к нему установочный XML-файл sample.xml:
Код

    <?xml version="1.0" encoding="utf-8"?>
    <install version="1.5" type="plugin" group="system">
    	<name>System - Sample</name>
    	<creationDate>04/11/2009</creationDate>
    	<author>smart</author>
    	<copyright>Copyright 2009 JoomlaTune.ru All rights reserved!</copyright>
    	<authorEmail>smart@joomlatune.ru</authorEmail>
    	<authorUrl>http://www.joomlatune.ru</authorUrl>
    	<license>http://www.gnu.org/copyleft/gpl.html GNU/GPL</license>
    	<version>1.0</version>
    	<description>Sample system plugin for Joomla 1.5</description>
    	<files>
    		<filename plugin="sample">sample.php</filename>
    	</files>
    	<params>
    		<param name="enable_replacement" type="radio" default="0" label="Enable Replacement" description="">
    			<option value="0">No</option>
    			<option value="1">Yes</option>
    		</param>
    	</params>
    </install>

Плагин делает одну простую вещь - заменяет в тексте страницы все слова test на tost.

« Последнее редактирование: 05.11.2009, 00:38:23 от smart » | Записан

Новости Joomla | Joomla 1.5 FAQ | Joomla 1.0 FAQ | Где скачать шаблоны Joomla
Поддержите разработку JComments: Z614614405453 | R042036642670 | U276700821607

Sergey2 Давно я тут Репутация: +6/-1 Offline Сообщений: 211

| Re: Как написать системный плагин для Joomla 1.5 « Ответ #2 : 05.11.2009, 00:39:36 » |

Цитата: smart от 05.11.2009, 00:36:30
Я обновил пример - добавил один параметр и его обработку в плагине.
Ну вообще супер. Спасибо огромное.

| Записан

Sergey2 Давно я тут Репутация: +6/-1 Offline Сообщений: 211

| Re: Как написать системный плагин для Joomla 1.5 « Ответ #3 : 05.11.2009, 00:58:24 » |

И еще один момент. Я так понимаю что размещать его надо именно последним, после обработки страницы другими плагинами. В противном случаи надо отдавать себе отчет, что плагины следующие за данным будут "ковырять" обработанную тобой страницу.

| Записан

smart Администратор Репутация: +779/-13 Offline Пол:
Сообщений: 6561
я все вижу...

| Re: Как написать системный плагин для Joomla 1.5 « Ответ #4 : 05.11.2009, 01:00:33 » |

Да, безусловно. Если вы хотите быть уверены в том, что после ваших правок никто ничего не изменит - надо его поставить последним.

| Записан

Новости Joomla | Joomla 1.5 FAQ | Joomla 1.0 FAQ | Где скачать шаблоны Joomla
Поддержите разработку JComments: Z614614405453 | R042036642670 | U276700821607

lucky_man Новичок Репутация: +0/-0 Offline Сообщений: 1

| Re: Как написать системный плагин для Joomla 1.5 « Ответ #5 : 14.11.2009, 22:14:10 » |

Smart - респект +1 (Пример отличный)

| Записан

pazigun Новичок Репутация: +0/-0 Offline Сообщений: 2

| Re: Как написать системный плагин для Joomla 1.5 « Ответ #6 : 10.01.2010, 14:26:57 » |

Здравствуйте! Скажите пожалуйста, вот при использовании события onAfterRender мой плагин "обрабатывается" и выводит в HTML уже в окне редактора при редактировании статьи. Какое надо использовать событие, чтоб при редактировании статьи я видел теги своего плагина, скажем {pazigun}.....{/pazigun}, а не вывод готового HTML?
PS пишу вставку mp3 в статью

| Записан

m__g Осваиваюсь на форуме Репутация: +14/-0 Offline Пол:
Сообщений: 136

| Re: Как написать системный плагин для Joomla 1.5 « Ответ #7 : 10.01.2010, 15:10:22 » |

я так понимаю редактирование будет происходить не в админке, а на сайте? Первое что пришло в голову это дописать в плагин условие при котором плагин бы не включался, например если в адресе страницы есть "edit" или если на странице выводится редактор.
Может есть вариант порациональнее...

| Записан

era Dev Team Репутация: +256/-2 Offline Пол:
Сообщений: 1959
В туалете лучше быть пользователем, чем админом.

| Re: Как написать системный плагин для Joomla 1.5 « Ответ #8 : 10.01.2010, 15:14:02 » |

надо не системный плагин делать, а "content", на событие "onPrepareContent"

| Записан

...::: Друг индейца :::...
И не жаждут они в пустынях, чрез которые Он ведет их: Он источает им воду из камня; рассекает скалу, и льются воды. / Откровение 48:21

pazigun Новичок Репутация: +0/-0 Offline Сообщений: 2

| Re: Как написать системный плагин для Joomla 1.5 « Ответ #9 : 10.01.2010, 15:29:24 » |

Цитата: era от 10.01.2010, 15:14:02
надо не системный плагин делать, а "content", на событие "onPrepareContent"
Хм. Почему-то там вообще не работает...

| Записан

era Dev Team Репутация: +256/-2 Offline Пол:
Сообщений: 1959
В туалете лучше быть пользователем, чем админом.

| Re: Как написать системный плагин для Joomla 1.5 « Ответ #10 : 10.01.2010, 15:35:00 » |

посмотри стандартный плагин "emailcloak.php", что там и как

| Записан

...::: Друг индейца :::...
И не жаждут они в пустынях, чрез которые Он ведет их: Он источает им воду из камня; рассекает скалу, и льются воды. / Откровение 48:21

Страниц: [1] Вверх |

| Добавить закладку | Печать |

Перейти в:

| Powered by SMF 1.1.11 | SMF © 2006, Simple Machines LLC |

Загружается...