123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 |
- <?php
- /* Copyright (C) 2014 Marcos García <marcosgdf@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <https://www.gnu.org/licenses/>.
- */
- /**
- * Class that all the triggers must extend
- */
- abstract class DolibarrTriggers
- {
- /**
- * Database handler
- * @var DoliDB
- */
- protected $db;
- /**
- * Name of the trigger
- * @var mixed|string
- */
- public $name = '';
- /**
- * Description of the trigger
- * @var string
- */
- public $description = '';
- /**
- * Version of the trigger
- * @var string
- */
- public $version = self::VERSION_DEVELOPMENT;
- /**
- * Image of the trigger
- * @var string
- */
- public $picto = 'technic';
- /**
- * Category of the trigger
- * @var string
- */
- public $family = '';
- /**
- * Error reported by the trigger
- * @var string
- * @deprecated Use $this->errors
- * @see $errors
- */
- public $error = '';
- /**
- * Errors reported by the trigger
- * @var array
- */
- public $errors = array();
- /**
- * @var string module is in development
- */
- const VERSION_DEVELOPMENT = 'development';
- /**
- * @var string module is experimental
- */
- const VERSION_EXPERIMENTAL = 'experimental';
- /**
- * @var string module is dolibarr ready
- */
- const VERSION_DOLIBARR = 'dolibarr';
- /**
- * Constructor
- *
- * @param DoliDB $db Database handler
- */
- public function __construct(DoliDB $db)
- {
- $this->db = $db;
- if (empty($this->name)) {
- $this->name = preg_replace('/^Interface/i', '', get_class($this));
- }
- }
- /**
- * Returns the name of the trigger file
- *
- * @return string
- */
- public function getName()
- {
- return $this->name;
- }
- /**
- * Returns the description of trigger file
- *
- * @return string
- */
- public function getDesc()
- {
- return $this->description;
- }
- /**
- * Returns the version of the trigger file
- *
- * @return string Version of trigger file
- */
- public function getVersion()
- {
- global $langs;
- $langs->load("admin");
- if ($this->version == self::VERSION_DEVELOPMENT) {
- return $langs->trans("VersionDevelopment");
- } elseif ($this->version == self::VERSION_EXPERIMENTAL) {
- return $langs->trans("VersionExperimental");
- } elseif ($this->version == self::VERSION_DOLIBARR) {
- return DOL_VERSION;
- } elseif ($this->version) {
- return $this->version;
- } else {
- return $langs->trans("Unknown");
- }
- }
- /**
- * Function called when a Dolibarrr business event is done.
- * All functions "runTrigger" are triggered if file is inside directory htdocs/core/triggers or htdocs/module/code/triggers (and declared)
- *
- * @param string $action Event action code
- * @param Object $object Object
- * @param User $user Object user
- * @param Translate $langs Object langs
- * @param conf $conf Object conf
- * @return int <0 if KO, 0 if no triggered ran, >0 if OK
- */
- abstract public function runTrigger($action, $object, User $user, Translate $langs, Conf $conf);
- }
|