Jump to content
View in the app

A better way to browse. Learn more.

IPBMafia.ru - поддержка Invision Community, релизы, темы, плагины и приложения

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Отложенные публикации тем [publicator.php]

Featured Replies

Posted

[0. Лирическое отступление]
Всем привет!
Спустя некоторое время я всё-таки решил выложить свой скрипт, о котором я писал вот тут. За это время исправил несколько ошибок и минимизировал код.

[1. Описание]
Данный cкрипт позволяет создавать "отложенные публикации", то есть вы создаёте тему, указываете время её публикации и затем, когда это время наступает, она публикуется автоматически.

[2. Техническая часть]
Скрипт не является часть движка IPB/форума/плагином/расширением и т.п.
Это всего лишь php-файл, который изменяет значения в вашей MySQL базе данных.
Используйте его только на свой страх и риск! Ко мне никаких претензий.

[3. Установка]
3.1
. Для примера, создайте в корне вашего сайта файл, и назовите его к примеру publicator.php
3.2. Скопируйте в него вот этот текст:

Спойлер

<?php
$dbhost = 'ваш_хост';
$dbuser = 'имя_пользователя';
$dbname = 'имя_бд';
$dbpass = 'пароль_бд';
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
mysqli_select_db($conn,$dbname);
mysqli_query  ($conn,"set_client='utf8'");
mysqli_query  ($conn,"set character_set_results='utf8'");
mysqli_query  ($conn,"set collation_connection='utf8_general_ci'");
mysqli_query  ($conn,"SET NAMES utf8");
$real_time = time();
$sql = "
UPDATE
`forums_topics`,
`forums_posts`,
`core_search_index`,
`forums_forums`
SET
`forums_topics`.`approved` = 1,
`forums_topics`.`start_date` = `forums_topics`.`topic_open_time`,
`forums_topics`.`last_post` = `forums_topics`.`topic_open_time`,
`forums_topics`.`last_real_post` = `forums_topics`.`topic_open_time`,
`forums_posts`.`queued` = 0,
`forums_posts`.`post_date` = `forums_topics`.`topic_open_time`,
`core_search_index`.`index_hidden` = 0,
`forums_forums`.`posts` = `forums_forums`.`posts` + 1,
`forums_forums`.`topics` = `forums_forums`.`topics` + 1,
`forums_forums`.`last_post` = `forums_topics`.`topic_open_time`,
`forums_forums`.`last_poster_id` = `forums_topics`.`starter_id`,
`forums_forums`.`last_poster_name` = `forums_topics`.`starter_name`,
`forums_forums`.`last_title` = `forums_topics`.`title`,
`forums_forums`.`last_id` = `forums_topics`.`tid`,
`forums_forums`.`seo_last_title` = `forums_topics`.`title_seo`,
`forums_forums`.`seo_last_name` = 1,
`core_search_index`.`index_date_created` = `forums_topics`.`topic_open_time`,
`core_search_index`.`index_date_updated` = `forums_topics`.`topic_open_time`
WHERE
`forums_topics`.`topic_open_time` < $real_time AND
`forums_topics`.`approved` = -1 AND
`forums_topics`.`tid` = `forums_posts`.`topic_id` AND
`core_search_index`.`index_item_id` = `forums_posts`.`topic_id` AND
`forums_topics`.`forum_id` = `forums_forums`.`id`
";
$result = mysqli_query($conn,$sql) or die(mysqli_error($conn));
?>

 

3.3. Не забудьте указать свои данные в переменных $dbhost, $dbuser, $dbname, $dbpass

3.4. Настройте cron хостинга на автоматический запуск файла с нужной вам периодичностью. 
Обычно это делается в панели управления вашим сайтом. Планировщик / Cron и пр.
У настроено выполнение раз в час, вы выставить можете хоть каждые 5 минут. Это лишь интервал проверки, нужно ли публиковать тему.

[4. Алгоритм работы]
Когда вы создаете новую тему, в колонке модератора (обычно справа) обязательно поставьте галочку напротив пункта "Скрыть тему".
А чуть ниже, в поле "Время открытия" укажите дату и время, когда вы хотите чтобы тема была опубликована.

Спойлер

1.png

Теперь, когда наш cron запустит файл publicator.php, он проверит нужно ли публиковать вашу свежую скрытую тему. Если указанное вами "Время открытия" уже наступила, то тема опубликуется с этим указанным временем.  И все соответствующие параметры в движке форума тоже изменятся соответствующим образом, такие как Активность, Последние темы, Количество сообщений форума/пользователя и т.п.

[5. Дополнения]
Если скрипт вам будет полезен, просто лайкните мой пост, чтобы я знал что это всё было не зря )
Если вы создаете много таких "отложенных" тем, возможно вам будет полезно вывести "Время отложенной публикации" в списке тем форума, который доступен только для админа. Пишите в личку, расскажу как настроить.

Возможно вам также будут интересны другие мои темы:
Делаем анонимный раздел (Подслушано)
Меняем дату, время и автора поста / темы

Всем удачи. Желаю вам победить все баги, которые вы встретите на своём интернет-пути )

Допустил несколько грамматических ошибок при создании темы, а изменять уже не могу.
Но если что, думаю суть будет понятна.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Ответить в этой теме...

Последние посетители 0

  • No registered users viewing this page.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.