diff --git a/include/class.cron.php b/include/class.cron.php index 06d992cdcea53dcca5f02891014be3c6ce27a37a..af5a1476865f7cf11f40f1b39f195f11a1660f63 100644 --- a/include/class.cron.php +++ b/include/class.cron.php @@ -102,7 +102,8 @@ class Cron { self::PurgeDrafts(); self::MaybeOptimizeTables(); - Signal::send('cron', null); + $data = array('autocron'=>false); + Signal::send('cron', $data); } } ?> diff --git a/include/class.i18n.php b/include/class.i18n.php index 2878dd628799722f09455bb70d916eceb311a21c..f0be4e6a3d44dc933f0d80f7feedfcac808b54a5 100644 --- a/include/class.i18n.php +++ b/include/class.i18n.php @@ -65,6 +65,7 @@ class Internationalization { // Note that group requires department 'group.yaml' => 'Group::create', 'file.yaml' => 'AttachmentFile::create', + 'sequence.yaml' => 'Sequence::__create', ); $errors = array(); diff --git a/include/class.search.php b/include/class.search.php index 7bac3d1fb03bae4d4644dbc9dbce6ed88bcbdaaf..86957a764964c2cf3a3480412cd6e27eadb6e02b 100644 --- a/include/class.search.php +++ b/include/class.search.php @@ -33,7 +33,7 @@ abstract class SearchBackend { abstract function update($model, $id, $content, $new=false, $attrs=array()); abstract function find($query, $criteria, $model=false, $sort=array()); - function register($backend=false) { + static function register($backend=false) { $backend = $backend ?: get_called_class(); if ($backend::$id == false) @@ -362,7 +362,17 @@ class MysqlSearchBackend extends SearchBackend { . ' LIMIT 500'; } - $res = db_query($sql); + $class = get_class(); + $auto_create = function($db_error) use ($class) { + + if ($db_error != 1146) + // Perform the standard error handling + return true; + + // Create the search table automatically + $class::createSearchTable(); + }; + $res = db_query($sql, $auto_create); $object_ids = array(); while ($row = db_fetch_row($res)) diff --git a/include/class.sequence.php b/include/class.sequence.php index 62b9c395686bd5fa1c9ea6b1da9c3df3c233218e..ebd4fe862abc3f1fb416e5bab46646d3ae30e82d 100644 --- a/include/class.sequence.php +++ b/include/class.sequence.php @@ -192,6 +192,12 @@ class Sequence extends VerySimpleModel { return $this->current(); return parent::__get($what); } + + function __create($data) { + $instance = parent::create($data); + $instance->save(); + return $instance; + } } class RandomSequence extends Sequence { diff --git a/include/staff/templates/list-item-properties.tmpl.php b/include/staff/templates/list-item-properties.tmpl.php index cb4b7c3785342e9ec532617aeb40446d9420fbf9..e105bea4fef479b32992bf4fbd28331924191adc 100644 --- a/include/staff/templates/list-item-properties.tmpl.php +++ b/include/staff/templates/list-item-properties.tmpl.php @@ -38,7 +38,6 @@ } ?> </div><div> <?php - $f->render(); if ($internal && !$f->isEditable()) $f->render('view'); else { diff --git a/scp/autocron.php b/scp/autocron.php index 611cbbc4d029b856cdf76dd9dfc98a3e35354ce8..b6016399e0b4745c62891dd7cce4b3f77df6fcca 100644 --- a/scp/autocron.php +++ b/scp/autocron.php @@ -49,6 +49,9 @@ if($cfg && $cfg->isAutoCronEnabled()) { //ONLY fetch tickets if autocron is enab $ost->logDebug(_S('Auto Cron'), sprintf(_S('Mail fetcher cron call [%s]'), $caller)); } +$data = array('autocron'=>true); +Signal::send('cron', $data); + $_SESSION['lastcroncall']=time(); endif; ob_end_clean();