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

tom_jdev

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

voland

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

tom_jdev

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

voland

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

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

SeBun

  • Живу я здесь
  • 3984
  • 256 / 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
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Удаление страниц категорий

Автор bigbelka

Ответов: 0
Просмотров: 51
Последний ответ 12.05.2021, 12:01:06
от bigbelka
Удаление отступов вокруг хэдера в шаблоне jm-services

Автор Deir

Ответов: 14
Просмотров: 272
Последний ответ 24.04.2021, 13:21:27
от IToro82
Лента новостей показывает только 9 материалов из категории

Автор Zixi 2020

Ответов: 1
Просмотров: 91
Последний ответ 20.04.2021, 10:13:35
от Zixi 2020
Генерация алиасов для материалов с одинаковым названием

Автор revil

Ответов: 4
Просмотров: 131
Последний ответ 01.04.2021, 16:08:29
от revil
Метки / теги - вывод только избранных материалов, как?

Автор x1

Ответов: 0
Просмотров: 92
Последний ответ 16.03.2021, 15:32:03
от x1