function registerPluginEvents($pluginEvents) { foreach ($pluginEvents as $entity => $events) { foreach ($events as $event) { PluginPeer::registerEvent($entity, $event); } } }
<?php // Register Plugin-Events PluginPeer::registerEvent('user', 'create'); PluginPeer::registerEvent('user', 'modify'); PluginPeer::registerEvent('user', 'remove'); PluginPeer::registerEvent('user', 'restore'); /** * API functions to manage USERS * * @author Peter-Christoph Haider (Project Leader) et al. * @package ZfxSupport * @version 1.1 (2012-01-17) * @copyright Copyright (c) 2012, Groupion GmbH & Co. KG */ class UserAPI extends API { /** * @var array An associative array mapping actions to their definitions. * Action format: { <name> => [ <method>, <function>, <parameters> ] } * Methods: POST, GET, REQUEST * Parameter format: [ <name>, <type>, <default> = '', <required> = true ] * Types: int, float, bool, array, object, string */ public $actions = array('auth' => array('ANY', 'auth', array(array('username', 'string', false), array('password', 'string', false), array('session', 'bool', false, false), array('cookie', 'bool', false, false))), 'session' => array('ANY', 'session', array()), 'list' => array('ANY', 'list', array(array('search', 'string', null, false), array('domain', 'int', null, false), array('showdeleted', 'bool', false, false), array('orderby', 'string', null, false), array('ordermode', 'string', null, false))), 'details' => array('ANY', 'details', array(array('id', 'string', null, false), array('allowpeers', 'bool', false, false))), 'add' => array('ANY', 'add', array(array('data', 'array', null))), 'update' => array('ANY', 'update', array(array('id', 'int', null), array('data', 'array', null))), 'set_pwd' => array('ANY', 'set_pwd', array(array('id', 'int', null, false), array('new_password', 'string', null))), 'restore' => array('ANY', 'restore', array(array('id', 'int', null))), 'remove' => array('ANY', 'remove', array(array('id', 'int', null)))); public $auth_exceptions = array('auth'); /** @var array Basic filter settings */ public $filter_basic = array('Name' => array('filter' => FILTER_VALIDATE_USERNAME_CHARS, 'field' => 'field.username'), 'DomainId' => array('filter' => FILTER_VALIDATE_INT, 'field' => 'entity.domain.singular', 'message' => 'error.not_set'), 'Firstname' => array('filter' => FILTER_VALIDATE_MIN_LENGTH, 'len' => 2, 'field' => 'field.firstname'), 'Lastname' => array('filter' => FILTER_VALIDATE_MIN_LENGTH, 'len' => 2, 'field' => 'field.lastname'), 'Password' => array('filter' => FILTER_VALIDATE_PASSWORD), 'Email' => array('filter' => FILTER_VALIDATE_EMAIL)); /** @var array Filter settings for user properties */ public $filter_properties = array('HoursPerWeek' => array('filter' => FILTER_VALIDATE_INT, 'field' => 'entity.hours_per_week')); /**
<?php include_once 'lib/tymio/settings.php'; include_once 'lib/tymio/util.inc.php'; // Register plugin events PluginPeer::registerEvent('transaction', 'add'); /** * API functions to manage TRANSACTIONs * * @author Huy Hoang Nguyen * @package tymio * @copyright Copyright (c) 2012, Groupion GmbH & Co. KG */ class TransactionAPI extends API { public $actions = array('types' => array('ANY', 'types', array(array('user', 'int', null, false), array('start', 'int', null, false), array('end', 'int', null, false), array('deleted', 'bool', false, false))), 'list' => array('ANY', 'list', array(array('user', 'int', null, false), array('start', 'int', null, false), array('end', 'int', null, false), array('showdeleted', 'bool', false, false), array('ordermode', 'string', false, false), array('orderby', 'string', null, false), array('limit', 'int', null, false))), 'add' => array('POST', 'add', array(array('clockings', 'array', null, true), array('commit', 'bool', true, false))), 'create' => array('POST', 'create', array(array('transaction', 'array', false), array('bookings', 'array', null, false), array('clockings', 'array', null, false))), 'remove' => array('POST', 'remove', array(array('id', 'int'))), 'list_bookings' => array('ANY', 'list_bookings', array(array('user', 'int', null, false), array('start', 'int', null, false), array('end', 'int', null, false), array('types', 'array', null, false), array('showdeleted', 'bool', false, false), array('ordermode', 'string', false, false), array('orderby', 'string', null, false)))); public $auth_exceptions = array('auth'); private function findUserById($id, PropelPDO $con = null) { $user = $this->requireUser(); $account = $user->getAccount($con); if ($account === null) { throw new Exception('Could not determine the account the authenticated user "' . $user->getName() . '" #' . $user->getId() . ' belongs to.'); } return UserQuery::create()->innerJoinDomain()->add(DomainPeer::ACCOUNT_ID, $account->getId())->findOneById($id, $con); } /** * Creates a query that is restricted to transactions belonging to the specified account. * This function will LEFT JOIN to "transaction_booking", "booking" and * "booking_type". Use {@link TransactionQuery::with()} if you wish to * fetch records from the joined tables.
<?php // Register Plugin-Events PluginPeer::registerEvent('domain', 'create'); PluginPeer::registerEvent('domain', 'modify'); PluginPeer::registerEvent('domain', 'remove'); PluginPeer::registerEvent('domain', 'restore'); /** * API functions to manage DOMAINS * * @author Peter-Christoph Haider (Project Leader) et al. * @package ZfxSupport * @version 1.1 (2012-01-17) * @copyright Copyright (c) 2012, Groupion GmbH & Co. KG */ class DomainAPI extends API { /** * @var array An associative array mapping actions to their definitions. * Action format: { <name> => [ <method>, <function>, <parameters> ] } * Methods: POST, GET, REQUEST * Parameter format: [ <name>, <type>, <default> = '', <required> = true ] * Types: int, float, bool, array, object, string */ public $actions = array('list' => array('ANY', 'list', array(array('search', 'string', null, false), array('showdeleted', 'bool', false, false), array('orderby', 'string', false, false), array('ordermode', 'string', false, false))), 'details' => array('ANY', 'details', array(array('id', 'int', null))), 'add' => array('POST', 'add', array(array('data', 'array', null))), 'update' => array('POST', 'update', array(array('id', 'int', null), array('data', 'array', null))), 'restore' => array('POST', 'restore', array(array('id', 'int', null))), 'remove' => array('POST', 'remove', array(array('id', 'int', null)))); public $auth_exceptions = array(); /** @var array Basic filter settings */ public $filter_basic = array('Name' => array('filter' => FILTER_VALIDATE_MIN_LENGTH, 'len' => 2, 'field' => 'entity.domain.singular')); /** @var array Filter settings for domain properties */ public $filter_properties = array(); /**
<?php // Register Plugin-Events PluginPeer::registerEvent('holiday', 'create'); PluginPeer::registerEvent('holiday', 'modify'); PluginPeer::registerEvent('holiday', 'remove'); /** * API functions to manage HOLIDAYS * * @author Peter-Christoph Haider (Project Leader) et al. * @package ZfxSupport * @version 1.1 (2012-01-17) * @copyright Copyright (c) 2012, Groupion GmbH & Co. KG */ class HolidayAPI extends API { public $actions = array('list' => array('ANY', 'list', array(array('search', 'string', null, false), array('start', 'int', null, false), array('end', 'int', null, false), array('domain', 'int', null, false), array('orderby', 'string', null, false), array('ordermode', 'string', null, false))), 'details' => array('ANY', 'details', array(array('id', 'int', null))), 'add' => array('ANY', 'add', array(array('data', 'array', null))), 'update' => array('ANY', 'update', array(array('id', 'int', null), array('data', 'array', null))), 'erase' => array('ANY', 'erase', array(array('id', 'int', null)))); public $auth_exceptions = array('auth'); /** @var array Basic filter settings */ public $filter_basic = array('Name' => array('filter' => FILTER_VALIDATE_MIN_LENGTH, 'len' => 2, 'field' => 'field.name'), 'Date' => array('filter' => FILTER_VALIDATE_INT, 'message' => 'not_a_date', 'field' => 'field.start')); /** * User or token authentication * * @see API::auth() * @return bool */ public function auth() { if ($this->authUser()) { return true; }
<?php // Register plugin events PluginPeer::registerEvent('clocking', 'create'); PluginPeer::registerEvent('clocking', 'update'); PluginPeer::registerEvent('clocking', 'remove'); PluginPeer::registerEvent('clocking', 'restore'); PluginPeer::registerEvent('clocking', 'calculate'); /** * API functions to manage CLOCKINGS * * @author Huy Hoang Nguyen <*****@*****.**> * @copyright Copyright (c) 2012, Groupion GmbH & Co. KG */ class ClockingAPI extends API { /** * Start date is after end date. * Data: { "start": ..., "end": ... } */ const ERROR_INTERVAL = 'interval'; /** * Another clocking is already open and must be closed first. * Data: Open clocking */ const ERROR_OPEN = 'open'; /** * Invalid break time - exceeds interval between start and end dates. * Data: - */ const ERROR_BREAK = 'break';