<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
/**
* MaxSite CMS
* (c) http://max-3000.com/
*/
# функция автоподключения плагина
function cron_autoload()
{
mso_hook_add('init', 'cron_custom', 0); # должен сработать последним, поэтому приоритет менее 10
}
# срабатывание крона при инициализации
function cron_custom($args = array())
{
$options = mso_get_option('plugin_cron', 'plugins', array());
if ( !isset($options['slug']) ) $options['slug'] = 'cron';
if ( mso_segment(1) == $options['slug'] )
{
mso_hook('cron'); # это крон, выполняем его хук
die('Cron done'); # после крона всегда останавливаем выполнение
}
else return $args;
}
# функция выполняется при деинстяляции плагина
function cron_uninstall($args = array())
{
mso_delete_option('plugin_cron', 'plugins' ); // удалим созданные опции
return $args;
}
# функция отрабатывающая миниопции плагина (function плагин_mso_options)
# если не нужна, удалите целиком
function cron_mso_options()
{
$options = mso_get_option('plugin_cron', 'plugins', array());
if ( !isset($options['slug']) ) $options['slug'] = 'cron';
# ключ, тип, ключи массива
mso_admin_plugin_options('plugin_cron', 'plugins',
array(
'slug' => array(
'type' => 'text',
'name' => t('Адрес крона'),
'description' => t('Укажите адрес по которому будет вызываться крон. Например: «cron» - адрес') . ' '
. getinfo('siteurl')
. '<strong>cron</strong>',
'default' => 'cron'
),
),
t('Настройки плагина cron'), // титул
'Данный плагин предназначен для выполнения периодических задач. Вначале задайте адрес, по которому будет вызываться крон. После этого на сервере задайте период для своих задач и укажите в качестве программы:
<pre>
GET ' . getinfo('siteurl') . $options['slug'] . '
</pre>
<p class="info">После этого те функции, которые определены для хука «cron» (плагины), будут выполняться в момент срабатывания крона на сервере.
' // инфо
);
}
# end file