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

Войти
   
   Начало   Поиск Joomla 2.5 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор Тема: Как написать системный плагин для Joomla 1.5  (Прочитано 17655 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Sergey2
Завсегдатай
*****

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

Сообщений: 425


« : 05.11.2009, 00:03:37 »

Хочу контент, отдаваемый пользователю, прогнать через свой скрипт. Я так понял, мне нужен мамбот из группы system. Так? Как его написать? Может кто кинет шаблон какой-нить или ссылку какую полезную подкинет?
« Последнее редактирование: 05.11.2009, 00:31:03 от smart » Записан
 
smart
Администратор
*******

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

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


снова дома...


« Ответ #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 » Записан
Sergey2
Завсегдатай
*****

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

Сообщений: 425


« Ответ #2 : 05.11.2009, 00:39:36 »

Я обновил пример - добавил один параметр и его обработку в плагине.
Ну вообще супер. Спасибо огромное.
Записан
Sergey2
Завсегдатай
*****

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

Сообщений: 425


« Ответ #3 : 05.11.2009, 00:58:24 »

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

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

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


снова дома...


« Ответ #4 : 05.11.2009, 01:00:33 »

Да, безусловно. Если вы хотите быть уверены в том, что после ваших правок никто ничего не изменит - надо его поставить последним.
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.18 | 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