Next Generation CMS :: Форум поддержки

Заинтересовала наша система? Тогда этот форум для Вас!

Вы не зашли.

#1 2011-12-16 21:29:53

Vaha
Участник
Зарегистрирован: 2011-02-19
Сообщений: 115
Рейтинг :   

Прикрепить и снять прикрепление по расписанию (на базе nsched)

Я вот что подумал. Походу плагин nsched работает именно с функционалом редактирования (добавления) новости. И по сути он ставит и убирает "галку" в указанном месте в указанное время.

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

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

Изменено Vaha (2011-12-16 21:49:08)

Не в сети

#2 2011-12-18 01:58:17

vitaly
Администратор
Откуда Россия
Зарегистрирован: 2008-10-08
Сообщений: 2,823
Рейтинг :   118 

Re: Прикрепить и снять прикрепление по расписанию (на базе nsched)

Vaha, если делать доработку плагина, то потребуется его сильно переделывать (тогда уж нужна поддержка изменения любого набора параметров по расписанию).
Могу предложить такой вариант - сделай клон плагина nsched (как ты и предлагал), но клон отвечающий за прикрепление новостей.

Алгоритм:
1. Копируешь содержимое каталога engine/plugins/nsched/ в engine/plugins/nxsched/
2. В файле version исправляешь имя плагина с nsched на nxsched
3. В install.php/uninstall.php/config.php также меняешь nsched на nxsched
4. В nsched.php меняешь все nsched на nxsched, находишь строки:

		// Запускаем модификацию новостей
		if (count($listActivate)) {
			massModifyNews(array('data' => $dataActivate), array('approve' => 1, 'nsched_activate' => ''), false);
		}
		if (count($listDeactivate)) {
			massModifyNews(array('data' => $dataDeactivate), array('approve' => 0, 'nsched_deactivate' => ''), false);

		}

и в них заменяешь approve на pinned
5. В админке (engine/skins/default/tpl/ add.tpl и edit.tpl после строки:

{% if (pluginIsActive('nsched')) %}{{ plugin.nsched }}{% endif %}

добавляешь аналогичную с nxsched.

Всё, на первый взгляд у тебя должен получиться корректно работающий клон, который позволит по расписанию управлять галочкой "прикреплено".

Не в сети

#3 2011-12-18 02:20:49

legenda
Участник
Откуда ua
Зарегистрирован: 2009-12-22
Сообщений: 2,160
Рейтинг :   39 

Re: Прикрепить и снять прикрепление по расписанию (на базе nsched)

vitaly, а они смогут работать паралельно?

Не в сети

#4 2011-12-18 12:30:37

Wolverine
Модератор
Откуда Домодедово
Зарегистрирован: 2008-10-13
Сообщений: 3,538
Рейтинг :   160 
Сайт

Re: Прикрепить и снять прикрепление по расписанию (на базе nsched)

Да.

Не в сети

#5 2011-12-18 13:35:24

Vaha
Участник
Зарегистрирован: 2011-02-19
Сообщений: 115
Рейтинг :   

Re: Прикрепить и снять прикрепление по расписанию (на базе nsched)

vitaly, спасибо. Я для себя пока что просто решил вопрос изменением approve на pinned. Просто вроде как пока не планируется пользоваться отложенной публикацией новостей. Но вообще, на будущее, думаю, всё может пригодится. Да и для других пользователей движка - это отличный мануал для расширения возможностей плагина nsched путём создания на его базе плагинов с новым функционалом.

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

Не в сети

#6 2011-12-18 13:41:54

Wolverine
Модератор
Откуда Домодедово
Зарегистрирован: 2008-10-13
Сообщений: 3,538
Рейтинг :   160 
Сайт

Re: Прикрепить и снять прикрепление по расписанию (на базе nsched)

Потому что надо пользоваться не самопальной заменой cron, а обычным серверным cron'ом, тогда плагин будет загружаться точно через нужные промежутки по запросу из cron, а не постоянно с проверкой временных диапазонов. cron дают даже на бесплатных хостингах сейчас.

Не в сети

#7 2011-12-18 21:31:31

vitaly
Администратор
Откуда Россия
Зарегистрирован: 2008-10-08
Сообщений: 2,823
Рейтинг :   118 

Re: Прикрепить и снять прикрепление по расписанию (на базе nsched)

Wolverine, спасибо за комментарий smile
Самопальный cron делался в момент, когда серверный крон получить было практически нереально.

Доработаю немного "самопальный" крон чтобы его можно было использовать совместно с серверным smile
Заодно можно будет решить и проблему с автогенерацией бекапов.

Не в сети

#8 2011-12-18 22:08:54

Wolverine
Модератор
Откуда Домодедово
Зарегистрирован: 2008-10-13
Сообщений: 3,538
Рейтинг :   160 
Сайт

Re: Прикрепить и снять прикрепление по расписанию (на базе nsched)

А что за проблема с бекапами? Таймаут срабатывает на выполнение?

Не в сети

#9 2011-12-19 00:24:25

vitaly
Администратор
Откуда Россия
Зарегистрирован: 2008-10-08
Сообщений: 2,823
Рейтинг :   118 

Re: Прикрепить и снять прикрепление по расписанию (на базе nsched)

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

Не в сети

#10 2011-12-19 02:03:32

legenda
Участник
Откуда ua
Зарегистрирован: 2009-12-22
Сообщений: 2,160
Рейтинг :   39 

Re: Прикрепить и снять прикрепление по расписанию (на базе nsched)

vitaly пишет:

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

дада, у меня на больших сайтах бивает 4 даже бекапа одновременно запускает, от того очень напрягает сервак

Не в сети

Подвал раздела

Работает на FluxBB