* @copyright 2007-2011 PrestaShop SA * @version Release: $Revision$ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) * International Registered Trademark & Property of PrestaShop SA */ /* * TODO : move HTML code in template files * TODO : phpDoc on two last methods: includeDatepicker() & bindDatepicker() */ class HelperCore { public function __construct() { $this->context = Context::getContext(); } /** * * @param type $trads values of translations keys * For the moment, translation are not automatic * @param type $selected_cat array of selected categories * Format * Array * ( * [0] => 1 * [1] => 2 * ) * OR * Array * ( * [1] => Array * ( * [id_category] => 1 * [name] => Home page * [link_rewrite] => home * ) * ) * @param type $input_name name of input * @return string */ public static function renderAdminCategorieTree($trads, $selected_cat = array(), $input_name = 'categoryBox', $use_radio = false, $use_search = false) { if (!$use_radio) $input_name = $input_name.'[]'; $html = ' '. ($use_search ? '' : '' ).' '; $html .= '
'.$trads['Collapse All'].' - '.$trads['Expand All'].' '.(!$use_radio ? ' - '.$trads['Check All'].' - '.$trads['Uncheck All'].' ' : '').($use_search ? ''.$trads['search'].' :
' : '').'
'; $home_is_selected = false; foreach($selected_cat AS $cat) { if (is_array($cat)) { if ($cat['id_category'] != 1) $html .= ''; else $home_is_selected = true; } else { if ($cat != 1) $html .= ''; else $home_is_selected = true; } } $html .= ' '; return $html; } /** * Create a select input field * * @param array $values * @param array $html_options any key => value options * @param array $select_options * - key: the array value that will be used as a key in my select (optional) * - value: the array value that will be used as a label in my select (optional) * - empty: the label displayed as an empty value (optional) * - selected: the key corresponding to the selected value (optional) * * @return string html content */ public static function selectInput(array $values, array $html_options = array(), array $select_options = array()) { // options management $options = self::buildHtmlOptions($html_options); $select_html = ''; return $select_html; } /** * Create html a string containing html options * eg: buildHtmlOptions(array('name' => 'myInputName', 'id' => 'myInputId')); * return => 'name="myInputName" id="myInputId"' * * @param array $html_options * * @return string */ protected static function buildHtmlOptions(array $html_options) { $html = ''; foreach ($html_options as $html_option => $value) $html .= Tools::htmlentitiesUTF8($html_option).'="'.Tools::htmlentitiesUTF8($value).'" '; return rtrim($html, ' '); } public function bindDatepicker($id, $time = false) { if ($time) echo ' var dateObj = new Date(); var hours = dateObj.getHours(); var mins = dateObj.getMinutes(); var secs = dateObj.getSeconds(); if (hours < 10) { hours = "0" + hours; } if (mins < 10) { mins = "0" + mins; } if (secs < 10) { secs = "0" + secs; } var time = " "+hours+":"+mins+":"+secs;'; echo ' $(function() { $("#'.$id.'").datepicker({ prevText:"", nextText:"", dateFormat:"yy-mm-dd"'.($time ? '+time' : '').'}); });'; } // id can be a identifier or an array of identifiers public function includeDatepicker($id, $time = false) { $iso = Db::getInstance()->getValue('SELECT iso_code FROM '._DB_PREFIX_.'lang WHERE `id_lang` = '.(int)Context::getContext()->language->id); if (!$iso) $iso = 'en'; // TODO : change in order to use Media::addJqueryUi() echo ' '; } }