Глючек при попытке перенести статью из раздела в другой раздел

+11
1.55K
Обнаружился глючек при переносе статьи из раздела в раздел в функции moveArticlesToCat. У переносимой статьи не обновлялось seolink. Вот исправленная версия:

  1.  
  2. public function moveArticlesToCat($articles, $to_cat_id) {
  3.  
  4. foreach($articles as $article_id) {
  5. $article = $this->getArticle($article_id);
  6. $article['category_id'] = $to_cat_id;
  7. $this->updateArticle($article_id, $article);
  8. }
  9.  
  10. return true;
  11.  
  12. }
  13.  
0
RIM5 RIM5 11 лет назад #
Спасибо за правку smile
А я вот думаю, как сделать так, чтобы URL - оставался всегда одним и тем же в следующих случаях:
1. При изменении названия статьи (из админки и из фронта)
2. При изменении категории (при переносе и последующих редактированиях на фронте).

Объясню, почему это нужно (по-крайней мере мне) - в индексе более 100 000 страниц, ежедневно правятся на сайте более 200 произведений (меняется название или категория). Что в итоге происходит? Страницы, которые были в индексе - переходят в ошибки, ведь по данному адресу уже нет статьи - у статьи другой URL (и когда её вновь проиндексируют - неизвестно).
В общем, хотелось бы таким образом уменьшить число ошибочных страниц в индексе.
+1
vicoder vicoder 11 лет назад #
Все очень просто! при добавлении новой статьи прописывать в поле url значение поля seolink
0
RIM5 RIM5 11 лет назад #
Я тоже об этом подумал smile Спасибо за пост - он явился толчком для размышлений и для работы над сайтом smile
+1
prosis prosis 11 лет назад #
надо указывать для какой версии! для 1.10+ не актуально.
0
Suslik Suslik 11 лет назад #
ой, а для какой это версии?
0
Dorimen Dorimen 11 лет назад #
А что на что нужно заменить? Немного не ясно. И да, для какой это версии Инстанта?
0
wportal wportal 11 лет назад #
у меня все ок. версия 1.10.1. ничего не глючит
0
vicoder vicoder 11 лет назад #
соорри, что не указал версию: 1.9. Не проследил, что в последних версиях уже исправлено
0
Dorimen Dorimen 11 лет назад #
vicoder, правильно ли я понимаю, что в файле components/content/model.php

public function moveArticlesToCat($articles, $to_cat_id) {

$ids = rtrim(implode(',', $articles), ',');

$this->inDB->query("UPDATE cms_content SET category_id = {$to_cat_id} WHERE id IN ({$ids})");

return true;

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

public function moveArticlesToCat($articles, $to_cat_id) {

foreach($articles as $article_id) {
$article = $this->getArticle($article_id);
$article['category_id'] = $to_cat_id;
$this->updateArticle($article_id, $article);
}

return true;

}
0
vicoder vicoder 11 лет назад #
да-да, верно. Как оказалось, это для версии < 1.10

Еще от автора

связка ishop и программа Покупка на Яндекс-маркете (2)
продолжение http://instantcms.ru/blogs/uluchshenija/svjazka-ishop-i-programa-pokupka-na-jandeks-markete.htmlпервой части
связка ishop и программа Покупка на Яндекс-маркете
Яндекс маркет позволяет заказывать товары непосредственно с яндекса - удобная штука.
Сортировка дополнительных картинок в шопе drag'n'drop
Сделал возможность перемещения дополнительных картинок в шопе: т.е. можно мышкой взять и перетащить картинку вверх-вниз, как требуется
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.