Есть несколько вариантов запуска сторонних скриптов или функций.
Вариант 1
Один из них, прописать функцию или класс в ядро системы через панель управления, отдел "Редактор внедрений". Будет использоваться файл внедрения в ядро системы:
config/config_function.php
Если на сервере нет CRONа или подключение к нему проблематично, можно воспользоваться системным планировщиком задач который работает в фоновом режиме, файл:
function/function.php функция:
head()
В версии 6.2 Pro это реализовано таким образом
02 | if ( $confs [ 'log_d' ]) { |
03 | $sess_f = "config/counter/dump.txt" ; |
04 | $sess_d = ( file_exists ( $sess_f ) && filesize ( $sess_f ) != 0) ? file_get_contents ( $sess_f ) : 0; |
05 | $past = $ctime - intval ( $confs [ 'sess_d' ]); |
06 | if ( $sess_d < $past ) { |
07 | $head = preg_replace( "#<body(.*?)>#si" , "<body OnLoad=\"AjaxLoad('GET', '0', 'filereport', 'go=3&op=filereport', ''); return false;\"$1>" , $head ); |
13 | if ( $confs [ 'log_b' ] && ! $cron ) { |
14 | $sess_f = "config/counter/backup.txt" ; |
15 | $sess_b = ( file_exists ( $sess_f ) && filesize ( $sess_f ) != 0) ? file_get_contents ( $sess_f ) : 0; |
16 | $past = $ctime - intval ( $confs [ 'sess_b' ]); |
17 | if ( $sess_b < $past ) { |
18 | $head = preg_replace( "#<body(.*?)>#si" , "<body OnLoad=\"AjaxLoad('GET', '0', 'backup', 'go=3&op=backup', ''); return false;\"$1>" , $head ); |
24 | include ( "config/config_sitemap.php" ); |
25 | if ( $confma [ 'auto' ] && ! $cron ) { |
26 | $sess_f = "sitemap.xml" ; |
27 | $sess_b = ( file_exists ( $sess_f ) && filesize ( $sess_f ) != 0) ? filemtime ( $sess_f ) : 0; |
28 | $past = $ctime - intval ( $confma [ 'auto_t' ]); |
29 | if ( $sess_b < $past ) { |
30 | $head = preg_replace( "#<body(.*?)>#si" , "<body OnLoad=\"AjaxLoad('GET', '0', 'sitemap', 'go=3&op=sitemap', ''); return false;\"$1>" , $head ); |
36 | if ( $conf [ 'newsletter' ] && ! $cron ) { |
37 | $head = preg_replace( "#<body(.*?)>#si" , "<body OnLoad=\"AjaxLoad('GET', '0', 'newsletter', 'go=3&op=newsletter', ''); return false;\"$1>" , $head ); |
Данный код можно видоизменить и дополнить своим кодом подключения задач.
Вариант 2
Для быстрого подключения библиотек используемых в системе, в сторонних скриптах/файлах, базы данных в том числе, достаточно в начале вашего скрипта указать:
define("FUNC_FILE", true);
Далее подключаем и используем всё что предлагает ядро, к примеру:
include("config/config.php");
include("function/db.php");
и т.д.
Обратите внимание на правильную запись путей к скриптам. В варианте примера выше учитывается случай когда ваш скрипт лежит в главной/основной директории проекта.
Немного отходя от темы, напомню, что сторонние файлы, если это необходимо, можно закрыть/защитить средствами системы. В качестве примера, добавим данный участок в верную часть кода вашего файла.
1 | # Start protect from direct access |
2 | define( 'ADMIN_FILE' , true); |
3 | define( 'FUNC_FILE' , true); |
4 | # Relative path from file |
6 | include ( $path . 'core/authenticate.php' ); |
О сколько нам открытий чудных,
Готовит просвещенья дух,
И опыт, сын ошибок трудных,
И гений, парадоксов друг...