Перейти к содержимому


Фотография
- - - - -

Поменять имя материала EVENT


Лучший Ответ SmetDenis , 11 February 2016 - 19:03

Добрый день,

 

Почти все правильно, только стоит обратить на эти моменты

 

6z63_200x0.png

 

 

onAfterInitialise - метод Joomla, который будет вызван сразу после загрузки Joomla

register('plgSystemZooautoname'); - регистрируем класс для вызова в нем методов-событий

 

item:save - вызывается до сохранения в базу

item:saved - материал уже сохранен и изменения $item не попадут в базу.

Перейти к сообщению


  • Закрытая тема Тема закрыта
Сообщений в теме: 20

#11 alexmixaylov

alexmixaylov

Отправлено 08 February 2016 - 23:56

сделал плагин

только теперь при сохранении материала

имя всегда становиться newname

 

это отсюда, если я правильно понял /administrator/components/com_zoo/events/item.php

<?php

// no direct access
defined('_JEXEC') or die('Restricted access');

jimport('joomla.plugin.plugin');

class plgSystemZooautoname extends JPlugin {

    public $app;

    public function renameItem() {
        require_once(JPATH_ADMINISTRATOR . '/components/com_zoo/config.php');

        // Get the ZOO App instance
        $zoo = App::getInstance('zoo');

        // register event
        $zoo->event->dispatcher->connect('item:save', array('plgSystemZooautoname', 'itemSaved'));

    }

    public function itemSaved($event) {

        $item = $event->getSubject();
        $new = $event['new'];
        // do whatever you'd like to do
        $item->name = 'xxx';
    }

}

код плагина :)


  • 0

#12 alexmixaylov

alexmixaylov

Отправлено 09 February 2016 - 14:48

<?php
defined('_JEXEC') or die('Restricted access');

jimport('joomla.plugin.plugin');

class plgSystemZooautoname extends JPlugin {

    public function renameItem() {
        //подключаем конфиг zoo
        require_once(JPATH_ADMINISTRATOR . '/components/com_zoo/config.php');

        // получаем  ZOO приложение
        $zoo = App::getInstance('zoo');

        // регистрируем событие
        $zoo->event->register('ItemEvent');
        $zoo->event->dispatcher->connect('item:saved', array('plgSystemZooautoname', 'itemSaved'));
    }


    public function itemSaved($event) {

        $item = $event->getSubject();
        $new = $event['new']; //переменная чтобы проверить новый ли объект
        
        // в возвращенном объекте пытаюсь поменять имя
        $item->name = 'xxx';
    }


}

 
люди добрые подскажите, почему не работает плагин?


Сообщение отредактировал alexmixaylov: 09 February 2016 - 14:49

  • 0

#13 Cheren-dow

Cheren-dow

Отправлено 09 February 2016 - 15:00

alexmixaylov, вам к уже созданному имени нужно добавить какую то строку? Попробуйте вот так:

$item->name .= '-xxx';

  • 0
Изображение
 

#14 alexmixaylov

alexmixaylov

Отправлено 09 February 2016 - 15:02

мне нужно заменить

это каталог недвижимости и название каждого материала - это уникальный код

 

и точто я налепил :)

оно почемуто не работает

я сохраняю материал,  но это не оказывает никакого влияния на его имя


Сообщение отредактировал alexmixaylov: 09 February 2016 - 15:03

  • 0

#15 Cheren-dow

Cheren-dow

Отправлено 09 February 2016 - 15:24

alexmixaylov, плагин у вас в списке плагинов появился? Он у вас включен? 


  • 0
Изображение
 

#16 alexmixaylov

alexmixaylov

Отправлено 09 February 2016 - 15:43

Да появился и включен


  • 0

#17 Cheren-dow

Cheren-dow

Отправлено 09 February 2016 - 15:49

alexmixaylov, можете архив плагина приложить, попробую у себя запустить.? 


  • 0
Изображение
 

#18 alexmixaylov

alexmixaylov

Отправлено 09 February 2016 - 16:26

Прикрепленный файл  zooautoname.zip   1.3К   28 Количество загрузок:

пожалуйста


  • 0

#19 alexmixaylov

alexmixaylov

Отправлено 11 February 2016 - 09:17

можете архив плагина приложить, попробую у себя запустить.? 
 

Что скажете?


  • 0

#20 SmetDenis

SmetDenis

Отправлено 11 February 2016 - 19:03   Лучший Ответ

Добрый день,

 

Почти все правильно, только стоит обратить на эти моменты

 

6z63_200x0.png

 

 

onAfterInitialise - метод Joomla, который будет вызван сразу после загрузки Joomla

register('plgSystemZooautoname'); - регистрируем класс для вызова в нем методов-событий

 

item:save - вызывается до сохранения в базу

item:saved - материал уже сохранен и изменения $item не попадут в базу.

Прикрепленные файлы

  • Прикрепленный файл  zooautoname.zip   1.22К   42 Количество загрузок:

  • 3
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.





Click to return to top of page in style!