1<?php 2/* Copyright (C) 2012 Nicolas Villa aka Boyquotes http://informetic.fr 3 * Copyright (C) 2013 Florian Henry <florian.henry@opn-concept.pro> 4 * 5 * This program is free software; you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License as published by 7 * the Free Software Foundation; either version 3 of the License, or 8 * (at your option) any later version. 9 * 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU General Public License for more details. 14 * 15 * You should have received a copy of the GNU General Public License 16 * along with this program. If not, see <https://www.gnu.org/licenses/>. 17 */ 18 19/** 20 * \file core/lib/cron.lib.php 21 * \brief Function for module cron 22 * \ingroup cron 23 */ 24 25 26/** 27 * Return array of tabs to used on pages to setup cron module. 28 * 29 * @return array Array of tabs 30 */ 31function cronadmin_prepare_head() 32{ 33 global $langs, $conf, $user; 34 $h = 0; 35 $head = array(); 36 37 $head[$h][0] = dol_buildpath('/cron/admin/cron.php', 1); 38 $head[$h][1] = $langs->trans("Miscellaneous"); 39 $head[$h][2] = 'setup'; 40 $h++; 41 42 $head[$h][0] = dol_buildpath('/cron/list.php?mode=modulesetup', 1); 43 $head[$h][1] = $langs->trans("Module2300Name"); 44 $head[$h][2] = 'jobs'; 45 $h++; 46 47 complete_head_from_modules($conf, $langs, null, $head, $h, 'cronadmin'); 48 49 complete_head_from_modules($conf, $langs, null, $head, $h, 'cronadmin', 'remove'); 50 51 52 return $head; 53} 54 55/** 56 * Return array of tabs to used on a cron job 57 * 58 * @param Cronjob $object Object cron 59 * @return array Array of tabs 60 */ 61function cron_prepare_head(Cronjob $object) 62{ 63 global $langs, $conf, $user; 64 $h = 0; 65 $head = array(); 66 67 $head[$h][0] = dol_buildpath('/cron/card.php', 1).'?id='.$object->id; 68 $head[$h][1] = $langs->trans("CronTask"); 69 $head[$h][2] = 'card'; 70 $h++; 71 72 $head[$h][0] = dol_buildpath('/cron/info.php', 1).'?id='.$object->id; 73 $head[$h][1] = $langs->trans("Info"); 74 $head[$h][2] = 'info'; 75 $h++; 76 77 complete_head_from_modules($conf, $langs, $object, $head, $h, 'cron'); 78 79 complete_head_from_modules($conf, $langs, $object, $head, $h, 'cron', 'remove'); 80 81 return $head; 82} 83 84/** 85 * Show information with URLs to launch jobs 86 * 87 * @return int 0 88 */ 89function dol_print_cron_urls() 90{ 91 global $conf, $langs, $user; 92 global $dolibarr_main_url_root; 93 94 // Define $urlwithroot 95 $urlwithouturlroot = preg_replace('/'.preg_quote(DOL_URL_ROOT, '/').'$/i', '', trim($dolibarr_main_url_root)); 96 $urlwithroot = $urlwithouturlroot.DOL_URL_ROOT; // This is to use external domain name found into config file 97 //$urlwithroot=DOL_MAIN_URL_ROOT; // This is to use same domain name than current 98 99 // Cron launch 100 print '<div class="div-table-responsive-no-min">'; 101 print $langs->trans("URLToLaunchCronJobs").':<br>'; 102 $url = $urlwithroot.'/public/cron/cron_run_jobs.php?'.(empty($conf->global->CRON_KEY) ? '' : 'securitykey='.$conf->global->CRON_KEY.'&').'userlogin='.$user->login; 103 print img_picto('', 'globe').' <a href="'.$url.'" target="_blank">'.$url."</a><br>\n"; 104 print ' '.$langs->trans("OrToLaunchASpecificJob").'<br>'; 105 $url = $urlwithroot.'/public/cron/cron_run_jobs.php?'.(empty($conf->global->CRON_KEY) ? '' : 'securitykey='.$conf->global->CRON_KEY.'&').'userlogin='.$user->login.'&id=cronjobid'; 106 print img_picto('', 'globe').' <a href="'.$url.'" target="_blank">'.$url."</a><br>\n"; 107 print '</div>'; 108 print '<br>'; 109 110 $logintouse = 'firstadmin'; 111 if ($user->admin) $logintouse = $user->login; 112 113 print '<u>'.$langs->trans("FileToLaunchCronJobs").':</u><br>'; 114 115 $file = '/scripts/cron/cron_run_jobs.php '.(empty($conf->global->CRON_KEY) ? 'securitykey' : ''.$conf->global->CRON_KEY.'').' '.$logintouse.' [cronjobid]'; 116 print '<textarea class="quatrevingtpercent">..'.$file."</textarea><br>\n"; 117 print '<br>'; 118 119 // Add note 120 if (empty($conf->global->CRON_DISABLE_TUTORIAL_CRON)) 121 { 122 $linuxlike = 1; 123 if (preg_match('/^win/i', PHP_OS)) $linuxlike = 0; 124 if (preg_match('/^mac/i', PHP_OS)) $linuxlike = 0; 125 print $langs->trans("Note").': '; 126 if ($linuxlike) 127 { 128 print $langs->trans("CronExplainHowToRunUnix"); 129 print '<br>'; 130 print '<textarea class="quatrevingtpercent">*/5 * * * * pathtoscript/scripts/cron/cron_run_jobs.php '.(empty($conf->global->CRON_KEY) ? 'securitykey' : ''.$conf->global->CRON_KEY.'').' '.$logintouse.' > '.DOL_DATA_ROOT.'/cron_run_jobs.php.log</textarea><br>'; 131 } else { 132 print $langs->trans("CronExplainHowToRunWin"); 133 } 134 } 135 136 return 0; 137} 138