public static function &getInstance($lang = null) { if (is_null($lang)) { $lang = T::getLang(); } if (empty($lang)) { $lang = Config::get('defaultLang'); } if (key_exists($lang, T::$instances)) { return T::$instances[$lang]; } else { $driver = T::getConfig('driver'); if (empty($driver)) { $driver = 'reader'; } $className = 'T_' . $driver; $t = new $className(); $t->init($lang); T::addInstance($t, $lang); return $t; } }
public static function &getSearchForm($do, $module) { MyQuickForm::registerElementType('advandate', 'HTML/QuickForm/advandate.php', 'HTML_QuickForm_advandate'); $form = new MyQuickForm('formSearch', 'GET', self::getQueryParams(array(), array('page', '_c_'), false)); $fields = $_GET; unset($fields['_c_']); unset($fields['page']); unset($fields['module']); unset($fields['action']); unset($fields['filterField']); unset($fields['filterValue']); if (count($fields) == 0) { Log::info('caching search form'); $cache = true; } else { Log::info('NO SEARCH FORM CACHING'); $cache = false; } $cacheName = 'searchform_' . $module; $options = array('caching' => $cache, 'cacheDir' => APP_ROOT . 'app/' . APP_NAME . '/cache/forms/', 'lifeTime' => 3600, 'fileNameProtection' => false); $cache = new Cache_Lite($options); if ($_cachedData = $cache->get($cacheName)) { Mreg::append('autoloadcallback', array(array('MyQuickForm', 'autoloadElements'))); $_cachedData = unserialize($_cachedData); foreach ($_cachedData as $element) { $form->addElement($element); } } else { $do->fb_selectAddEmpty = array(); if (is_array($do->links())) { foreach ($do->links() as $field => $link) { $do->fb_selectAddEmpty[] = $field; } } if (is_array($do->fb_enumFields)) { foreach ($do->fb_enumFields as $field) { $do->fb_selectAddEmpty[] = $field; } } $do->fb_formHeaderText = __('Search'); $do->fb_submitText = '>>'; $do->fb_linkNewValue = false; $formBuilder =& MyFB::create($do); $formBuilder->_cacheOptions = array('name' => 'office_searchform', 'cacheDir' => APP_ROOT . 'app/' . APP_NAME . '/cache/forms/'); $formBuilder->preGenerateFormCallback = array($do, 'prepareSearchForm'); $do->prepareSearchForm($fb); $do->fb_userEditableFields = $do->fb_fieldsToRender; $table = $do->table(); foreach ($do->fb_fieldsToRender as $field) { if ($table[$field] & DB_DATAOBJECT_DATE || $table[$field] & DB_DATAOBJECT_TIME) { $label = $do->fb_fieldLabels[$field] ? $do->fb_fieldLabels[$field] : $field; $do->fb_preDefElements[$field] = MyQuickForm::createElement('advandate', $field, $label, array("language" => T::getLang())); } } $formBuilder->postGenerateFormCallback = array($do, 'postPrepareSearchForm'); $formBuilder->useForm($form); $formBuilder->getForm(); foreach ($form->_elements as $elem) { $cached[] = $elem; } if ($cache) { $cache->save(serialize($cached)); } } $form->_rules = array(); $form->_formRules = array(); $form->_required = array(); self::addHiddenFields($form, array('search', 'page', '__dontpaginate', '_c_'), true); $form->addElement('checkbox', '__dontpaginate', 'Afficher les résultats sur une seule page'); return $form; }
public function altlocaleimg($filename, $altfolder = NULL, $mainfolder = 'images/locale/') { if (!is_null($altfolder)) { return $this->img($filename, array($altfolder . '/' . T::getLang(), T::getLang(), substr(T::getLang(), 0, 2)), $mainfolder); } return $this->img($filename, array(T::getLang(), substr(T::getLang(), 0, 2)), $mainfolder); }
* * Plugin extension for DB_DataObject * Extends DB_DataObject_Iterator * * @package M * @subpackage DB_DataObject_Pluggable * @author Arnaud Sellenet <demental at github> * @license http://opensource.org/licenses/lgpl-license.php GNU Lesser General Public License * @version 0.1 */ if (!defined('PLUGIN_DIR')) { define('PLUGIN_DIR', 'M/DB/DataObject/Plugin/'); } if (!function_exists('__')) { T::getLang(); } function date2array($dt) { if ($dt == NULL) { return array('Y' => '0000', 'm' => '00', 'd' => '00'); } else { return DB_DataObject_FormBuilder::_date2array($dt); } } class DB_DataObject_Pluggable extends DB_DataObject implements Iterator { protected $_listeners = array(); public static $objectRegistry = array(); public $fb_dateFromDatabaseCallback = 'date2array'; public $_pluginsLoaded = false;
<?php Mreg::append('autoload', array('wptools' => dirname(__FILE__) . '/lib/wptools.php')); T::$config['switch_callbacks'][] = 'WPTools::on_switch_lang'; WPTools::on_switch_lang(T::getLang());
/** * generates and returns a relative path when URL is set to the "old" method. * @see URL::getAnchor() for parameters detail * @return string generated relative path **/ public static function getOldAnchor($route, $params = null, $lang = null) { unset($params['lang']); unset($params['module']); unset($params['action']); if ($lang == null) { $lang = T::getLang(); } if ($params == null) { return $lang . '/' . $route; } return $lang . '/' . $route . '?' . http_build_query($params); }
/** * * description * * @param $action * @return unknown_type */ public function getCacheId($action) { if (count($_POST) == 0) { $hash = $this->_modulename . '_' . $action . '_' . T::getLang() . '_' . md5(print_r($_GET, true)); return $hash; } return false; }
/** * fetches and returns translated value for field $field of object $obj * using the current language if not specified. * @param $obj DB_DataObject * @param $field string object's field name * @param $lang string (optional) lang to be fetched * @return string translated value **/ function getTranslation($obj, $field, $lang = null) { if (!$obj->pk()) { return false; } if (empty($lang)) { $lang = T::getLang(); } $translateDO =& DB_DataObject::factory($obj->tableName() . '_l10n'); if (PEAR::isError($translateDO)) { echo "Erreur lors de la traduction : " . $translateDO->getMessage(); exit; } $translateDO->l10n_lang = $lang; $translateDO->l10n_record_id = $obj->pk(); if ($translateDO->find(TRUE)) { return $translateDO->{$field}; } else { $translateDO->{$field} = $obj->{$field}; $translateDO->insert(); return $obj->{$field}; } }