Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Как ограничить количество новостей в МЕСЯЦ?

Как ограничить количество новостей в МЕСЯЦ?


     26.09.2019    Общие вопросы по PHP, Хаки, Ламерские вопросы    882

вопрос
Всем привет, друзья. Необходимо ограничить количество публикаций от 1 пользователя до 3 в месяц. Нашел в ПУ такую вот строчку. Как вариант изменить в ней переменную 1 на 3. и День на Месяц. Подскажите пожалуйста как сделать или хотя бы куда "копать?"

Как ограничить количество новостей в МЕСЯЦ?


Спасибо всем, кто обратил внимание!

Ответа пока нет


30 комментариев

ТeraМoune
Юзер

ТeraМoune - 26 сентября 2019 20:32 -

Попробуйте в файле /modules/addnews.php
поменять найденную строчку 'INTERVAL 24 HOUR' на 'INTERVAL 1 month'

Pazukha
Юзер

Pazukha - 26 сентября 2019 22:18 -

а если не будет работать манс, можно попробовать 720 хаурс?

dj-avtosh
PHP-developer

dj-avtosh - 27 сентября 2019 18:45 -


ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.): @blob42
В телегу писать сразу задачу и бюджет.

Pazukha
Юзер

Pazukha - 29 сентября 2019 20:52 -

dj-avtosh, я прошу прощения, а можно более конкретней не много меня носом ткнуть? как я понял менять надо что то в таблицах мускл. смотрю в книгу - вижу фигу

dj-avtosh
PHP-developer

dj-avtosh - 29 сентября 2019 20:56 -

Выше верный ответ от TeraMoune. В админке кол-во разрешенное в новый срок (допустим в 1 месяц, если вставить код из ответа).

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.): @blob42
В телегу писать сразу задачу и бюджет.

Pazukha
Юзер

Pazukha - 29 сентября 2019 21:02 -

dj-avtosh,
не работает. вот что в коде
AND date < '".date("Y-m-d", $_TIME)."' + INTERVAL 1 month AND autor = '{$member_id['name']}'");


3 дня назад написал 2 новости (в админке стоит ограничение в 2 штуки).
В тоже время проверил все, больше не допускало. Сейчас зашел удостоверится в работоспособности, а оно бац и добавилась еще одна. Работает все равно на 1 сутки

Pazukha
Юзер

Pazukha - 29 сентября 2019 21:07 -

dj-avtosh, или необходимо в админке заново вбить количество уже после того как изменил код?

dj-avtosh
PHP-developer

dj-avtosh - 29 сентября 2019 21:14 -

кэш нужно в админке точно очистить.

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.): @blob42
В телегу писать сразу задачу и бюджет.

Pazukha
Юзер

Pazukha - 29 сентября 2019 21:17 -

dj-avtosh, хм. попробую через сутки. отпишусь тогда. или должно заработать сразу?

dj-avtosh
PHP-developer

dj-avtosh - 29 сентября 2019 21:20 -

сразу после очистки кэша

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.): @blob42
В телегу писать сразу задачу и бюджет.

Pazukha
Юзер

Pazukha - 29 сентября 2019 21:24 -

dj-avtosh, очистил кэш. все равно новость проскочила.. или теперь по новой надо 2 штуки написать и завтра проверять после 24 часов? код не меняю неделю уже

dj-avtosh
PHP-developer

dj-avtosh - 29 сентября 2019 21:28 -

Должно сразу работать, если у вас addnews.php из дистрибутива, только с этой правкой и без плагинов, затрагивающих этот момент.

Там считает кол-во новостей с текущими условиями + по имени текущего авторизированного юзера.

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.): @blob42
В телегу писать сразу задачу и бюджет.

dj-avtosh
PHP-developer

dj-avtosh - 29 сентября 2019 21:29 -

проверка идет от времени последней публикации юзера (последней по дате).

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.): @blob42
В телегу писать сразу задачу и бюджет.

Pazukha
Юзер

Pazukha - 29 сентября 2019 21:33 -

dj-avtosh, но не работает, как видите...может попробовать 31 DAY?

dj-avtosh
PHP-developer

dj-avtosh - 29 сентября 2019 21:38 -

разницы никакой нет. у вас что-то с addnews.php

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.): @blob42
В телегу писать сразу задачу и бюджет.

ТeraМoune
Юзер

ТeraМoune - 29 сентября 2019 21:44 -


Всё работает, если не работает то проблема в чём-то другом.

Pazukha
Юзер

Pazukha - 29 сентября 2019 21:39 -

dj-avtosh,
нуу. может изза того что у меня 2 формы добавления новостей? addnews.php
и addnewsres.php
??

ТeraМoune
Юзер

ТeraМoune - 29 сентября 2019 21:50 -

Вот Вы и ответили на свой вопрос, разумеется данное действие будет работать только в файле который написано изменить, предполагается и форма одна, а раз у Вас две то и правки надо делать везде, где есть добавление новостей и данный код для проверки количества новостей в сутки

Pazukha
Юзер

Pazukha - 29 сентября 2019 21:51 -

ТeraМoune,
такую табличку мне тоже выдает. но только в течении суток работает.
даже если я в коде написал 1 месяц, а вы мне выше написали.
а через сутки опять становится доступно 2 новости.....

ТeraМoune
Юзер

ТeraМoune - 29 сентября 2019 22:03 -

в 13 версии любые изменения в движке будут работать без внесённых правок если над данным файлом существуют правки и был создан кэш файла, все изменения и правки уже начиная с 13 версии, грамотно добавлять через админку\ системы плагинов, а не лезть в исходные коды движка для изменения той или другой строчки. Забудьте отныне про правки исходных кодов движка, отучитесь уже, ведь пора!

Я лично проверил, всё ровно, каждую новость идёт запрос в базу на чек количества новостей с запросом с месячным интервалом и выставив себе 2 новости я не смог добавить 3ю.

dj-avtosh
PHP-developer

dj-avtosh - 29 сентября 2019 22:29 -

завтра разрешит - там есть косячок в DLE

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.): @blob42
В телегу писать сразу задачу и бюджет.

ТeraМoune
Юзер

ТeraМoune - 29 сентября 2019 22:54 -

а ну потому, что диапазон даты ограничен текущим днём

dj-avtosh
PHP-developer

dj-avtosh - 29 сентября 2019 22:57 -

туповатенько, да?) Celsoft пофиксит в сл. версии DLE (c) ну как обычно

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.): @blob42
В телегу писать сразу задачу и бюджет.

dj-avtosh
PHP-developer

dj-avtosh - 29 сентября 2019 22:50 -

date >= '".date("Y-m-d", $_TIME)."'


Т.к. тут указан >= и день сегодняшний, то да - сегодня условия работают на сегодня. Завтра же новостей у которых дата более чем "сегодня" или сегодняшняя уже будет 0 всегда, далее там стоит AND (с) ну вы поняли

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.): @blob42
В телегу писать сразу задачу и бюджет.

Pazukha
Юзер

Pazukha - 29 сентября 2019 21:52 -

ТeraМoune,
я изменил в двух файлах ту строчку и поставил 1 месяц, как мне было подсказано. файлы addnews.php
и addnewsres.php идентичны между собой абсолютно, только ссылки разные и все.

dj-avtosh
PHP-developer

dj-avtosh - 29 сентября 2019 21:53 -

напишите в телеграм - посмотрим.

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.): @blob42
В телегу писать сразу задачу и бюджет.

Pazukha
Юзер

Pazukha - 29 сентября 2019 21:57 -

dj-avtosh,
написал

ТeraМoune
Юзер

ТeraМoune - 29 сентября 2019 23:04 -

Поправил, выбирает новости с даты (текущая дата - месяц), запрос у меня дал 8 новостей добавленных в этот период, одна новость была добавлена даже прошлого месяца, в результате мне не разрешило добавить еще одну новость из за лимита.

dj-avtosh
PHP-developer

dj-avtosh - 29 сентября 2019 23:17 -

одно из двух условий у AND можно опустить, все равно не имеет смысловой нагрузки. - +

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.): @blob42
В телегу писать сразу задачу и бюджет.

ТeraМoune
Юзер

ТeraМoune - 29 сентября 2019 23:23 -

Я оставил это так как это сделано для настройки news_future (Выводить на сайте новости, дата публикации которых, еще не наступила)
В друг кто-то всё же будет использовать эту настройку.
А если удалять одно из условий то конкретно последнее на добавляющую к дате месяц, ведь отнимающий главней и отражает новости за прошлое, а не будущее.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх