0 Пользователей и 1 Гость просматривают эту тему.
  • 5 Ответов
  • 250 Просмотров
*

tom_jdev

  • Новичок
  • 3
  • 0 / 0
Добрый день. Есть сайт, который работает с 2012 года, на котором скопилось очень много материалов. Возникла необходимость удалить материалы, которые опубликованы, но при этом сами не привязаны к меню или входят в категорию, которая не привязана к меню. Т.е. материалы существуют, опубликованы, ищутся поиском, но при этом нет страницы, к которой они привязаны. К сожалению те, кто сопровождал сайт ранее, не озадачились удалением материалов, когда в них пропадала необходимость.
Ну и собственно вопрос: как можно удалить такие материалы?
*

voland

  • Легенда
  • 10592
  • 564 / 111
  • Эта строка съедает место на вашем мониторе
Простыми методами - никак, пожалуй.
Тут надо придумать и написать скриптик чтоб их нашел и удалил
*

tom_jdev

  • Новичок
  • 3
  • 0 / 0
Простыми методами - никак, пожалуй.
Тут надо придумать и написать скриптик чтоб их нашел и удалил
Например, можно искать их запросами к БД, но тогда вопрос, по какому принципу?
*

voland

  • Легенда
  • 10592
  • 564 / 111
  • Эта строка съедает место на вашем мониторе
Например, можно искать их запросами к БД, но тогда вопрос, по какому принципу?

Да сложно там - строить дерево меню, с категориями и материалами и проходиться по каждому материалу, проверяя, есть ли оно в дереве
*

SeBun

  • Живу я здесь
  • 3660
  • 234 / 4
  • @SeBun48
В таблице #__categories находятся категории. Их там не так много обычно, вы можете легко получить ID тех категорий, которые у вас отключены. В таблице #__content находятся материалы. Вы можете их выбрать по значению столбца catid. Например, такой запрос:
Код
SELECT * FROM prefix_content where catid=1 OR catid=2 OR catid=3 

Такой запрос выдаст вам все материалы, относящиеся к конкретным категориям. Вы можете так же одним запросом снять их все с публикации. Удалять таким образом крайне не рекомендую, т.к. на материалы завязана еще одна таблица, #__assets, есть и другие связи. Так что я показываю лишь способ снятия с публикации. Например, такой запрос:

Код
UPDATE prefix_content SET state=0 where catid=1 OR catid=2 OR catid=3 

Примерно то же самое и с меню. Можно сделать выборку по материалам. Если пункт меню у вас ведет на конкретный материал, можно сделать составной запрос и выбрать материалы, на которые не ведет ни один пункт меню плюс дополнительные условия, например дату публикации, что бы не снять с публикации нужные материалы. Здесь, как сказал @voland, лучше всего написать скрипт, который будет решать такую задачу. И выполнить его в виде маленького компонента, что бы работать из админки самой Joomla. Ибо лезть с запросами в базу без четкого понимания, что делаешь - это плохая практика.
Оказываю услуги по Joomla | Миграция на Joomla 3.x | Сопровождение | IT-аутсорсинг
*

tom_jdev

  • Новичок
  • 3
  • 0 / 0
В таблице #__categories находятся категории. Их там не так много обычно, вы можете легко получить ID тех категорий, которые у вас отключены.
Категорий достаточно много (130+)
Здесь, как сказал @voland, лучше всего написать скрипт, который будет решать такую задачу. И выполнить его в виде маленького компонента, что бы работать из админки самой Joomla. Ибо лезть с запросами в базу без четкого понимания, что делаешь - это плохая практика.
Скорее всего напишу скрипт, а пока решил задачу(получения списка материалов) таким образом:

Код
SELECT #__content.id, #__content.title, #__content.alias, #__content.catid FROM #__content
LEFT JOIN #__menu ON #__menu.link = concat('index.php?option=com_content&view=article&id=', #__content.id)
WHERE #__menu.id is NULL AND #__content.catid IN (
SELECT #__categories.id FROM #__categories
LEFT JOIN #__menu ON #__menu.link = concat('index.php?option=com_content&view=category&id=', #__categories.id)
WHERE #__menu.id is NULL
)
AND #__content.state = 1
Спасибо, @voland, @SeBun
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Свои шаблоны для каждой категории материалов

Автор SkyAn

Ответов: 5
Просмотров: 152
Последний ответ 13.09.2019, 22:13:02
от Septdir
Добавление колонки со значениями полей материалов в таблицу списка

Автор scfx

Ответов: 1
Просмотров: 64
Последний ответ 13.09.2019, 10:58:34
от beliyadm
Как отключить блокировку материалов?

Автор Karyuudo

Ответов: 2
Просмотров: 107
Последний ответ 24.06.2019, 15:22:36
от pavel2950
Публикация материалов

Автор Asakrua

Ответов: 6
Просмотров: 518
Последний ответ 26.05.2019, 17:46:49
от Karyuudo
Вывод полей в макете материалов Joomla 3

Автор yarovidze

Ответов: 3
Просмотров: 158
Последний ответ 26.05.2019, 12:00:37
от yarovidze