Перейти к содержимому
Русский язык для Invision Community 5

Массовое копирование разделов

Здравствуйте

 

Требуется создать большое количество одинаковых разделов в разных подразделах. Создавать по одному разделу довольно долго и сложно.

 

Возможно ли, допустим, сделать 10 разделов в определенном подразделе, а дальше эти 10 разделов продублировать в другом подразделе, а потом еще в одном?

 

 

Может есть какой-то хук/плагин, который расширяет функционал админки или какой-то запрос прямо в бд?

Рекомендованные сообщения

INSERT INTO forums (parent_id, name, description, use_html, sort_key, sort_order, prune, topicfilter, sub_can_post, name_seo, seo_last_title) SELECT 1, name, description, use_html, sort_key, sort_order, prune, topicfilter, sub_can_post, name_seo, seo_last_title FROM forums ORDER BY id DESC LIMIT 10

Продублирует в категории 1 (SELECT 1 - ид родительской категории) последние десять созданных форумов. Но кроме самих форумов нужны еще маски доступа, либо придется лезть в настройках форумов и редактировать их, или создать их также sql запросом.

  • Автор

Да, ваша команда работает. Создаются последние созданные разделы. А можно так, что бы скопировать УЖЕ созданные разделы?

 

Вот примерная структура разделов:

 

Раздел А
Раздел A
	Раздел 1
	Раздел 2
	Раздел 3
	Раздел 4
Раздел Б
Раздел B
	Раздел 1
	Раздел 2

Раздел В
Раздел C
	Раздел 1
	Раздел 2

 

Т.е. мне нужно скопировать Раздел 3 в Раздел B и Раздел C, потом скопировать Раздел 4.

Ну поиграйтесь с условием WHERE в селекте, укажите id каких форумов хотите скопировать, или форумы чей parent_id принадлежит этой категории.

  • Автор

Методом проб вывел команду, точнее в конце немного изменил:

INSERT INTO forums (parent_id, name, description, use_html, sort_key, sort_order, prune, topicfilter, sub_can_post, name_seo, seo_last_title) SELECT 2475, name, description, use_html, sort_key, sort_order, prune, topicfilter, sub_can_post, name_seo, seo_last_title FROM forums WHERE id IN (6, 7, 8)

 

Т.е. команда говорит чтобы в определенный раздел (2475) были вставлены следующие разделы (6, 7, 8)

 

А как теперь сделать наоборот, чтобы в перечень определенных разделов был вставлен один определенный раздел?

  • Автор

Не могли бы подсказать по предыдущей команде, правильна ли она?

 

И как теперь сделать наоборот, чтобы в перечень определенных разделов был вставлен один определенный раздел? А может даже вообще, выбрать определенные разделы и скопировать в определенные разделы.

INSERT INTO ... SELECT определенный_раздел_1, ...

INSERT INTO ... SELECT определенный_раздел_2, ...

INSERT INTO ... SELECT определенный_раздел_n, ...

  • Автор

Не получается у меня написать запрос, не силён я в этом.

 

siv1987, не могли бы вы написать запрос, как скопировать один раздел в перечень других разделов, или, подскажите, правильно ли составлен этот запрос?

 

INSERT INTO forums (parent_id, name, description, use_html, sort_key, sort_order, prune, topicfilter, sub_can_post, name_seo, seo_last_title) SELECT 2475, name, description, use_html, sort_key, sort_order, prune, topicfilter, sub_can_post, name_seo, seo_last_title FROM forums WHERE id IN (6, 7, 8)

 

Т.е. выбираются определенные разделы и копируются в один определенный раздел

Правильно.

Копируйте подфорумы указав условие WHERE id IN (ид_подфорума1, ид_подфорума2, ...). Запрос который собственно выше.

  • Автор

siv1987 спасибо

Создайте аккаунт или войдите в него для комментирования

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.