Jump to content


Photo
- - - - -

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


Best Answer SmetDenis , 11 February 2016 - 19:03

Добрый день,

 

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

 

6z63_200x0.png

 

 

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

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

 

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

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

Go to the full post


  • This topic is locked This topic is locked
20 replies to this topic

#11 alexmixaylov

alexmixaylov
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 7.7
  • posts: 679
  • topics: 142

Posted 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
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 7.7
  • posts: 679
  • topics: 142

Posted 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';
    }


}

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


Edited by alexmixaylov, 09 February 2016 - 14:49.

  • 0

#13 Cheren-dow

Cheren-dow
  • JBZoo User (rus)
  • User rate: 95.7
  • posts: 5060
  • topics: 31

Posted 09 February 2016 - 15:00

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

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

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

#14 alexmixaylov

alexmixaylov
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 7.7
  • posts: 679
  • topics: 142

Posted 09 February 2016 - 15:02

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

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

 

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

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

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


Edited by alexmixaylov, 09 February 2016 - 15:03.

  • 0

#15 Cheren-dow

Cheren-dow
  • JBZoo User (rus)
  • User rate: 95.7
  • posts: 5060
  • topics: 31

Posted 09 February 2016 - 15:24

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


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

#16 alexmixaylov

alexmixaylov
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 7.7
  • posts: 679
  • topics: 142

Posted 09 February 2016 - 15:43

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


  • 0

#17 Cheren-dow

Cheren-dow
  • JBZoo User (rus)
  • User rate: 95.7
  • posts: 5060
  • topics: 31

Posted 09 February 2016 - 15:49

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


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

#18 alexmixaylov

alexmixaylov
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 7.7
  • posts: 679
  • topics: 142

Posted 09 February 2016 - 16:26

Attached File  zooautoname.zip   1.3KB   58 downloads

пожалуйста


  • 0

#19 alexmixaylov

alexmixaylov
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 7.7
  • posts: 679
  • topics: 142

Posted 11 February 2016 - 09:17

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

Что скажете?


  • 0

#20 SmetDenis

SmetDenis
  • Administrators
  • User rate: 139.4
  • posts: 16232
  • topics: 200

Posted 11 February 2016 - 19:03   Best Answer

Добрый день,

 

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

 

6z63_200x0.png

 

 

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

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

 

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

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

Attached Files


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



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





Click to return to top of page in style!