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


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

Как поменять во всех JBZoo айтемах Родительскую категорию


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

#1 Вадим

Вадим

Отправлено 08 February 2013 - 13:11

Подскажите, пожалуйста, как с наименьшими усилиями поменять во всех JBZoo айтемах Родительскую категорию на одну определенную (с ID=xxx)? Желательно без sql stored procedures.

Это нужно, чтобы во всех дублях Zoo проставился rel="canonical" именно одной категории, а не вразброс.
  • 0
Администратор кулинарного сайта http://chtoprigotovit.ru. Если проголодаетесь - милости просим! ;)

#2 SmetDenis

SmetDenis

Отправлено 09 February 2013 - 07:23

Через SQL сделать не получится.

Выполните следующий код.
<?php
$zoo = Zoo::getInstance('zoo');
$items = $zoo->table->item->findAll('<ID каталога>');
foreach($items as $item) {
    $item->params->set('config.primary_category', <ID новой родительской категории>);
    $zoo->table->item->save($item);
}
PS Cделайте бекап сайта. Работу кода не проверял.
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



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


#3 Вадим

Вадим

Отправлено 09 February 2013 - 19:17

Огромное спасибо, Денис! Попробую.
  • 0
Администратор кулинарного сайта http://chtoprigotovit.ru. Если проголодаетесь - милости просим! ;)

#4 Вадим

Вадим

Отправлено 09 February 2013 - 23:11

Через SQL сделать не получится.

Выполните следующий код.

<?php
$zoo = Zoo::getInstance('zoo');
$items = $zoo->table->item->findAll('<ID каталога>');
foreach($items as $item) {
    $item->params->set('config.primary_category', <ID новой родительской категории>);
    $zoo->table->item->save($item);
}
PS Cделайте бекап сайта. Работу кода не проверял.


Скрипт выдает ошибку "Fatal error: Class 'Zoo' not found in /.../test1.php on line 2", т.е. не проходит строка "$zoo = Zoo::getInstance('zoo');".

Помогите, пожалуйста, разобраться.


  • 0
Администратор кулинарного сайта http://chtoprigotovit.ru. Если проголодаетесь - милости просим! ;)

#5 Вадим

Вадим

Отправлено 10 February 2013 - 01:29

При изменении строки 2 вместо Zoo App и добавлении перед ней новой:
require_once('<полный адрес>/config.php');
$zoo = App::getInstance('zoo');

и запуске под cron'ом или ssh выдается ошибка "Restricted access" к config.php.
  • 0
Администратор кулинарного сайта http://chtoprigotovit.ru. Если проголодаетесь - милости просим! ;)

#6 SmetDenis

SmetDenis

Отправлено 10 February 2013 - 04:02

Сначала вы используете один из классов Zoo, не подключив Zoo :)
Потом вы используете Zoo, не подключив Joomla, и нарушаете порядок включения файлов :)

Запустите код в одном из шаблонов JBZoo, например.

Если вам нужно, чтобы это происходило по крону, то лучше написать свой простейший компонент, который будет подключать Zoo.
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



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


#7 Вадим

Вадим

Отправлено 10 February 2013 - 19:54

Сначала вы используете один из классов Zoo, не подключив Zoo :)
Потом вы используете Zoo, не подключив Joomla, и нарушаете порядок включения файлов :)

Запустите код в одном из шаблонов JBZoo, например.

Если вам нужно, чтобы это происходило по крону, то лучше написать свой простейший компонент, который будет подключать Zoo.


Денис, подскажите, пожалуйста, в какой файл добавить.
Добавил в файл mysubmissions.php, и при открытии ошибка Fatal error: Class 'Zoo' not found.
  • 0
Администратор кулинарного сайта http://chtoprigotovit.ru. Если проголодаетесь - милости просим! ;)

#8 SmetDenis

SmetDenis

Отправлено 10 February 2013 - 21:46

Например в шаблоне материала - http://forum.joomla-...opic,790.0.html

Исправил пример кода
$zoo = App::getInstance('zoo');
$items = $zoo->table->item->findAll('<ID каталога>');
foreach($items as $item) {
    $item->params->set('config.primary_category', <ID новой родительской категории>);
    $zoo->table->item->save($item);
}

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



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


#9 Вадим

Вадим

Отправлено 14 February 2013 - 19:03

Спасибо, Денис! Помогло.
  • 0
Администратор кулинарного сайта http://chtoprigotovit.ru. Если проголодаетесь - милости просим! ;)




Click to return to top of page in style!