БАГ.Удаление раздела статей

 
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 1001
Нашел интересный баг. для 1.10.1
есть раздел статей, есть в разделе статьи.
Удаляешь раздел, спрашивает "Удалить раздел?", отвечаешь - ДА, спрашивает "Удалить все статьи раздела?", отвечаешь НЕТ!!!!, а статьи удаляются...

как сделать так, чтобы движение по удалению начиналось толлько после второго подтверждения, а не сразу?
Комплексный подход к Вашему онлайн-бизнесу: домены, хостинг, сайты.
Продажа качественных доменов.
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 2592
Это наверное не баг, сколько не правильно сформулированное второе предупреждение. Вместо "Удалить все статьи раздела?" там видимо должно быть уточнение "Вместе с разделом будут удалены все статьи".
А статьи просто предварительно нужно переносить в другой раздел если они нужны, вот только нет возможности массового переноса. А так.. если удалить раздел не удаляя стать, где они должны располагаться после удаления раздела?
Реклама
cms
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 1001
должно происходить отмена всего процесса удаления, или как в джумле: в разделе есть статьи, я не могу удалить раздел, т.е. разбить процедуру на 2 части: сначала удалить статьи, затем раздел
Комплексный подход к Вашему онлайн-бизнесу: домены, хостинг, сайты.
Продажа качественных доменов.
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 2592
проверил у себя. Да на втором шаге нажимаю "Отмена" все равно удаляется и раздел и статьи
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 1001
вот вот
Комплексный подход к Вашему онлайн-бизнесу: домены, хостинг, сайты.
Продажа качественных доменов.
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 1979
В /admin/js/content.js, ищите метод deleteCat(), примерно 64 строчка.
Замените текст метода на (привожу целиком)
Код PHP:
  1. function deleteCat(cat_name, cat_id){
  2. var sure = confirm('Удалить раздел "'+cat_name+'" и подразделы?');
  3. if (!sure){return;}
  4. var is_with_content = confirm('Удалить все вложенные статьи?');
  5. if(!is_with_content){return;}
  6. var link = '?view=cats&do=delete&id='+cat_id+'&content=1';
  7. window.location.href = link;
  8. }
В этом случае "ДА" на первый вопрос и "НЕТ" на второй - не будет и удаления раздела. Лишь два "ДА" приведут сперва к удалению статей (это в модели делается, в методе deleteCategory(), файл components/content/model.php), а затем и самого раздела.
Редактировалось: 6 раз (Последний: 12 августа 2013 в 18:02)
NOP
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 1979
По идее, при удалении раздела, но НЕудаления статей, статьи нужно переводить в корневой раздел (для последующего размещения по разделам) но такого механизма я в модели не вижу. А ведь в методе модели deleteCategory() достаточно найти строчку
Код PHP:
  1. $this->inDB->deleteNS('cms_category', $id);
и ПЕРЕД ней вставить
Код PHP:
  1. if (!$is_with_content){
  2. $articles = $this->getNestedArticles($id);
  3. foreach($articles as $article){
  4. $sql = "UPDATE cms_content SET category_id=0 WHERE id={$article['id']}";
  5. $this->inDB->query($sql);
  6. }
  7. }
В этом случае изменения, которые я предлагал в #6 посту, делать не нужно.
Редактировалось: 1 раз (Последний: 12 августа 2013 в 18:26)
NOP
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 1001
а если сделать доп.опцию в форме:

"Удалить статьи"
"Переместить статьи в раздел "удаленное"
"Отменить операцию"

???
Комплексный подход к Вашему онлайн-бизнесу: домены, хостинг, сайты.
Продажа качественных доменов.
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 1979
По идее, конечно, все можно. НО:
1. Они и без хака удаляются.
2. А зачем, если достаточно создать раздел "Удаленное" и перенести туда статьи? Естественно, раздел "Удаленное" скрыть от юзеров. Либо, как вариант, пользоваться архивом. Для этого все механизмы есть.
3. Умерла, так умерла. Не уверен, не удаляй.
Редактировалось: 1 раз (Последний: 12 августа 2013 в 19:03)
NOP
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 1001
тогда проще сделать как в посте 6
Комплексный подход к Вашему онлайн-бизнесу: домены, хостинг, сайты.
Продажа качественных доменов.
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 1979
Как проще и ближе к вашей задаче, так и делайте. Хотя я порекомендовал вариант из #7 поста. И не забудте отписаться!
Редактировалось: 1 раз (Последний: 13 августа 2013 в 03:31)
NOP
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 1001
если делать по посту №7, то надо процедуру:
- при удалении статей, переносить их в папку "Удаленные", для чего проверять, создана ли такая папка, если нет, создать ее.
- сделать копки "удалить статьи", "Сохранить статьи" и "Отмена"
- внедрить оба метода (посты 6 и 7) для возможности отмены операции на любом этапе

тогда да, такой хак будет просто супер, и с полноценной защитой от случайных необдуманных действий.

Увы, мне такое самому не написать пока :)
Комплексный подход к Вашему онлайн-бизнесу: домены, хостинг, сайты.
Продажа качественных доменов.
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 1979
То есть вы хотите сделать какое-то подобие виндовской Корзины. Только, наверно, не папка "Удаленные", а раздел "Удаленные", поскольку все статьи хранятся в БД.

Давайте тогда так сделаем. Я сейчас немного занят. Ближе к вечеру, (или завтра) напишу этот хак и выложу его в своем блоге, со ссылкой на вас, как обнаружевшего баг.
NOP
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 1001
не вопрос :)
можно даже без ссылки smile я ж баг не устраняю, только нашел :)
Редактировалось: 1 раз (Последний: 13 августа 2013 в 16:05)
Комплексный подход к Вашему онлайн-бизнесу: домены, хостинг, сайты.
Продажа качественных доменов.
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 1979
Уже пишу; с моей точки зрения, быстрее баг исправить, чем найти)))
Ждите в моем блоге ближе к вечеру.
Задумка такая:
1. В колонке Действия появится еще одна иконка, при нажатии на которую предлагается перенести выбранную статью в раздел Удаленные. Если раздел не создан, он создается в Корневом разделе, и статья помещается туда. Естественно, раздел Удаленные ничем не отличается от других разделов и его потом можно отредактировать из админки.
2. При удалении раздела, содержащего статьи, первый вопрос: удалить раздел - ДА и второй вопрос : удалить статьи - НЕТ статьи отправляются в раздел Удаленные.

Так что ждите
Редактировалось: 1 раз (Последний: 13 августа 2013 в 16:38)
NOP
В начало страницы
Предыдущая темаСледующая тема Перейти на форум: