Как создать форумы из текстового файла список.txt?

Проблемы с установкой или работой phpBB 3.0.x? Получите помощь здесь!
С 1 января 2017 года phpBB Group прекращает поддержку phpBB версии 3.0.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.0 до 1 июля 2017 года.
Подробнее: Окончание поддержки phpBB 3.0.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
goshka
phpBB 1.4.2
Сообщения: 71
Стаж: 12 лет 10 месяцев
Благодарил (а): 42 раза
Поблагодарили: 3 раза

Как создать форумы из текстового файла список.txt?

Сообщение goshka »

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

Как создать(корректировать) разделы с форумами из списка, который находится в текстовом файле?

Чтобы не создавать по-одному форуму! При большом количестве форумов на это уйдет несколько дней. А если захочешь что-то в каждый раздел добавить, то и еще куча веремени уйдет...

По идее, разработчики такие средства автоматизации должны безусловно предусматривать!

Пример. список.txt:

Раздел 1 Права X
Форум 1 Права X
Форум 2 Права X
Форум 3 Права X
Форум 4 Права X
Форум 5 Права X

Раздел 2 Права X
Форум 1 Права X
Форум 2 Права X
Форум 3 Права X
Форум 4 Права X

Раздел 3 Права X
Форум 1 Права X
Форум 2 Права X
Форум 3 Права X
Форум 4 Права X
Форум 5 Права X

Раздел 4 Права X
Форум 1 Права X
Форум 2 Права X
Форум 3 Права X
Форум 4 Права X
Форум 5 Права X

Раздел 5 Права X
Форум 1 Права X
Форум 2 Права X
Форум 3 Права X
Форум 4 Права X
Форум 5 Права X

И т.д.
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 13159
Стаж: 15 лет 1 месяц
Благодарил (а): 236 раз
Поблагодарили: 3750 раз

Re: Как создать форумы из текстового файла список.txt?

Сообщение Татьяна5 »

Проект обычно начинают с одного (максимум двух) форумов, создавая другие по мере необходимости (когда наберётся не менее полусотни тем подходящей тематики). В пустые форумы пользователи не пишут. Так что автоматизация создания форумов не нужна (а для новых проектов с 1-2 темами ещё и вредна, на этих двух темах всё и остановится)
goshka
phpBB 1.4.2
Сообщения: 71
Стаж: 12 лет 10 месяцев
Благодарил (а): 42 раза
Поблагодарили: 3 раза

Re: Как создать форумы из текстового файла список.txt?

Сообщение goshka »

Спасибо.

Но в нашей задаче надо сразу. Иначе смысла не имеет...

50-70 нужных населенных пунктов (это разделы), в них по 30 одинаковых форумов.
Итого 1500-2100 форумов
Последний раз редактировалось goshka 25.08.2014 15:21, всего редактировалось 1 раз.
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 13159
Стаж: 15 лет 1 месяц
Благодарил (а): 236 раз
Поблагодарили: 3750 раз

Re: Как создать форумы из текстового файла список.txt?

Сообщение Татьяна5 »

Итого 50-70 форумов, по числу населённых пунктов. Больше, для начала, делать не стоит. И срочно заполнять их контентом (2500-3500 тем, и хотя бы по 5-10 сообщений в каждой, это немало... а меньше смысла не имеет)

Ещё вариант - другая структура, 30 форумов с разделением на нас.пункты модом вроде Topic Prefixes
goshka
phpBB 1.4.2
Сообщения: 71
Стаж: 12 лет 10 месяцев
Благодарил (а): 42 раза
Поблагодарили: 3 раза

Re: Как создать форумы из текстового файла список.txt?

Сообщение goshka »

Татьяна, спасибо за участие.
А вот 2000 форумов (в 50 разделах) это чем плохо?
(по форумам у меня нет НИКАКОГО опыта)
Нагрузка на движок большая?
Тормозить сильно будет?
Или база затрещит?
Временные файлы большие будут?
Страница большая и не красивая?
Навигация неудобная, замедленная?
?
Аватара пользователя
xisp
phpBB 3.0.0 RC7
Сообщения: 1798
Стаж: 14 лет 4 месяца
Благодарил (а): 152 раза
Поблагодарили: 215 раз
Забанен: Бессрочно

Re: Как создать форумы из текстового файла список.txt?

Сообщение xisp »

Нет, просто будет выглядеть пусто. А в пустые форумы никто не пишет, они пугают новичков. Да и не нужно столько. На популярных форумах не наберётся даже сотни разделов, исключения разве что мегапопулярные торрент трекеры.
phpBBex
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 13159
Стаж: 15 лет 1 месяц
Благодарил (а): 236 раз
Поблагодарили: 3750 раз

Re: Как создать форумы из текстового файла список.txt?

Сообщение Татьяна5 »

goshka писал(а):Тормозить сильно будет?
На слабых хостингах может. Особенно при редактировании одного из первых созданных форумов.
Anvar
Former team member
Сообщения: 1964
Стаж: 16 лет 5 месяцев
Благодарил (а): 67 раз
Поблагодарили: 800 раз

Re: Как создать форумы из текстового файла список.txt?

Сообщение Anvar »

Тормозить сильно будет?
Страница большая и не красивая?
Мне кажется что будет очень не красиво и очень даже иногда не доступна главная форума, так как все форумы будут на одной странице.
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11361
Стаж: 16 лет 8 месяцев
Благодарил (а): 1832 раза
Поблагодарили: 1358 раз

Re: Как создать форумы из текстового файла список.txt?

Сообщение Пчелкин »

А он список подфорумов в столбик сделает на главной (например). Немного укоротит высоту главной. Хотя и это не поможет "разбежаться" глазам. Глаукома всем обеспечена...
Делал как-то -
Категории - регионы Россеи всей
Родительские форумы - области и края в регионах
Подфорумы - районы и поселения в краях и областях.
Вышло в общей сложности вроде около 1250 подфорумов..
Но!!!!!!
При регистрации был выбор в какую группу какого региона ты регишься (есть такой мод - поищите)...
Поэтому более 80% каждая группа каждого региона на форуме просто не видела...
Гости видели все, но без варианта читания тем. (тож есть такой мод - поищите - списки тем в подфорумах гостям видно а прочитать низя)
Я не дома с ходу названия модов не смогу написать...
NIKON-D90, AF-S 18-105, AF-S 14-24, AF-S 24-70
goshka
phpBB 1.4.2
Сообщения: 71
Стаж: 12 лет 10 месяцев
Благодарил (а): 42 раза
Поблагодарили: 3 раза

Re: Как создать форумы из текстового файла список.txt?

Сообщение goshka »

Подскажите, пжлс, где хранятся права групп/пользователей, как ими можно управлять (копировать) из php скрипта и любую инфо как с ними работать...

В идеале, нужен пример (скрипт) как Форуму Х назначить (скопировать) права Форума Y.

Спасибо.
Аватара пользователя
владимир1983
phpBB 3.2.6
Сообщения: 5954
Стаж: 16 лет 4 месяца
Откуда: Сергиев Посад
Благодарил (а): 373 раза
Поблагодарили: 727 раз

Re: Как создать форумы из текстового файла список.txt?

Сообщение владимир1983 »

Админ. раздел > Права доступа > Копирование прав доступа
За ваши деньги решу ваши проблемы. Стучи в ЛС.
Нет человека - нет проблемы. (c)
goshka
phpBB 1.4.2
Сообщения: 71
Стаж: 12 лет 10 месяцев
Благодарил (а): 42 раза
Поблагодарили: 3 раза

Re: Как создать форумы из текстового файла список.txt?

Сообщение goshka »

Спасибо.
Имелся в виду код (таблицы, поля, связи), инструкции по коду, скрипты из дистрибутива и сторонних разработок, примеры скриптов по копированию прав из образца. И все такое...
goshka
phpBB 1.4.2
Сообщения: 71
Стаж: 12 лет 10 месяцев
Благодарил (а): 42 раза
Поблагодарили: 3 раза

Re: Как создать форумы из текстового файла список.txt?

Сообщение goshka »

Код: Выделить всё

 
function copy_forum_permissions($src_forum_id, $dest_forum_ids, $clear_dest_perms = true, $add_log = true) {
   global $db;

   // Only one forum id specified
   if (!is_array($dest_forum_ids)) {
      $dest_forum_ids = array($dest_forum_ids);
   }

   // Make sure forum ids are integers
   $src_forum_id = (int) $src_forum_id;
   $dest_forum_ids = array_map('intval', $dest_forum_ids);

   // No source forum or no destination forums specified
   if (empty($src_forum_id) || empty($dest_forum_ids))  {
      return false;
   }

   // Check if source forum exists
   $sql = 'SELECT forum_name FROM ' . FORUMS_TABLE . ' WHERE forum_id = ' . $src_forum_id;
   $result = $db->sql_query($sql);
   $src_forum_name = $db->sql_fetchfield('forum_name');
   $db->sql_freeresult($result);

   // Source forum doesn't exist
   if (empty($src_forum_name)) { return false; }

   // Check if destination forums exists
   $sql = 'SELECT forum_id, forum_name
      FROM ' . FORUMS_TABLE . '
      WHERE ' . $db->sql_in_set('forum_id', $dest_forum_ids);
   $result = $db->sql_query($sql);

   $dest_forum_ids = $dest_forum_names = array();
   while ($row = $db->sql_fetchrow($result))  {
      $dest_forum_ids[]   = (int) $row['forum_id'];
      $dest_forum_names[]   = $row['forum_name'];
   }
   $db->sql_freeresult($result);

   // No destination forum exists
   if (empty($dest_forum_ids)) { return false; }

   // From the mysql documentation:
   // Prior to MySQL 4.0.14, the target table of the INSERT statement cannot appear
   // in the FROM clause of the SELECT part of the query. This limitation is lifted in 4.0.14.
   // Due to this we stay on the safe side if we do the insertion "the manual way"

   // Rowsets we're going to insert
   $users_sql_ary = $groups_sql_ary = array();

   // Query acl users table for source forum data
   $sql = 'SELECT user_id, auth_option_id, auth_role_id, auth_setting
      FROM ' . ACL_USERS_TABLE . ' WHERE forum_id = ' . $src_forum_id;
   $result = $db->sql_query($sql);

   while ($row = $db->sql_fetchrow($result)) {
      $row = array(
         'user_id'         => (int) $row['user_id'],
         'auth_option_id'   => (int) $row['auth_option_id'],
         'auth_role_id'      => (int) $row['auth_role_id'],
         'auth_setting'      => (int) $row['auth_setting'],
      );

      foreach ($dest_forum_ids as $dest_forum_id)  {
         $users_sql_ary[] = $row + array('forum_id' => $dest_forum_id);
      }
   }
   $db->sql_freeresult($result);

   // Query acl groups table for source forum data
   $sql = 'SELECT group_id, auth_option_id, auth_role_id, auth_setting
      FROM ' . ACL_GROUPS_TABLE . '
      WHERE forum_id = ' . $src_forum_id;
   $result = $db->sql_query($sql);

   while ($row = $db->sql_fetchrow($result))  {
      $row = array(
         'group_id'         => (int) $row['group_id'],
         'auth_option_id'   => (int) $row['auth_option_id'],
         'auth_role_id'      => (int) $row['auth_role_id'],
         'auth_setting'      => (int) $row['auth_setting'],
      );

      foreach ($dest_forum_ids as $dest_forum_id)  {
         $groups_sql_ary[] = $row + array('forum_id' => $dest_forum_id);
      }
   }
   $db->sql_freeresult($result);

   $db->sql_transaction('begin');

   // Clear current permissions of destination forums
   if ($clear_dest_perms)  {
      $sql = 'DELETE FROM ' . ACL_USERS_TABLE . '
         WHERE ' . $db->sql_in_set('forum_id', $dest_forum_ids);
      $db->sql_query($sql);

      $sql = 'DELETE FROM ' . ACL_GROUPS_TABLE . '
         WHERE ' . $db->sql_in_set('forum_id', $dest_forum_ids);
      $db->sql_query($sql);
   }

   $db->sql_multi_insert(ACL_USERS_TABLE, $users_sql_ary);
   $db->sql_multi_insert(ACL_GROUPS_TABLE, $groups_sql_ary);

   if ($add_log)  {
      add_log('admin', 'LOG_FORUM_COPIED_PERMISSIONS', $src_forum_name, implode(', ', $dest_forum_names));
   }

   $db->sql_transaction('commit');

   return true;
}

[/size]

Вернуться в «Поддержка phpBB 3.0.х»