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


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

Принудительная публикация материала в нужные категории


Лучший Ответ SmetDenis , 03 October 2013 - 09:17

Посмотрел. Разобрался.

У вас в форме подачи материала есть элемент категорий. Значения перебиваются им.
Код, о котором шла речь выше отвечает за категории по умолчанию

Далее сработает строка, которая выставит значения для категории из элемента формы.

  1. // trigger saved event
  2. $this->app->event->dispatcher->notify($this->app->event->create($this->submission, 'submission:saved', array('item' => $this->item, 'new' => !$edit)));
Т.е получается логический конфликт.

Решение.
media\zoo\elements\itemcategory\itemcategory.php afterSubmissionSave()
  1. public function afterSubmissionSave() {
  2. if (!empty($this->_categories)) {
  3. if (in_array('0', $this->app->category->getItemsRelatedCategoryIds($this->_item->id))) {
  4. $this->_categories[] = 0;
  5. }
  6. $this->_categories[] = 10; // список категорий
  7. $this->_categories[] = 22;
  8. $this->app->category->saveCategoryItemRelations($this->_item, $this->_categories);
  9. }
  10. }
Перейти к сообщению


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

#1 .polega.

.polega.

Отправлено 30 September 2013 - 09:48

смотрел на новой подаче
поставил свои ID категорий
категории в том же каталоге, что и подача материала
 и всё равно не работает :(
вот изменённый участок кода /components/com_zoo/controllers/submission.php
  1. // save to default category
  2. // принудительное сохранение в нужные мне категории
  3. if (!$edit && ($category = $this->submission->getForm($this->type->id)->get('category'))) {
  4. $allcategories = array($category,'10','22'); // список обязательных категорий
  5. $this->app->category->saveCategoryItemRelations($this->item, $allcategories);
  6. }

  • 0

#2 SmetDenis

SmetDenis

Отправлено 02 October 2013 - 06:35

Если вы дадите доступ к вашему сайту (ftp, joomla) то я смогу сказать что не так.
иначе затрудняюсь...
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



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


#3 .polega.

.polega.

Отправлено 02 October 2013 - 07:57

SmetDenis сказал(а) 02 Окт 2013 - 05:35:

Если вы дадите доступ к вашему сайту (ftp, joomla) то я смогу сказать что не так.
иначе затрудняюсь...

отправлю в ЛС


  • 0

#4 SmetDenis

SmetDenis

Отправлено 03 October 2013 - 09:17   Лучший Ответ

Посмотрел. Разобрался.

У вас в форме подачи материала есть элемент категорий. Значения перебиваются им.
Код, о котором шла речь выше отвечает за категории по умолчанию

Далее сработает строка, которая выставит значения для категории из элемента формы.
  1. // trigger saved event
  2. $this->app->event->dispatcher->notify($this->app->event->create($this->submission, 'submission:saved', array('item' => $this->item, 'new' => !$edit)));
Т.е получается логический конфликт.

Решение.
media\zoo\elements\itemcategory\itemcategory.php afterSubmissionSave()
  1. public function afterSubmissionSave() {
  2. if (!empty($this->_categories)) {
  3. if (in_array('0', $this->app->category->getItemsRelatedCategoryIds($this->_item->id))) {
  4. $this->_categories[] = 0;
  5. }
  6. $this->_categories[] = 10; // список категорий
  7. $this->_categories[] = 22;
  8. $this->app->category->saveCategoryItemRelations($this->_item, $this->_categories);
  9. }
  10. }

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



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


#5 .polega.

.polega.

Отправлено 03 October 2013 - 10:36

Спасибо, так действительно всё работает как и задумывалось!


  • 0




Click to return to top of page in style!