BlackShot Опубликовано 16 августа, 2021 Поделиться Опубликовано 16 августа, 2021 Здравствуй, Я провожу несколько конкурсов на своих форумах, и было бы здорово, если бы существовал инструмент или плагин для автоматического закрытия форумов в установленное время. Например, после полуночи никто не может размещать темы в определенной области. Прямо сейчас мне нужно выполнить запрос через cronjob, чтобы это сделать. Было бы здорово назначить такие разрешения некоторым группам. Это запрос: $sql = "UPDATE core_permission_index SET perm_3='' WHERE perm_id=114 AND perm_type_id=29" Спасибо! Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Desti Опубликовано 17 августа, 2021 Поделиться Опубликовано 17 августа, 2021 <?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 BlackShot 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Desti Опубликовано 17 августа, 2021 Поделиться Опубликовано 17 августа, 2021 Строчка \IPS\Session\Front::i(); лишняя, можно удалить. Если размещать файл не в корне, то надо указать правильный путь к init.php, типа require_once '../../init.php'; BlackShot 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
BlackShot Опубликовано 21 августа, 2021 Автор Поделиться Опубликовано 21 августа, 2021 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, выбрать правильный форум и выбрать время, когда он должен блокировать публикацию новых тем. Или, может быть, плагин. Звучит не слишком сложно, но, вероятно, потребуется время, верно? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
by_ix Опубликовано 21 августа, 2021 Поделиться Опубликовано 21 августа, 2021 BlackShot самый простой вариант, это создать новую страницу c блоком. Спойлер создать php блок. придумать любой ключ. вставить свой код туда, я немного изменил его. $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(); ?> создать страницу, в принципе, без разницу какую, но тебе удобнее второй вариант, думаю. вставить во вкладку Content тот самый ключ с созданного блока. дать нужным группам разрешения для доступа к странице и блоку и перейти на страницу. наслаждаться. при желании, можно на страницу добавить ввод необходимых значений через инпут. ещё можно запрос сделать логикой ипс, как писал Desti, но я привык так. BlackShot и cyr4x 1 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
BlackShot Опубликовано 22 августа, 2021 Автор Поделиться Опубликовано 22 августа, 2021 18 hours ago, by_ix said: BlackShot the simplest option is to create a new page with a block. Hide contents create php block. come up with any key. paste your code there, i changed it a bit. to create a page, in principle, without any difference, but the second option is more convenient for you, I think. insert the same key from the created block into the Content tab. give the necessary groups permissions to access the page and block and go to the page. 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. Звучит очень, очень интересно, и это сработало! Спасибо! Теперь мне нужно найти способ отображать календарь со временем, чтобы он запускался в указанное время. Вы знаете какие-нибудь учебники? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
by_ix Опубликовано 22 августа, 2021 Поделиться Опубликовано 22 августа, 2021 (изменено) 6 минут назад, BlackShot сказал: отображать календарь со временем не совсем понимаю, что это значит. нужно просто давать доступ людям к календарю в определённое время? или что. Изменено 22 августа, 2021 пользователем by_ix Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
BlackShot Опубликовано 22 августа, 2021 Автор Поделиться Опубликовано 22 августа, 2021 2 minutes ago, by_ix said: не совсем понимаю, что это значит. Я хотел бы разрешить этим конкретным группам установить день и время закрытия форумов. Прямо сейчас кнопка мгновенно закрывает форумы. Имеет ли это смысл? 😬 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
by_ix Опубликовано 22 августа, 2021 Поделиться Опубликовано 22 августа, 2021 а календари тут причём? 3 минуты назад, BlackShot сказал: конкретным группам установить день и время закрытия форумов это уже сложнее. проще тогда создать две cron задачи, которые будут каждый день (или в указанные дни) открывать и закрывать форумы. BlackShot 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Desti Опубликовано 22 августа, 2021 Поделиться Опубликовано 22 августа, 2021 Чтобы создать что-то для исполнения в будущем, надо, во первых, создать форму, в которой указывается форум, время и дата, во вторых, создать табличку в базе (или хранить в Store) и записывать в нее данные из формы, в третьих, создать задачу, которая раз в минуту будет проверять табличку и при наступлении указанного времени закрывать форум. Тянет на целое приложение BlackShot 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
by_ix Опубликовано 22 августа, 2021 Поделиться Опубликовано 22 августа, 2021 3 минуты назад, Desti сказал: Тянет на целое приложение о чём и речь.@BlackShot будет очередной повод изучить строение плагинов и приложений. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
BlackShot Опубликовано 22 августа, 2021 Автор Поделиться Опубликовано 22 августа, 2021 2 minutes ago, by_ix said: а календари тут причём? это уже сложнее. проще тогда создать две cron задачи, которые будут каждый день (или в указанные дни) открывать и закрывать форумы. Я думал о календаре, отображаемом пользователю, поэтому он / она выбирает дату и время закрытия форумов. Да, я делал это через cron, но искал способ сделать это так, как я вам сказал. Но я предполагаю, что это может быть сложно, поэтому я, вероятно, остановлюсь на cron. 😅 1 minute ago, Desti said: Чтобы создать что-то для исполнения в будущем, надо, во первых, создать форму, в которой указывается форум, время и дата, во вторых, создать табличку в базе (или хранить в Store) и записывать в нее данные из формы, в третьих, создать задачу, которая раз в минуту будет проверять табличку и при наступлении указанного времени закрывать форум. Тянет на целое приложение Это дало мне какое-то направление. Я посмотрю, смогу ли я узнать это в свободное время. Спасибо! by_ix 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Desti Опубликовано 22 августа, 2021 Поделиться Опубликовано 22 августа, 2021 1 час назад, BlackShot сказал: Это дало мне какое-то направление. Создайте простое приложение и тренируйтесь. Плагины не совсем то, что нужно для решения этой задачи. 1 час назад, BlackShot сказал: Я думал о календаре, отображаемом пользователю Это усложнение. Вам нужна форма ввода даты и поле ввода времени в простейшем формате типа часы / минуты. Что-то типа Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
BlackShot Опубликовано 23 августа, 2021 Автор Поделиться Опубликовано 23 августа, 2021 6 hours ago, Desti said: Создайте простое приложение и тренируйтесь. Плагины не совсем то, что нужно для решения этой задачи. Это усложнение. Вам нужна форма ввода даты и поле ввода времени в простейшем формате типа часы / минуты. Что-то типа Да, идеально! Вы сделали это или это из существующего плагина / приложения? Мне нужно что-то подобное. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Desti Опубликовано 23 августа, 2021 Поделиться Опубликовано 23 августа, 2021 Это написанное за 5 минут приложение. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
BlackShot Опубликовано 24 августа, 2021 Автор Поделиться Опубликовано 24 августа, 2021 19 hours ago, Desti said: Это написанное за 5 минут приложение. Не могли бы вы поделиться им только для учебы? 😊 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Desti Опубликовано 24 августа, 2021 Поделиться Опубликовано 24 августа, 2021 Не думаю, что вам поможет форма в пустом приложении. Найду время, сделаю вам шаблончик для изучения. BlackShot 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
BlackShot Опубликовано 5 сентября, 2021 Автор Поделиться Опубликовано 5 сентября, 2021 On 8/24/2021 at 8:23 AM, Desti said: Не думаю, что вам поможет форма в пустом приложении. Найду время, сделаю вам шаблончик для изучения. Desti? 🥺 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.