Jump to content

Как закрывать форумы автоматически?

Featured Replies

Здравствуй,

Я провожу несколько конкурсов на своих форумах, и было бы здорово, если бы существовал инструмент или плагин для автоматического закрытия форумов в установленное время. Например, после полуночи никто не может размещать темы в определенной области.

Прямо сейчас мне нужно выполнить запрос через cronjob, чтобы это сделать. Было бы здорово назначить такие разрешения некоторым группам.

Это запрос:

$sql = "UPDATE core_permission_index SET perm_3='' WHERE perm_id=114 AND perm_type_id=29"

Спасибо!

Link to comment
https://ipbmafia.ru/topic/23420-kak-zakryvat-forumy-avtomaticheski/
Share on other sites
<?php

\define('REPORT_EXCEPTIONS', TRUE);
$_SERVER['SCRIPT_FILENAME']	= __FILE__;
require_once 'init.php';
\IPS\Session\Front::i();

\IPS\Db::i()->update( 'core_permission_index', array('perm_3'=>''), array( 'perm_id=? and perm_type_id=?', 114, 29 ));

Создайте файлик в корне, вызывайте через cron

Link to comment
https://ipbmafia.ru/topic/23420-kak-zakryvat-forumy-avtomaticheski/?&do=findComment&comment=171630
Share on other sites

Строчка \IPS\Session\Front::i(); лишняя, можно удалить.

Если размещать файл не в корне, то надо указать правильный путь к init.php, типа require_once '../../init.php';

Link to comment
https://ipbmafia.ru/topic/23420-kak-zakryvat-forumy-avtomaticheski/?&do=findComment&comment=171631
Share on other sites

Desti У меня уже есть файл, который вызывается через cron:

Spoiler
<?php
/*if(php_sapi_name() !== 'cli'){
    die('Access denied.');
}*/
$secretphrase= "PASSWORD";
if (!isset($_GET[$secretphrase])) {
    http_response_code(401);
    die('Access denied.');
}

$servername = "localhost";
$username = "USERNAME";
$password = "PASSWORD";
$dbname = "DB";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}

$sql = "UPDATE core_permission_index SET perm_3='' WHERE perm_id=114 AND perm_type_id=29";

if ($conn->query($sql) === TRUE) {
  echo "Record updated successfully!";
} else {
  echo "Error updating record: " . $conn->error;
}

$conn->close();
?>

 

Но ваше решение звучит проще.

Я искал способ разрешить определенной группе получить доступ к странице .php, выбрать правильный форум и выбрать время, когда он должен блокировать публикацию новых тем. Или, может быть, плагин.

Звучит не слишком сложно, но, вероятно, потребуется время, верно?

Link to comment
https://ipbmafia.ru/topic/23420-kak-zakryvat-forumy-avtomaticheski/?&do=findComment&comment=171798
Share on other sites

BlackShot самый простой вариант, это создать новую страницу c блоком.
 

Спойлер

создать php блок.
11.thumb.PNG.a1efeeade4c4eee792f0fa29e74383c1.PNG

придумать любой ключ.
22.thumb.PNG.6013b78566c592342290145f453006a8.PNG

вставить свой код туда, я немного изменил его.
33.PNG.ec53318aa6b30855106db51f41d9b7da.PNG

$servername = "***";
$username = "***";
$password = ""***";";
$dbname = ""***";";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}

$perm = '';
$pid = '8';
$ptypeid = '3';

$sql = "UPDATE core_permission_index SET perm_3='$perm' WHERE perm_id=$pid AND perm_type_id=$ptypeid";

if ($conn->query($sql) === TRUE) {
echo "<span style='color:green;'>Record updated successfully!</span>";
} else {
echo "<span style='color:red;'>Error updating record: </span>" . $conn->error;
}

$conn->close();
?>

создать страницу, в принципе, без разницу какую, но тебе удобнее второй вариант, думаю.
44.PNG.9311cc8d1bf7f2f9ebe9dd91189831d5.PNG

вставить во вкладку Content тот самый ключ с созданного блока.
55.PNG.de397dc5038865ea266721ac60104caf.PNG

дать нужным группам разрешения для доступа к странице и блоку и перейти на страницу.
66.PNG.a18f9b22b3ffe47f7e22d5c7ad311b31.PNG

наслаждаться.

при желании, можно на страницу добавить ввод необходимых значений через инпут.
ещё можно запрос сделать логикой ипс, как писал Desti, но я привык так.

Link to comment
https://ipbmafia.ru/topic/23420-kak-zakryvat-forumy-avtomaticheski/?&do=findComment&comment=171800
Share on other sites
18 hours ago, by_ix said:

BlackShot the simplest option is to create a new page with a block.
 

  Hide contents

create php block.
11.thumb.PNG.a1efeeade4c4eee792f0fa29e74383c1.PNG

come up with any key.
22.thumb.PNG.6013b78566c592342290145f453006a8.PNG

paste your code there, i changed it a bit.
33.PNG.ec53318aa6b30855106db51f41d9b7da.PNG





  

to create a page, in principle, without any difference, but the second option is more convenient for you, I think.
44.PNG.9311cc8d1bf7f2f9ebe9dd91189831d5.PNG

insert the same key from the created block into the Content tab.
55.PNG.de397dc5038865ea266721ac60104caf.PNG

give the necessary groups permissions to access the page and block and go to the page.
66.PNG.a18f9b22b3ffe47f7e22d5c7ad311b31.PNG

enjoy.

if desired, you can add the input of the necessary values to the page via the input.
You can still make a request with the ips logic, as Desti wrote, but I'm used to it this way.

Звучит очень, очень интересно, и это сработало! Спасибо!

Теперь мне нужно найти способ отображать календарь со временем, чтобы он запускался в указанное время. Вы знаете какие-нибудь учебники?

Link to comment
https://ipbmafia.ru/topic/23420-kak-zakryvat-forumy-avtomaticheski/?&do=findComment&comment=171804
Share on other sites
6 минут назад, BlackShot сказал:

отображать календарь со временем

не совсем понимаю, что это значит.

нужно просто давать доступ людям к календарю в определённое время? или что.

Edited by by_ix

Link to comment
https://ipbmafia.ru/topic/23420-kak-zakryvat-forumy-avtomaticheski/?&do=findComment&comment=171805
Share on other sites
2 minutes ago, by_ix said:

не совсем понимаю, что это значит.

Я хотел бы разрешить этим конкретным группам установить день и время закрытия форумов. Прямо сейчас кнопка мгновенно закрывает форумы. Имеет ли это смысл? 😬

 

Link to comment
https://ipbmafia.ru/topic/23420-kak-zakryvat-forumy-avtomaticheski/?&do=findComment&comment=171806
Share on other sites

а календари тут причём? :bw:

3 минуты назад, BlackShot сказал:

конкретным группам установить день и время закрытия форумов

это уже сложнее.
проще тогда создать две cron задачи, которые будут каждый день (или в указанные дни) открывать и закрывать форумы.

Link to comment
https://ipbmafia.ru/topic/23420-kak-zakryvat-forumy-avtomaticheski/?&do=findComment&comment=171807
Share on other sites

Чтобы создать что-то для исполнения в будущем, надо, во первых, создать форму, в которой указывается форум, время и дата, во вторых, создать табличку в базе (или хранить в Store) и записывать в нее данные из формы, в третьих, создать задачу, которая раз в минуту будет проверять табличку и при наступлении указанного времени закрывать форум. Тянет на целое приложение :)

 

Link to comment
https://ipbmafia.ru/topic/23420-kak-zakryvat-forumy-avtomaticheski/?&do=findComment&comment=171808
Share on other sites
3 минуты назад, Desti сказал:

Тянет на целое приложение

о чём и речь.
@BlackShot будет очередной повод изучить строение плагинов и приложений.

Link to comment
https://ipbmafia.ru/topic/23420-kak-zakryvat-forumy-avtomaticheski/?&do=findComment&comment=171809
Share on other sites
2 minutes ago, by_ix said:

а календари тут причём? :bw:

это уже сложнее.
проще тогда создать две cron задачи, которые будут каждый день (или в указанные дни) открывать и закрывать форумы.

Я думал о календаре, отображаемом пользователю, поэтому он / она выбирает дату и время закрытия форумов.

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

1 minute ago, Desti said:

Чтобы создать что-то для исполнения в будущем, надо, во первых, создать форму, в которой указывается форум, время и дата, во вторых, создать табличку в базе (или хранить в Store) и записывать в нее данные из формы, в третьих, создать задачу, которая раз в минуту будет проверять табличку и при наступлении указанного времени закрывать форум. Тянет на целое приложение :)

Это дало мне какое-то направление. Я посмотрю, смогу ли я узнать это в свободное время. Спасибо!

Link to comment
https://ipbmafia.ru/topic/23420-kak-zakryvat-forumy-avtomaticheski/?&do=findComment&comment=171810
Share on other sites
1 час назад, BlackShot сказал:

Это дало мне какое-то направление.

Создайте простое приложение и тренируйтесь. Плагины не совсем то, что нужно для решения этой задачи.

1 час назад, BlackShot сказал:

Я думал о календаре, отображаемом пользователю

Это усложнение. Вам нужна форма ввода даты и поле ввода времени в простейшем формате типа часы / минуты.

image.png.46fa44bae043bcbafe1981737caff69c.png

Что-то типа

Link to comment
https://ipbmafia.ru/topic/23420-kak-zakryvat-forumy-avtomaticheski/?&do=findComment&comment=171812
Share on other sites
6 hours ago, Desti said:

Создайте простое приложение и тренируйтесь. Плагины не совсем то, что нужно для решения этой задачи.

Это усложнение. Вам нужна форма ввода даты и поле ввода времени в простейшем формате типа часы / минуты.

image.png.46fa44bae043bcbafe1981737caff69c.png

Что-то типа

Да, идеально! Вы сделали это или это из существующего плагина / приложения? Мне нужно что-то подобное.

Link to comment
https://ipbmafia.ru/topic/23420-kak-zakryvat-forumy-avtomaticheski/?&do=findComment&comment=171813
Share on other sites

Это написанное за 5 минут приложение.

Link to comment
https://ipbmafia.ru/topic/23420-kak-zakryvat-forumy-avtomaticheski/?&do=findComment&comment=171814
Share on other sites
19 hours ago, Desti said:

Это написанное за 5 минут приложение.

Не могли бы вы поделиться им только для учебы? 😊

Link to comment
https://ipbmafia.ru/topic/23420-kak-zakryvat-forumy-avtomaticheski/?&do=findComment&comment=171825
Share on other sites

Не думаю, что вам поможет форма в пустом приложении. Найду время, сделаю вам шаблончик для изучения.

 

Link to comment
https://ipbmafia.ru/topic/23420-kak-zakryvat-forumy-avtomaticheski/?&do=findComment&comment=171830
Share on other sites
  • 2 недели спустя...
On 8/24/2021 at 8:23 AM, Desti said:

Не думаю, что вам поможет форма в пустом приложении. Найду время, сделаю вам шаблончик для изучения.

Desti? 🥺

Link to comment
https://ipbmafia.ru/topic/23420-kak-zakryvat-forumy-avtomaticheski/?&do=findComment&comment=172164
Share on other sites

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.