Нашел интересный баг. для 1.10.1
есть раздел статей, есть в разделе статьи.
Удаляешь раздел, спрашивает "Удалить раздел?", отвечаешь — ДА, спрашивает "Удалить все статьи раздела?", отвечаешь НЕТ!!!!, а статьи удаляются...
как сделать так, чтобы движение по удалению начиналось толлько после второго подтверждения, а не сразу?
БАГ.Удаление раздела статей
ЕСТЬ РЕШЕНИЕ
ЗАКРЫТО
#1
12 августа 2013 в 17:00
#2
12 августа 2013 в 17:09
Это наверное не баг, сколько не правильно сформулированное второе предупреждение. Вместо "Удалить все статьи раздела?" там видимо должно быть уточнение "Вместе с разделом будут удалены все статьи".
А статьи просто предварительно нужно переносить в другой раздел если они нужны, вот только нет возможности массового переноса. А так… если удалить раздел не удаляя стать, где они должны располагаться после удаления раздела?
А статьи просто предварительно нужно переносить в другой раздел если они нужны, вот только нет возможности массового переноса. А так… если удалить раздел не удаляя стать, где они должны располагаться после удаления раздела?
#3
12 августа 2013 в 17:11
должно происходить отмена всего процесса удаления, или как в джумле: в разделе есть статьи, я не могу удалить раздел, т.е. разбить процедуру на 2 части: сначала удалить статьи, затем раздел
Сегодня в 12:21
#4
12 августа 2013 в 17:19
проверил у себя. Да на втором шаге нажимаю "Отмена" все равно удаляется и раздел и статьи
#5
12 августа 2013 в 17:20
вот вот
В /admin/js/content.js, ищите метод deleteCat(), примерно 64 строчка.
Замените текст метода на (привожу целиком)В этом случае "ДА" на первый вопрос и "НЕТ" на второй — не будет и удаления раздела. Лишь два "ДА" приведут сперва к удалению статей (это в модели делается, в методе deleteCategory(), файл components/content/model.php), а затем и самого раздела.
Замените текст метода на (привожу целиком)
function deleteCat(cat_name, cat_id){ var sure = confirm('Удалить раздел "'+cat_name+'" и подразделы?'); if (!sure){return;} var is_with_content = confirm('Удалить все вложенные статьи?'); if(!is_with_content){return;} }
По идее, при удалении раздела, но НЕудаления статей, статьи нужно переводить в корневой раздел (для последующего размещения по разделам) но такого механизма я в модели не вижу. А ведь в методе модели deleteCategory() достаточно найти строчку и ПЕРЕД ней вставить В этом случае изменения, которые я предлагал в #6 посту, делать не нужно.
$this->inDB->deleteNS('cms_category', $id);
if (!$is_with_content){ $articles = $this->getNestedArticles($id); foreach($articles as $article){ $sql = "UPDATE cms_content SET category_id=0 WHERE id={$article['id']}"; $this->inDB->query($sql); } }
#8
12 августа 2013 в 18:32
а если сделать доп.опцию в форме:
"Удалить статьи"
"Переместить статьи в раздел "удаленное"
"Отменить операцию"
???
"Удалить статьи"
"Переместить статьи в раздел "удаленное"
"Отменить операцию"
???
По идее, конечно, все можно. НО:
1. Они и без хака удаляются.
2. А зачем, если достаточно создать раздел "Удаленное" и перенести туда статьи? Естественно, раздел "Удаленное" скрыть от юзеров. Либо, как вариант, пользоваться архивом. Для этого все механизмы есть.
3. Умерла, так умерла. Не уверен, не удаляй.
1. Они и без хака удаляются.
2. А зачем, если достаточно создать раздел "Удаленное" и перенести туда статьи? Естественно, раздел "Удаленное" скрыть от юзеров. Либо, как вариант, пользоваться архивом. Для этого все механизмы есть.
3. Умерла, так умерла. Не уверен, не удаляй.
#10
12 августа 2013 в 19:25
тогда проще сделать как в посте 6
Как проще и ближе к вашей задаче, так и делайте. Хотя я порекомендовал вариант из #7 поста. И не забудте отписаться!
#12
13 августа 2013 в 05:32
если делать по посту №7, то надо процедуру:
— при удалении статей, переносить их в папку "Удаленные", для чего проверять, создана ли такая папка, если нет, создать ее.
— сделать копки "удалить статьи", "Сохранить статьи" и "Отмена"
— внедрить оба метода (посты 6 и 7) для возможности отмены операции на любом этапе
тогда да, такой хак будет просто супер, и с полноценной защитой от случайных необдуманных действий.
Увы, мне такое самому не написать пока :)
— при удалении статей, переносить их в папку "Удаленные", для чего проверять, создана ли такая папка, если нет, создать ее.
— сделать копки "удалить статьи", "Сохранить статьи" и "Отмена"
— внедрить оба метода (посты 6 и 7) для возможности отмены операции на любом этапе
тогда да, такой хак будет просто супер, и с полноценной защитой от случайных необдуманных действий.
Увы, мне такое самому не написать пока :)
#13
13 августа 2013 в 13:39
То есть вы хотите сделать какое-то подобие виндовской Корзины. Только, наверно, не папка "Удаленные", а раздел "Удаленные", поскольку все статьи хранятся в БД.
Давайте тогда так сделаем. Я сейчас немного занят. Ближе к вечеру, (или завтра) напишу этот хак и выложу его в своем блоге, со ссылкой на вас, как обнаружевшего баг.
Давайте тогда так сделаем. Я сейчас немного занят. Ближе к вечеру, (или завтра) напишу этот хак и выложу его в своем блоге, со ссылкой на вас, как обнаружевшего баг.
не вопрос :)
можно даже без ссылки😊я ж баг не устраняю, только нашел :)
можно даже без ссылки😊я ж баг не устраняю, только нашел :)
Уже пишу; с моей точки зрения, быстрее баг исправить, чем найти)))
Ждите в моем блоге ближе к вечеру.
Задумка такая:
1. В колонке Действия появится еще одна иконка, при нажатии на которую предлагается перенести выбранную статью в раздел Удаленные. Если раздел не создан, он создается в Корневом разделе, и статья помещается туда. Естественно, раздел Удаленные ничем не отличается от других разделов и его потом можно отредактировать из админки.
2. При удалении раздела, содержащего статьи, первый вопрос: удалить раздел — ДА и второй вопрос: удалить статьи — НЕТ статьи отправляются в раздел Удаленные.
Так что ждите
Ждите в моем блоге ближе к вечеру.
Задумка такая:
1. В колонке Действия появится еще одна иконка, при нажатии на которую предлагается перенести выбранную статью в раздел Удаленные. Если раздел не создан, он создается в Корневом разделе, и статья помещается туда. Естественно, раздел Удаленные ничем не отличается от других разделов и его потом можно отредактировать из админки.
2. При удалении раздела, содержащего статьи, первый вопрос: удалить раздел — ДА и второй вопрос: удалить статьи — НЕТ статьи отправляются в раздел Удаленные.
Так что ждите