Files
conservatorio-tomadini/administrator/components/com_tabulizer/views/rule/view.html.php
2024-12-17 17:34:10 +01:00

1038 lines
61 KiB
PHP

<?php
/**
* @version 6.2.6 tabulizer $
* @package tabulizer
* @copyright Copyright © 2011 - All rights reserved.
* @license GNU/GPL
* @author Dimitrios Mourloukos
* @author mail info@alterora.gr
* @website www.tabulizer.com
*
*/
// no direct access
defined('_JEXEC') or die('Restricted access');
jimport( 'joomla.application.component.view' );
class tabulizerViewRule extends JViewLegacy
{
function __construct(){
// add tabulizer CSS to override form styling
$doc=JFactory::getDocument();
$cssfile = TabulizerPath::getURLPath('tabulizer.css', 'admin_css');
$doc->addStyleSheet($cssfile);
parent::__construct();
}
function display($tpl = null){
parent::display($tpl);
}
function displayNew($tpl = null) {
global $option, $mainframe;
$return_urls = array();
$model = $this->getModel();
$ruleset = $model->getRuleset();
$model->getReturnURLs($return_urls);
$rule = array(
'edit'=> false,
'rule_id' => count($ruleset['rules']),
'ruleset_name' => $ruleset['name'],
'filename' => $ruleset['filename']
);
$lists = $this->getEditRuleLists($rule);
$this->assignRef('lists', $lists);
$this->assignRef('return_urls', $return_urls);
parent::display($tpl);
}
function displayEdit($tpl = null){
global $option, $mainframe;
$return_urls = array();
$model = $this->getModel();
$rule = $model->getRule();
$model->getReturnURLs($return_urls);
$rule['edit'] = true;
$lists = $this->getEditRuleLists($rule);
$this->assignRef('lists', $lists);
$this->assignRef('return_urls', $return_urls);
parent::display($tpl);
}
function getEditRuleLists($rule){
$lists = array();
$select_selected = 'selected="selected"';
$checkbox_selected = 'checked="checked"';
$row_selected = $column_selected = $cell_selected = '';
$element_value = $element_section = $range_value = $style_value = $graph_value = $prepend_value = $append_value = '';
$split_value = $filter_value = $column_filter_value = $sort_value = $pagination_value = $scroll_value = $theme_value = $responsive_value = $format_value = $calculation_value = $modification_value = $add_files = null;
$data_type = DATA_TYPE_UNDEFINED;
$data_type_params = '';
$autospan_selected = false;
$th_tag_selected = false;
$remove_selected = false;
$range_key = 0;
$priority = 0;
# element
$selected_value = (empty($rule['element']))?'row':$rule['element'];
$options = array('none'=>JText::_('COM_TABULIZER_ELEMENT_TYPE_SELECT'), 'row'=>JText::_('COM_TABULIZER_ROW'), 'column'=>JText::_('COM_TABULIZER_COLUMN'), 'cell'=>JText::_('COM_TABULIZER_CELL'), 'table'=>JText::_('COM_TABULIZER_TABLE'));
$attributes = array('onchange'=>'updateElementType(this)');
$lists['element'] = TabulizerForm::getSelectCtrl('element', $selected_value, $options,$attributes);
$lists['element_type_value'] = $selected_value;
# element section
if (!empty($rule['element_section'])) {
$element_section = $rule['element_section'];
}
$lists['element_section'] = TabulizerForm::getTextCtrl('element_section', $element_section);
# range
if (!empty($rule['range'])) {
$range_value = $rule['range'];
}
$lists['range'] = TabulizerForm::getTextCtrl('range', $range_value);
# range key
if (!empty($rule['range_key'])) {
$range_key = $rule['range_key'];
}
$lists['range_key'] = TabulizerForm::getTextCtrl('range_key', $range_key);
# priority
if (!empty($rule['priority'])) {
$priority = $rule['priority'];
}
$lists['priority'] = TabulizerForm::getTextCtrl('priority', $priority);
# style
if (!empty($rule['style'])) {
$style_value = $rule['style'];
}
$lists['style'] = TabulizerForm::getTextCtrl('style', $style_value);
# attribute
if (!empty($rule['attribute'])) {
list($attribute_name,$attribute_value) = explode(ATTRIBUTE_SEPARATOR,$rule['attribute'],2);
} else {
$attribute_name = $attribute_value = '';
}
$lists['attribute'] = '<div class="data_format_params"><table><tbody><tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_ELEMENT_ATTRIBUTE_NAME').':</td><td>'.TabulizerForm::getTextCtrl('attribute_name', $attribute_name).'</td></tr><tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_ELEMENT_ATTRIBUTE_VALUE').':</td><td>'.TabulizerForm::getTextCtrl('attribute_value', $attribute_value).'</td></tr></tbody></table></div>';
# autospan
if (!empty($rule['autospan'])) {
$autospan_selected = true;
}
$lists['autospan'] = TabulizerForm::getCheckboxCtrl('autospan', '1', $autospan_selected) . JText::_('COM_TABULIZER_AUTOSPAN_SELECTED');
# th tag
if (!empty($rule['th_tag'])) {
$th_tag_selected = true;
}
$lists['th_tag'] = TabulizerForm::getCheckboxCtrl('th_tag', '1', $th_tag_selected) . JText::_('COM_TABULIZER_TH_TAG_SELECTED');
# remove
if (!empty($rule['remove'])) {
$remove_selected = true;
}
$lists['remove'] = TabulizerForm::getCheckboxCtrl('remove', '1', $remove_selected) . JText::_('COM_TABULIZER_REMOVE_SELECTED');
# format
$format_vars = array('text_format','numeric_decimals', 'numeric_dec_point', 'numeric_thousands_sep', 'currency_decimals', 'currency_dec_point', 'currency_thousands_sep', 'currency_symbol', 'currency_symbol_order','date_format');
foreach ($format_vars as $format_var) {
$$format_var = null;
}
if (!empty($rule['format'])) {
$format_value = $rule['format'];
list($data_type,$data_type_params) = explode(DATA_TYPE_SEPARATOR,$format_value);
$data_type_params = html_entity_decode($data_type_params,ENT_QUOTES,'UTF-8');
switch ($data_type) {
case DATA_TYPE_TEXT:
$text_format = $data_type_params;
break;
case DATA_TYPE_NUMERIC:
list($numeric_decimals, $numeric_dec_point, $numeric_thousands_sep) = explode(FORMAT_NUMERIC_SEPARATOR, $data_type_params);
break;
case DATA_TYPE_CURRENCY:
list($currency_decimals, $currency_dec_point, $currency_thousands_sep, $currency_symbol, $currency_symbol_order) = explode(FORMAT_CURRENCY_SEPARATOR, $data_type_params);
break;
case DATA_TYPE_DATE:
$date_format = $data_type_params;
break;
}
}
$lists['format'] = '';
$options = array(DATA_TYPE_UNDEFINED => JText::_('COM_TABULIZER_DATA_TYPE_UNDEFINED'),
DATA_TYPE_TEXT => JText::_('COM_TABULIZER_DATA_TYPE_TEXT'),
DATA_TYPE_NUMERIC => JText::_('COM_TABULIZER_DATA_TYPE_NUMERIC'),
DATA_TYPE_CURRENCY => JText::_('COM_TABULIZER_DATA_TYPE_CURRENCY'),
DATA_TYPE_DATE => JText::_('COM_TABULIZER_DATA_TYPE_DATE'));
$selected_value = empty($data_type)?DATA_TYPE_UNDEFINED:$data_type;
$attributes = array('onChange'=>'updateDataType(this)');
$lists['format'] .= TabulizerForm::getSelectCtrl('format_data_type',$selected_value,$options,$attributes);
$format_text_params_div_class = $format_numeric_params_div_class = $format_currency_params_div_class = $format_date_params_div_class = 'hidden_span';
switch ($data_type) {
case DATA_TYPE_TEXT: $format_text_params_div_class = ''; break;
case DATA_TYPE_NUMERIC: $format_numeric_params_div_class = ''; break;
case DATA_TYPE_CURRENCY: $format_currency_params_div_class = ''; break;
case DATA_TYPE_DATE: $format_date_params_div_class = ''; break;
}
$options = array(FORMAT_TEXT_UPPERCASE => JText::_('COM_TABULIZER_FORMAT_TEXT_UPPERCASE'),
FORMAT_TEXT_LOWERCASE => JText::_('COM_TABULIZER_FORMAT_TEXT_LOWERCASE'),
FORMAT_TEXT_UCFIRST => JText::_('COM_TABULIZER_FORMAT_TEXT_UCFIRST'),
FORMAT_TEXT_UCWORDS => JText::_('COM_TABULIZER_FORMAT_TEXT_UCWORDS'));
$selected_value = empty($text_format)?FORMAT_TEXT_UPPERCASE:$text_format;
$format_text_params_options = $this->getSelectOptions($options, $selected_value);
$numeric_decimals_options = '';
$currency_decimals_options = '';
for ($i=0;$i<10;$i++) {
if ($i==$numeric_decimals) {
$numeric_decimals_options .= '<option value="'.$i.'" '.$select_selected.'>'.$i.'</option>';
} else {
$numeric_decimals_options .= '<option value="'.$i.'">'.$i.'</option>';
}
if ($i==$currency_decimals) {
$currency_decimals_options .= '<option value="'.$i.'" '.$select_selected.'>'.$i.'</option>';
} else {
$currency_decimals_options .= '<option value="'.$i.'">'.$i.'</option>';
}
}
$options = array(FORMAT_NUMERIC_DEC_POINT_COMMA => JText::_('COM_TABULIZER_FORMAT_NUMERIC_DEC_POINT_COMMA'), FORMAT_NUMERIC_DEC_POINT_PERIOD => JText::_('COM_TABULIZER_FORMAT_NUMERIC_DEC_POINT_PERIOD'));
$selected_value = empty($numeric_dec_point)?FORMAT_NUMERIC_DEC_POINT_PERIOD:$numeric_dec_point;
$numeric_dec_point_options = $this->getSelectOptions($options, $selected_value);
$selected_value = empty($numeric_thousands_sep)?FORMAT_NUMERIC_DEC_POINT_COMMA:$numeric_thousands_sep;
$numeric_thousands_sep_options = $this->getSelectOptions($options, $selected_value);
$selected_value = empty($currency_dec_point)?FORMAT_NUMERIC_DEC_POINT_PERIOD:$currency_dec_point;
$currency_dec_point_options = $this->getSelectOptions($options, $selected_value);
$selected_value = empty($currency_thousands_sep)?FORMAT_NUMERIC_DEC_POINT_COMMA:$currency_thousands_sep;
$currency_thousands_sep_options = $this->getSelectOptions($options, $selected_value);
$currency_symbol = empty($currency_symbol)?'&euro;':$currency_symbol;
$options = array(FORMAT_CURRENCY_SYMBOL_ORDER_NONE => JText::_('COM_TABULIZER_FORMAT_CURRENCY_SYMBOL_ORDER_NONE'), FORMAT_CURRENCY_SYMBOL_ORDER_BEFORE => JText::_('COM_TABULIZER_FORMAT_CURRENCY_SYMBOL_ORDER_BEFORE'), FORMAT_CURRENCY_SYMBOL_ORDER_AFTER => JText::_('COM_TABULIZER_FORMAT_CURRENCY_SYMBOL_ORDER_AFTER'));
$selected_value = empty($currency_symbol_order)?FORMAT_CURRENCY_SYMBOL_ORDER_NONE:$currency_symbol_order;
$currency_symbol_order_options = $this->getSelectOptions($options, $selected_value);
$options = array(FORMAT_DATE_DDMMYY_1 => JText::_('COM_TABULIZER_FORMAT_DATE_DDMMYY_1'),
FORMAT_DATE_DDMMYY_2 => JText::_('COM_TABULIZER_FORMAT_DATE_DDMMYY_2'),
FORMAT_DATE_DDMMYY_3 => JText::_('COM_TABULIZER_FORMAT_DATE_DDMMYY_3'),
FORMAT_DATE_MMDDYY_1 => JText::_('COM_TABULIZER_FORMAT_DATE_MMDDYY_1'),
FORMAT_DATE_MMDDYY_2 => JText::_('COM_TABULIZER_FORMAT_DATE_MMDDYY_2'),
FORMAT_DATE_DDMMYYYY_1 => JText::_('COM_TABULIZER_FORMAT_DATE_DDMMYYYY_1'),
FORMAT_DATE_DDMMYYYY_2 => JText::_('COM_TABULIZER_FORMAT_DATE_DDMMYYYY_2'),
FORMAT_DATE_DDMMYYYY_4 => JText::_('COM_TABULIZER_FORMAT_DATE_DDMMYYYY_4'),
FORMAT_DATE_DDMMYYYY_3 => JText::_('COM_TABULIZER_FORMAT_DATE_DDMMYYYY_3'),
FORMAT_DATE_MMDDYYYY_1 => JText::_('COM_TABULIZER_FORMAT_DATE_MMDDYYYY_1'),
FORMAT_DATE_MMDDYYYY_2 => JText::_('COM_TABULIZER_FORMAT_DATE_MMDDYYYY_2'),
FORMAT_DATE_MMDDYYYY_3 => JText::_('COM_TABULIZER_FORMAT_DATE_MMDDYYYY_3'),
FORMAT_DATE_dDDMMYYYY_1 => JText::_('COM_TABULIZER_FORMAT_DATE_DDDMMYYYY_1'),
FORMAT_DATE_dDDMMYYYY_2 => JText::_('COM_TABULIZER_FORMAT_DATE_DDDMMYYYY_2'),
FORMAT_DATE_dMMDDYYYY_1 => JText::_('COM_TABULIZER_FORMAT_DATE_DMMDDYYYY_1'),
FORMAT_DATE_dMMDDYYYY_2 => JText::_('COM_TABULIZER_FORMAT_DATE_DMMDDYYYY_2'),
FORMAT_DATE_dDDm_1 => JText::_('COM_TABULIZER_FORMAT_DATE_DDDM_1'),
FORMAT_DATE_dmDD_1 => JText::_('COM_TABULIZER_FORMAT_DATE_DMDD_1'));
$selected_value = empty($date_format)?FORMAT_DATE_DDMMYY_1:$date_format;
$format_date_params_options = $this->getSelectOptions($options, $selected_value);
$lists['format'] .= '<br/>
<div id="format_params_div" style="display: block; margin-top: 10px;">
<span id="format_text_params_div" class="'.$format_text_params_div_class.'">
<div class="data_type_params"><table width="100%">' .
'<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_FORMAT_TEXT').':</td><td><select name="format_text_params" id="format_text_params">'.$format_text_params_options.'</select></td></tr>' .
'</table></div>
</span>
<span id="format_numeric_params_div" class="'.$format_numeric_params_div_class.'">
<div class="data_type_params"><table width="100%">' .
'<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_FORMAT_NUMERIC_DECIMALS').':</td><td><select name="format_numeric_decimals" id="format_numeric_decimals">'.$numeric_decimals_options.'</select></td></tr>' .
'<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_FORMAT_NUMERIC_DEC_POINT'). ':</td><td><select name="format_numeric_dec_point" id="format_numeric_dec_point">'.$numeric_dec_point_options.'</select></td></tr>' .
'<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_FORMAT_NUMERIC_THOUSANDS_SEP'). ':</td><td><select name="format_numeric_thousands_sep" id="format_numeric_thousands_sep">'.$numeric_thousands_sep_options.'</select></td></tr>' .
'</table></div>
</span>
<span id="format_currency_params_div" class="'.$format_currency_params_div_class.'">
<div class="data_type_params"><table width="100%">' .
'<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_FORMAT_CURRENCY_DECIMALS').':</td><td><select name="format_currency_decimals" id="format_currency_decimals">'.$currency_decimals_options.'</select></td></tr>' .
'<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_FORMAT_CURRENCY_DEC_POINT'). ':</td><td><select name="format_currency_dec_point" id="format_currency_dec_point">'.$currency_dec_point_options.'</select></td></tr>' .
'<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_FORMAT_CURRENCY_THOUSANDS_SEP'). ':</td><td><select name="format_currency_thousands_sep" id="format_currency_thousands_sep">'.$currency_thousands_sep_options.'</select></td></tr>' .
'<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_FORMAT_CURRENCY_SYMBOL').':</td><td><input type="text" name="format_currency_symbol" id="format_currency_symbol" length="6" maxlength="24" value="'.htmlspecialchars($currency_symbol,ENT_COMPAT,'UTF-8').'"></td></tr>' .
'<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_FORMAT_CURRENCY_SYMBOL_ORDER').':</td><td><select name="format_currency_symbol_order" id="format_currency_symbol_order">'.$currency_symbol_order_options.'</select></td></tr>' .
'</table></div>
</span>
<span id="format_date_params_div" class="'.$format_date_params_div_class.'">
<div class="data_type_params"><table width="100%">' .
'<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_FORMAT_DATE').':</td><td><select name="format_date_params" id="format_date_params">'.$format_date_params_options.'</select></td></tr>' .
'</table></div>
</span>
</div>';
$lists['format'] .= '<input type="hidden" name="format_data_type_params" id="format_data_type_params" value="'.$data_type_params.'">';
# replacement
$replace_cs = 'checked="checked"';
$replace_from = $replace_to = '';
if (!empty($rule['replacement'])) {
list($case_sensitive, $replace_from, $replace_to) = explode(REPLACEMENT_SEPARATOR, $rule['replacement'], 3);
if ($case_sensitive) $replace_cs = 'checked="checked"'; else $replace_cs = '';
if (!empty($replace_from)) $replace_from = htmlspecialchars($replace_from,ENT_QUOTES,'UTF-8');
if (!empty($replace_to)) $replace_to = htmlspecialchars($replace_to,ENT_QUOTES,'UTF-8');
}
$lists['replacement'] = '<div class="data_format_params"><table><tr class="tr_hi"><td class="fieldlabel2">'. JText::_('COM_TABULIZER_REPLACEMENT_FROM'). ':</td><td><input type="text" name="replace_from" id="replace_from" value="'.$replace_from.'" > <span class="tip">'.JText::_('COM_TABULIZER_ELEMENT_REPLACEMENT_BASE64_ENCODE_TIP').$this->getEncodingMenu('replace_from').'</span></td></tr>' .
'<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_REPLACEMENT_TO'). ':</td><td><input type="text" name="replace_to" id="replace_to" value="'.$replace_to.'" > <span class="tip">'.JText::_('COM_TABULIZER_ELEMENT_REPLACEMENT_BASE64_ENCODE_TIP').$this->getEncodingMenu('replace_to').'</span></td></tr>' .
'<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_REPLACEMENT_CS'). ':</td><td><input type="checkbox" name="replace_cs" id="replace_cs" value="1" '.$replace_cs.' > '.JText::_('COM_TABULIZER_YES').'</td></tr></table></div>';
# table modification
if (!empty($rule['modification'])) {
$modification_value = $rule['modification'];
}
$lists['modification'] = $this->getModificationHTML($modification_value);
# calculation
if (!empty($rule['calculation'])) {
$calculation_value = $rule['calculation'];
}
$lists['calculation'] = $this->getCalculationHTML($calculation_value);
# prepend table
if (!empty($rule['prepend'])) {
$prepend_value = $rule['prepend'];
}
$lists['prepend'] = TabulizerForm::getTextareaCtrl('table_prepend',$prepend_value,array('class'=>'textarea_param'));
# append table
if (!empty($rule['append'])) {
$append_value = $rule['append'];
}
$lists['append'] = TabulizerForm::getTextareaCtrl('table_append',$append_value,array('class'=>'textarea_param'));
# add files
if (!empty($rule['add_files'])) {
$add_files_value = $rule['add_files'];
} else {
$add_files_value = '';
}
$lists['add_files'] = $this->getAddFilesHTML($add_files_value);
TabulizerPath::requireLib('ruleset','common');
$ruleset = new RulesetLoader();
# split table
if (!empty($rule['split'])) {
if (!$ruleset->parseSplitValue($rule['split'], $split_value)) $split_value = null;
}
$lists['split'] = $this->getSplitHTML('table_split',$split_value);
# sort
if (!empty($rule['sort'])) {
if (!$ruleset->parseSortValue($rule['sort'],$sort_value)) $sort_value = null;
}
$lists['sort'] = $this->getSortHTML('table_sort',$sort_value);
# pagination
if (!empty($rule['pagination'])) {
if (!$ruleset->parsePaginationValue($rule['pagination'],$pagination_value)) $pagination_value = null;
}
$lists['pagination'] = $this->getPaginationHTML('table_pagination',$pagination_value);
# scroll
if (!empty($rule['scroll'])) {
if (!$ruleset->parseScrollValue($rule['scroll'],$scroll_value)) $scroll_value = null;
}
$lists['scroll'] = $this->getScrollHTML('table_scroll',$scroll_value);
# filter
if (!empty($rule['filter'])) {
if (!$ruleset->parseFilterValue($rule['filter'],$filter_value)) $filter_value = null;
}
if (!empty($rule['column_filter'])) {
if (!$ruleset->parseColumnFilterValue($rule['column_filter'],$column_filter_value)) $column_filter_value = null;
}
$lists['filter'] = $this->getFilterHTML('table_filter',$filter_value,'table_column_filter',$column_filter_value);
if (!empty($rule['theme'])) {
if (!$ruleset->parseThemeValue($rule['theme'],$theme_value)) $theme_value = null;
}
$lists['theme'] = $this->getThemeHTML('table_theme',$theme_value);
# responsive
if (!empty($rule['responsive'])) {
if (!$ruleset->parseResponsiveValue($rule['responsive'],$responsive_value)) $responsive_value = null;
}
$lists['responsive'] = $this->getResponsiveHTML('table_responsive',$responsive_value);
# export table data
$export_table_value = null;
if (!empty($rule['export_table'])) {
if (!$ruleset->parseExportTableValue($rule['export_table'],$export_table_value)) $export_table_value = null;
}
$lists['export_table'] = $this->getExportTableHTML('table_export_table',$export_table_value);
# convert table to graph
if (!empty($rule['graph'])) {
$graph_value = $rule['graph'];
}
$lists['graph'] = '<input type="text" name="table_graph" id="table_graph" value="'.$graph_value.'" />';
$lists['base64_tools'] = $this->getBase64Tools();
# edit flag
$lists['edit'] = $rule['edit'];
$lists['rule_id'] = '<input type="hidden" name="rule_id" value="'.$rule['rule_id'].'" />';
$lists['ruleset_name'] = '<input type="hidden" name="ruleset_name" value="'.htmlspecialchars($rule['ruleset_name'],ENT_COMPAT,'UTF-8').'" />';
$lists['filename'] = '<input type="hidden" name="archive_filename" value="'.htmlspecialchars($rule['filename'],ENT_COMPAT,'UTF-8').'" />';
$lists['rule_id_value'] = $rule['rule_id'];
$lists['ruleset_name_value'] = $rule['ruleset_name']; // $ruleset['name'];
$lists['filename_value'] = $rule['filename'];
return $lists;
}
function getCalculationHTML($calculation_value) {
$function_name = null;
$arg_range = null;
$custom_arg = null;
if (!empty($calculation_value)) {
// backward compatibility
if (is_numeric($calculation_value)) {
switch ($calculation_value) {
case CALCULATION_ADD_ABOVE: $function_name = 'add'; $element = 'row'; $arg_range = '[1-P1],[SAME]'; $custom_arg = 'above'; break;
case CALCULATION_ADD_BELOW: $function_name = 'add'; $element = 'row'; $arg_range = '[N1-L1],[SAME]'; $custom_arg = 'below'; break;
case CALCULATION_ADD_LEFT: $function_name = 'add'; $element = 'column'; $arg_range = '[SAME],[1-P1]'; $custom_arg = 'left'; break;
case CALCULATION_ADD_RIGHT: $function_name = 'add'; $element = 'column'; $arg_range = '[SAME],[N1-L1]'; $custom_arg = 'right'; break;
case CALCULATION_MUL_ABOVE: $function_name = 'mul'; $element = 'row'; $arg_range = '[1-P1],[SAME]'; $custom_arg = 'above'; break;
case CALCULATION_MUL_BELOW: $function_name = 'mul'; $element = 'row'; $arg_range = '[N1-L1],[SAME]'; $custom_arg = 'below'; break;
case CALCULATION_MUL_LEFT: $function_name = 'mul'; $element = 'column'; $arg_range = '[SAME],[1-P1'; $custom_arg = 'left'; break;
case CALCULATION_MUL_RIGHT: $function_name = 'mul'; $element = 'column'; $arg_range = '[SAME],[N1-L1]'; $custom_arg = 'right'; break;
case CALCULATION_AVG_ABOVE: $function_name = 'avg'; $element = 'row'; $arg_range = '[1-P1],[SAME]'; $custom_arg = 'above'; break;
case CALCULATION_AVG_BELOW: $function_name = 'avg'; $element = 'row'; $arg_range = '[N1-L1],[SAME]'; $custom_arg = 'below'; break;
case CALCULATION_AVG_LEFT: $function_name = 'avg'; $element = 'column'; $arg_range = '[SAME],[1-P1'; $custom_arg = 'left'; break;
case CALCULATION_AVG_RIGHT: $function_name = 'avg'; $element = 'column'; $arg_range = '[SAME],[N1-L1]'; $custom_arg = 'right'; break;
case CALCULATION_MED_ABOVE: $function_name = 'med'; $element = 'row'; $arg_range = '[1-P1],[SAME]'; $custom_arg = 'above'; break;
case CALCULATION_MED_BELOW: $function_name = 'med'; $element = 'row'; $arg_range = '[N1-L1],[SAME]'; $custom_arg = 'below'; break;
case CALCULATION_MED_LEFT: $function_name = 'med'; $element = 'column'; $arg_range = '[SAME],[1-P1'; $custom_arg = 'left'; break;
case CALCULATION_MED_RIGHT: $function_name = 'med'; $element = 'column'; $arg_range = '[SAME],[N1-L1]'; $custom_arg = 'right'; break;
case CALCULATION_MIN_ABOVE: $function_name = 'min'; $element = 'row'; $arg_range = '[1-P1],[SAME]'; $custom_arg = 'above'; break;
case CALCULATION_MIN_BELOW: $function_name = 'min'; $element = 'row'; $arg_range = '[N1-L1],[SAME]'; $custom_arg = 'below'; break;
case CALCULATION_MIN_LEFT: $function_name = 'min'; $element = 'column'; $arg_range = '[SAME],[1-P1'; $custom_arg = 'left'; break;
case CALCULATION_MIN_RIGHT: $function_name = 'min'; $element = 'column'; $arg_range = '[SAME],[N1-L1]'; $custom_arg = 'right'; break;
case CALCULATION_MAX_ABOVE: $function_name = 'max'; $element = 'row'; $arg_range = '[1-P1],[SAME]'; $custom_arg = 'above'; break;
case CALCULATION_MAX_BELOW: $function_name = 'max'; $element = 'row'; $arg_range = '[N1-L1],[SAME]'; $custom_arg = 'below'; break;
case CALCULATION_MAX_LEFT: $function_name = 'max'; $element = 'column'; $arg_range = '[SAME],[1-P1'; $custom_arg = 'left'; break;
case CALCULATION_MAX_RIGHT: $function_name = 'max'; $element = 'column'; $arg_range = '[SAME],[N1-L1]'; $custom_arg = 'right'; break;
default: return null;
}
$calculation_value = $function_name.CALCULATION_SEP.CALCULATION_SEP.$arg_range.CALCULATION_SEP.$custom_arg;
}
$parts = explode(CALCULATION_SEP,$calculation_value);
if (count($parts)==3) {
$function_name = $parts[0];
$arg_range = $parts[1];
$custom_arg = $parts[2];
}
}
$html = '<div class="data_format_params"><table>' .
'<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_CALCULATION_FUNCTION').':</td><td><input type="input" name="calc_function_name" id="calc_function_name" value="'.$function_name.'" ></td></tr>' . "\n" .
'<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_CALCULATION_ARG_RANGE').':</td><td><input type="input" name="calc_arg_range" id="calc_arg_range" value="'.$arg_range.'" ></td></tr>' . "\n" .
'<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_CALCULATION_CUSTOM_ARG').':</td><td><input type="input" name="calc_custom_arg" id="calc_custom_arg" value="'.$custom_arg.'" ></td></tr>' . "\n" .
'</table></div>' .
TabulizerForm::getHiddenCtrl('calculation','');
return $html;
}
# table modification
function getModificationHTML($modification_value) {
$function_name = '';
$function_args = '';
$parts = explode(MODIFICATION_SEP,$modification_value);
if (count($parts)==2) {
$function_name = $parts[0];
$function_args = $parts[1];
}
$html = '<div class="data_format_params"><table>' .
'<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_MODIFICATION_FUNCTION_NAME').':</td><td><input type="input" name="modification_function_name" id="modification_function_name" value="'.$function_name.'" ></td></tr>' . "\n" .
'<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_MODIFICATION_FUNCTION_ARGS').':</td><td><input type="input" name="modification_function_args" id="modification_function_args" value="'.TabulizerString::makeHTMLSafe($function_args).'" ></td></tr>' . "\n" .
'</table></div>' .
TabulizerForm::getHiddenCtrl('modification','');
return $html;
}
# add files
function getAddFilesHTML($add_files_value) {
$add_files_css = $add_files_js = '';
$add_jquery_support = 0;
$add_jqueryui_support = 0;
$add_scroll_support = 0;
$file_types = array('js','css','jquery','jquery-ui','scroll-support');
foreach ($file_types as $file_type) {
if (preg_match('/'.$file_type.'\[([^\]]+)\]/i',$add_files_value,$matches)) {
if ($file_type == 'css') $add_files_css = $matches[1];
else if ($file_type == 'js') $add_files_js = $matches[1];
else if ($file_type == 'jquery') $add_jquery_support = 1;
else if ($file_type == 'jquery-ui') $add_jqueryui_support = 1;
else if ($file_type == 'scroll-support') $add_scroll_support = 1;
}
}
$html = '<div class="data_format_params"><table>' .
'<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_ADD_FILES_CSS').':</td><td>'.TabulizerForm::getTextCtrl('add_files_css',$add_files_css).'</td></tr>' . "\n" .
'<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_ADD_FILES_JS').':</td><td>'.TabulizerForm::getTextCtrl('add_files_js',$add_files_js).'</td></tr>' . "\n" .
'<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_ADD_FILES_JQUERY_SUPPORT').':</td><td>'.TabulizerForm::getCheckboxCtrl('add_jquery_support',1,$add_jquery_support).'</td></tr>' . "\n" .
'<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_ADD_FILES_JQUERYUI_SUPPORT').':</td><td>'.TabulizerForm::getCheckboxCtrl('add_jqueryui_support',1,$add_jqueryui_support).'</td></tr>' . "\n" .
'<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_ADD_FILES_SCROLL_SUPPORT').':</td><td>'.TabulizerForm::getCheckboxCtrl('add_scroll_support',1,$add_scroll_support).'</td></tr>' . "\n" .
'</table></div>'.
TabulizerForm::getHiddenCtrl('add_files','');
return $html;
}
# split
function getSplitHTML($name,$value) {
$html = '';
$split_type = 0;
$split_rows = 0;
$split_groupby = 0;
$split_top_header = 0;
$split_bottom_header = 0;
$split_index = 0;
$split_caption = '';
if (!empty($value)) {
$split_type = $value['type'];
$split_rows = $value['rows'];
$split_groupby = $value['groupby'];
if (!empty($value['top_header'])) $split_top_header = $value['top_header'];
if (!empty($value['bottom_header'])) $split_bottom_header = $value['bottom_header'];
if (!empty($value['index'])) $split_index = $value['index'];
if (!empty($value['caption'])) $split_caption = $value['caption'];
}
$options = array(0=>JText::_('COM_TABULIZER_NONE'),SPLIT_MULTIPART=>JText::_('COM_TABULIZER_SPLIT_MULTIPART'),SPLIT_MULTIPAGE=>JText::_('COM_TABULIZER_SPLIT_MULTIPAGE'),SPLIT_HIDE=>JText::_('COM_TABULIZER_SPLIT_HIDE'));
$html .= '<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_SPLIT_TYPE').':</td><td>'.TabulizerForm::getSelectCtrl($name.'_type',$split_type,$options,array('onchange'=>'updateSplitType(this)')).'</td></tr>'."\n";
$options = array(0=>JText::_('COM_TABULIZER_NONE'));
for ($i=1;$i<=SPLIT_MAX_ROWS_SELECTION;) {
$options[$i] = $i;
if ($i<10) $i=$i+1;
else if ($i<30) $i=$i+5;
else $i = $i + 10;
}
$options2 = array(0=>JText::_('COM_TABULIZER_NONE'));
for ($i=1;$i<=SPLIT_MAX_GROUPBY_SELECTION;$i++) {
$options2[$i] = $i;
}
$html .= '<tr class="tr_hi"><td class="fieldlabel2">'.
JText::_('COM_TABULIZER_SPLIT_ROWS_TYPE').':</td><td>'.
'<table class="fieldtable1">
<tr><td class="fieldlabel2">'.JText::_('COM_TABULIZER_SPLIT_ROWS_HEADER').':</td><td>'.TabulizerForm::getSelectCtrl($name.'_rows',$split_rows,$options,array('onchange'=>'updateSplitBy(\'rows\')')).'</td></tr>
<tr><td class="fieldlabel2">'.JText::_('COM_TABULIZER_SPLIT_GROUPBY_HEADER').':</td><td>'.TabulizerForm::getSelectCtrl($name.'_groupby',$split_groupby,$options2,array('onchange'=>'updateSplitBy(\'groupby\')')).'</td></tr>
</table>'.
'</td></tr>'."\n";
$html .= '<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_SPLIT_TOP_HEADER').':</td><td>'.TabulizerForm::getSelectCtrl($name.'_top_header',$split_top_header,$options).'</td></tr>'."\n";
$html .= '<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_SPLIT_BOTTOM_HEADER').':</td><td>'.TabulizerForm::getSelectCtrl($name.'_bottom_header',$split_bottom_header,$options).'</td></tr>'."\n";
$tr_split_index_class = ($split_type == SPLIT_MULTIPAGE)?'hidden_tr':'tr_hi';
$html .= '<tr class="'.$tr_split_index_class.'" id="tr_split_index"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_SPLIT_INDEX').':</td><td>'.TabulizerForm::getCheckboxCtrl($name.'_index', '1', $split_index).' '.JText::_('COM_TABULIZER_YES').'</td></tr>'."\n";
$html .= '<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_SPLIT_CAPTION').':</td><td>'.TabulizerForm::getTextCtrl($name.'_caption', $split_caption).' <span class="tip">'.JText::_('COM_TABULIZER_SPLIT_CAPTION_BASE64_ENCODE_TIP').$this->getEncodingMenu($name.'_caption').'</span></td></tr>'."\n";
$html = '<div class="data_format_params"><table>' . $html . '</table></div>';
$html .= TabulizerForm::getHiddenCtrl($name, '');
return $html;
}
# sort
function getSortHTML($name,$value) {
$html = '';
$enabled = 0;
$orderby_id = 0;
$orderby_direction = 'asc';
$header_size = 1;
$footer_size = 0;
$header_top = 'auto';
$exclude = '';
$datatypes = '';
if (!empty($value)) {
if (!empty($value['enabled'])) $enabled = 1;
$orderby_id = $value['orderby']['id'];
$orderby_direction = $value['orderby']['direction'];
if (!empty($value['header_size'])) $header_size = $value['header_size'];
if (!empty($value['header_top'])) $header_top = $value['header_top'];
if (!empty($value['footer_size'])) $footer_size = $value['footer_size'];
if (!empty($value['exclude_str'])) $exclude = str_replace(' ','',$value['exclude_str']);
if (!empty($value['datatypes_str'])) $datatypes = str_replace(' ','',$value['datatypes_str']);
}
$html .= '<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_SORT_ENABLED').':</td><td>'.TabulizerForm::getCheckboxCtrl($name .'_enabled','1',$enabled).' '.JText::_('COM_TABULIZER_YES').'</td></tr>'."\n";
$options = array();
$options[-1] = JText::_('COM_TABULIZER_SORT_NO_INITIAL_ORDER');
for ($i=1;$i<=SORT_MAX_ORDERBYID_SELECTION;$i++) $options[$i] = $i;
$html .= '<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_SORT_ORDERBYID').':</td><td>'.TabulizerForm::getSelectCtrl($name.'_id',$orderby_id,$options).'</td></tr>'."\n";
$options = array('asc'=>JText::_('COM_TABULIZER_SORT_ASC'),'desc'=>JText::_('COM_TABULIZER_SORT_DESC'));
$html .= '<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_SORT_ORDERBYDIRECTION').':</td><td>'.TabulizerForm::getSelectCtrl($name.'_direction',$orderby_direction,$options).'</td></tr>'."\n";
$options = array();
for ($i=1;$i<=SORT_MAX_DATATABLES_HEADERS;$i++) $options[$i] = $i;
$html .= '<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_SORT_HEADER_SIZE').':</td><td>'.TabulizerForm::getSelectCtrl($name.'_header_size',$header_size,$options).'</td></tr>'."\n";
$options = array('auto'=>JText::_('COM_TABULIZER_SORT_HEADER_TOP_AUTO'),'true'=>JText::_('COM_TABULIZER_SORT_HEADER_TOP_TRUE'),'false'=>JText::_('COM_TABULIZER_SORT_HEADER_TOP_FALSE'));
$html .= '<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_SORT_HEADER_TOP').':</td><td>'.TabulizerForm::getSelectCtrl($name.'_header_top',$header_top,$options).'</td></tr>'."\n";
$options = array();
for ($i=0;$i<=SORT_MAX_DATATABLES_HEADERS;$i++) $options[$i] = $i;
$html .= '<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_SORT_FOOTER_SIZE').':</td><td>'.TabulizerForm::getSelectCtrl($name.'_footer_size',$footer_size,$options).'</td></tr>'."\n";
$html .= '<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_SORT_EXCLUDE_COLUMNS').':</td><td>'.TabulizerForm::getTextCtrl($name.'_exclude', $exclude).'</td></tr>'."\n";
$html .= '<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_SORT_DATATYPES_COLUMNS').':</td><td>'.TabulizerForm::getTextCtrl($name.'_datatypes', $datatypes).'</td></tr>'."\n";
$html = '<div class="data_format_params"><table>' . $html . '</table></div>';
$html .= TabulizerForm::getHiddenCtrl($name, '');
return $html;
}
# pagination
function getPaginationHTML($name,$value) {
$html = '';
$enabled = 0;
$type = 0;
$position_vertical = 'bottom';
$position_horizontal = 'right';
$header_size = 0;
$footer_size = 0;
$limit = 10;
$limitchange = array('vertical'=>'top','horizontal'=>'left');
$info = array('vertical'=>'bottom','horizontal'=>'left');
if (!empty($value)) {
$enabled = $value['enabled'];
if ($enabled) {
if (!empty($value['limit'])) $limit = $value['limit'];
if (empty($value['limitchange'])) $limitchange = 0;
if (empty($value['info'])) $info = 0;
if (!empty($value['type'])) $type = $value['type'];
if (!empty($value['position'])) {
if (!empty($value['position']['vertical'])) $position_vertical = $value['position']['vertical'];
if (!empty($value['position']['horizontal'])) $position_horizontal = $value['position']['horizontal'];
}
if (!empty($value['header_size'])) $header_size = $value['header_size'];
if (!empty($value['footer_size'])) $footer_size = $value['footer_size'];
} else {
$type = 0;
}
}
// type
$options = array(0=>JText::_('COM_TABULIZER_NONE'),'basic'=>JText::_('COM_TABULIZER_PAGINATION_TYPE_BASIC'),'full'=>JText::_('COM_TABULIZER_PAGINATION_TYPE_FULL'));
$html .= '<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_PAGINATION_TYPE').':</td><td>'.TabulizerForm::getSelectCtrl($name.'_type',$type,$options).'</td></tr>'."\n";
// position
$position_value = $position_vertical.'-'.$position_horizontal;
$options = array('top-left'=>JText::_('COM_TABULIZER_POSITION_TOP_LEFT'),'top-right'=>JText::_('COM_TABULIZER_POSITION_TOP_RIGHT'),
'bottom-left'=>JText::_('COM_TABULIZER_POSITION_BOTTOM_LEFT'),'bottom-right'=>JText::_('COM_TABULIZER_POSITION_BOTTOM_RIGHT'));
$html .= '<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_PAGINATION_POSITION').':</td><td>'.TabulizerForm::getSelectCtrl($name.'_position',$position_value,$options).'</td></tr>'."\n";
// limit (rows/table)
$user_preferences = TabulizerInfo::getUserPreferences($error_msg);
if ($user_preferences) {
$menu_length_values = explode(',',$user_preferences['pagination_length_menu']);
} else {
$menu_length_values = explode(',',PAGINATION_LENGTH_MENU);
}
$options = array(0=>JText::_('COM_TABULIZER_DEFAULT'));
foreach ($menu_length_values as $i) {
$options[$i] = $i;
}
$options[-1] = JText::_('COM_TABULIZER_ALL');
$html .= '<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_PAGINATION_LIMIT').':</td><td>'.TabulizerForm::getSelectCtrl($name.'_limit',$limit,$options).'</td></tr>'."\n";
// change limit
$position_value = empty($limitchange)?0:$limitchange['vertical'].'-'.$limitchange['horizontal'];
$options = array(0=>JText::_('COM_TABULIZER_NONE'),'top-left'=>JText::_('COM_TABULIZER_POSITION_TOP_LEFT'),'top-right'=>JText::_('COM_TABULIZER_POSITION_TOP_RIGHT'),
'bottom-left'=>JText::_('COM_TABULIZER_POSITION_BOTTOM_LEFT'),'bottom-right'=>JText::_('COM_TABULIZER_POSITION_BOTTOM_RIGHT'));
$html .= '<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_PAGINATION_LIMITCHANGE').':</td><td>'.TabulizerForm::getSelectCtrl($name.'_limitchange',$position_value,$options).'</td></tr>'."\n";
// info (page # or total)
$position_value = empty($info)?0:$info['vertical'].'-'.$info['horizontal'];
$options = array(0=>JText::_('COM_TABULIZER_NONE'),'top-left'=>JText::_('COM_TABULIZER_POSITION_TOP_LEFT'),'top-right'=>JText::_('COM_TABULIZER_POSITION_TOP_RIGHT'),
'bottom-left'=>JText::_('COM_TABULIZER_POSITION_BOTTOM_LEFT'),'bottom-right'=>JText::_('COM_TABULIZER_POSITION_BOTTOM_RIGHT'));
$html .= '<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_PAGINATION_INFO').':</td><td>'.TabulizerForm::getSelectCtrl($name.'_info',$position_value,$options).'</td></tr>'."\n";
// header size
$options = array();
for ($i=0;$i<=PAGINATION_MAX_DATATABLES_HEADERS;$i++) $options[$i] = $i;
$html .= '<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_PAGINATION_HEADER_SIZE').':</td><td>'.TabulizerForm::getSelectCtrl($name.'_header_size',$header_size,$options).'</td></tr>'."\n";
$html .= '<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_PAGINATION_FOOTER_SIZE').':</td><td>'.TabulizerForm::getSelectCtrl($name.'_footer_size',$footer_size,$options).'</td></tr>'."\n";
// combine all together
$html = '<div class="data_format_params"><table>' . $html . '</table></div>';
$html .= TabulizerForm::getHiddenCtrl($name, '');
return $html;
}
# scroll
function getScrollHTML($name,$value) {
$xaxis_scroll = $yaxis_scroll = '';
$xaxis_enabled = $yaxis_enabled = false;
if (!empty($value)) {
if (!empty($value['xaxis'])) { $xaxis_scroll = $value['xaxis']; $xaxis_enabled = true; }
if (!empty($value['yaxis'])) { $yaxis_scroll = $value['yaxis']; $yaxis_enabled = true; }
}
$html = '<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_FILTER_ENABLED').':</td><td>'.TabulizerForm::getCheckboxCtrl($name .'_yaxis_enabled','1',$yaxis_enabled).' '.JText::_('COM_TABULIZER_YES').'</td></tr>'."\n";
$html .= '<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_SCROLL_SIZE').':</td><td>'.TabulizerForm::getTextCtrl($name.'_yaxis',$yaxis_scroll).'</td></tr>'."\n";
$html .= '<tr class="tr_hi"><td colspan="2"><span class="tip2">'.JText::_('COM_TABULIZER_SCROLL_YAXIS_TIP').'</span></td></tr>';
$vertical_scroll_html = '<table class="fieldtable1">' . $html. '</table>';
$html = '<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_FILTER_ENABLED').':</td><td>'.TabulizerForm::getCheckboxCtrl($name .'_xaxis_enabled','1',$xaxis_enabled).' '.JText::_('COM_TABULIZER_YES').'</td></tr>'."\n";
$html .= '<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_SCROLL_SIZE').':</td><td>'.TabulizerForm::getTextCtrl($name.'_xaxis',$xaxis_scroll).'</td></tr>'."\n";
$html .= '<tr class="tr_hi"><td colspan="2"><span class="tip2">'.sprintf(JText::_('COM_TABULIZER_SCROLL_XAXIS_TIP'),JText::_('COM_TABULIZER_RESPONSIVE_PATTERN_1')).'</span></td></tr>';
$horizontal_scroll_html = '<table class="fieldtable1">' . $html. '</table>';
$html = '<div class="data_format_params"><table><tr class="tr_hi"><td class="fieldlabel3">' . JText::_('COM_TABULIZER_SCROLL_YAXIS') . '</td><td class="fieldlabel3">' . JText::_('COM_TABULIZER_SCROLL_XAXIS') . '</td></tr><tr><td>' . $vertical_scroll_html . '</td><td>' . $horizontal_scroll_html . '</td></tr></table></div>';
$html .= TabulizerForm::getHiddenCtrl($name, '');
return $html;
}
# filter
function getFilterHTML($filter_name,$filter_value,$column_filter_name,$column_filter_value) {
$options_0 = array();
$options_1 = array();
for ($i=0;$i<=FILTER_MAX_DATATABLES_HEADERS;$i++) {
$options_0[$i] = $i;
if ($i>0) $options_1[$i] = $i;
}
// table wide filtering (all columns)
$html = '';
$name = $filter_name;
$value = $filter_value;
$enabled = 0;
$header_size = 1;
$footer_size = 0;
$position_vertical = 'top';
$position_horizontal = 'right';
$highlight = 0;
if (!empty($value)) {
$enabled = $value['enabled'];
if (!empty($value['header_size'])) $header_size = $value['header_size'];
if (!empty($value['footer_size'])) $footer_size = $value['footer_size'];
if (!empty($value['position'])) {
if (!empty($value['position']['vertical'])) $position_vertical = $value['position']['vertical'];
if (!empty($value['position']['horizontal'])) $position_horizontal = $value['position']['horizontal'];
}
if (!empty($value['highlight'])) $highlight = $value['highlight'];
}
$position_value = $position_vertical.'-'.$position_horizontal;
$position_options = array('top-left'=>JText::_('COM_TABULIZER_POSITION_TOP_LEFT'),'top-right'=>JText::_('COM_TABULIZER_POSITION_TOP_RIGHT'),
'bottom-left'=>JText::_('COM_TABULIZER_POSITION_BOTTOM_LEFT'),'bottom-right'=>JText::_('COM_TABULIZER_POSITION_BOTTOM_RIGHT'));
$html .= '<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_FILTER_ENABLED').':</td><td>'.TabulizerForm::getCheckboxCtrl($name .'_enabled','1',$enabled).' '.JText::_('COM_TABULIZER_YES').'</td></tr>'."\n";
$html .= '<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_FILTER_POSITION').':</td><td>'.TabulizerForm::getSelectCtrl($name.'_position',$position_value,$position_options).'</td></tr>'."\n";
$html .= '<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_FILTER_HIGHLIGHT').':</td><td>'.TabulizerForm::getCheckboxCtrl($name .'_highlight','1',$highlight).'</td></tr>'."\n";
$html .= '<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_FILTER_HEADER_SIZE').':</td><td>'.TabulizerForm::getSelectCtrl($name.'_header_size',$header_size,$options_0).'</td></tr>'."\n";
$html .= '<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_FILTER_FOOTER_SIZE').':</td><td>'.TabulizerForm::getSelectCtrl($name.'_footer_size',$footer_size,$options_0).'</td></tr>'."\n";
$filter_html = '<table class="fieldtable1">' . $html. '</table>';
// specific column filtering
$html = '';
$name = $column_filter_name;
$value = $column_filter_value;
$enabled = 0;
$headerrow = 1;
$header_size = 1;
$footer_size = 0;
$columns = '';
if (!empty($value)) {
$enabled = $value['enabled'];
if (!empty($value['headerrow'])) $headerrow = $value['headerrow'];
if (!empty($value['header_size'])) $header_size = $value['header_size'];
if (!empty($value['footer_size'])) $footer_size = $value['footer_size'];
if (!empty($value['columns'])) {
$columns = $value['columns_str'];
}
}
$html .= '<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_FILTER_ENABLED').':</td><td>'.TabulizerForm::getCheckboxCtrl($name .'_enabled','1',$enabled).' '.JText::_('COM_TABULIZER_YES').'</td></tr>'."\n";
$html .= '<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_FILTER_HEADER_ROW').':</td><td>'.TabulizerForm::getSelectCtrl($name.'_headerrow',$headerrow,$options_1).'</td></tr>'."\n";
$html .= '<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_FILTER_COLUMN_LIST').':</td><td>'.TabulizerForm::getTextCtrl($name.'_columns',$columns).'</td></tr>'."\n";
$html .= '<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_FILTER_HEADER_SIZE').':</td><td>'.TabulizerForm::getSelectCtrl($name.'_header_size',$header_size,$options_1).'</td></tr>'."\n";
$html .= '<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_FILTER_FOOTER_SIZE').':</td><td>'.TabulizerForm::getSelectCtrl($name.'_footer_size',$footer_size,$options_0).'</td></tr>'."\n";
$column_filter_html = '<table class="fieldtable1">' . $html. '</table>';
$html = '<div class="data_format_params"><table><tr class="tr_hi"><td class="fieldlabel3">' . JText::_('COM_TABULIZER_FILTER_ALL_TABLE') . '</td><td class="fieldlabel3">' . JText::_('COM_TABULIZER_FILTER_SPECIFIC_COLUMNS') . '</td></tr><tr><td>' . $filter_html . '</td><td>' . $column_filter_html . '</td></tr></table></div>';
$html .= TabulizerForm::getHiddenCtrl($filter_name, '');
$html .= TabulizerForm::getHiddenCtrl($column_filter_name, '');
return $html;
}
# theme
function getThemeHTML($name,$value) {
$options = array(0=>JText::_('COM_TABULIZER_NONE'));
$dir = TabulizerPath::getDirPath('themes');
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
if (is_file($dir . $file)) {
if (preg_match('/css$/i',$file)) {
$parts = pathinfo($file);
$options[$file] = ucwords(preg_replace('/a-z/i',' ',$parts['filename']));
}
}
}
closedir($dh);
}
}
$options['themeroller'] = 'Themeroller - jQuery UI';
$html = TabulizerForm::getSelectCtrl($name,$value,$options);
return $html;
}
# responsive
function getResponsiveHTML($name,$value) {
$html = '';
$pattern_id = 0;
$pattern_params = null;
$params = array(RESPONSIVE_PATTERN_1 => array('width'=>'','height'=>'','nicescroll'=>0,'zoom'=>0,'touch'=>0,'cursor'=>array('display'=>1,'width'=>0,'color'=>'')),
RESPONSIVE_PATTERN_3 => array('priorities'=>array(1=>'essential',2=>'essential',3=>'optional',4=>'optional',5=>'optional')),
RESPONSIVE_PATTERN_4 => array('expand'=>1, 'hides'=>array(2=>'phone',3=>'phone',4=>'tablet',5=>'tablet'))
);
if (!empty($value)) {
$pattern_id = $value['pattern'];
if (!empty($value['params'])) $pattern_params = $value['params'];
}
$pattern_1_div_class = $pattern_3_div_class = $pattern_4_div_class = 'hidden_span';
switch ($pattern_id) {
case RESPONSIVE_PATTERN_1: $pattern_1_div_class = ''; $params[$pattern_id] = $pattern_params; break;
case RESPONSIVE_PATTERN_3: $pattern_3_div_class = ''; $params[$pattern_id] = $pattern_params; break;
case RESPONSIVE_PATTERN_4: $pattern_4_div_class = ''; $params[$pattern_id] = $pattern_params; break;
}
// pattern #1 params
$pattern_scrollbars_params = '';
$pattern_scrollbars_params .= '<tr class="tr_hi"><td class="fieldlabel3">'.JText::_('COM_TABULIZER_RESPONSIVE_SCROLLBAR_WIDTH').':</td><td>'.TabulizerForm::getTextCtrl($name.'_width',$params[RESPONSIVE_PATTERN_1]['width'],array('class'=>'short_param')).' <span class="tip">'.JText::_('COM_TABULIZER_OPTIONAL_INPUT_FIELD').'</span></td></tr>';
$pattern_scrollbars_params .= '<tr class="tr_hi"><td class="fieldlabel3">'.JText::_('COM_TABULIZER_RESPONSIVE_SCROLLBAR_HEIGHT').':</td><td>'.TabulizerForm::getTextCtrl($name.'_height',$params[RESPONSIVE_PATTERN_1]['height'],array('class'=>'short_param')).' <span class="tip">'.JText::_('COM_TABULIZER_OPTIONAL_INPUT_FIELD').'</span></td></tr>';
$nicescroll_enabled = empty($params[RESPONSIVE_PATTERN_1]['nicescroll'])?0:1;
if ($nicescroll_enabled) {
$nicescroll_tr_class = 'tr_hi';
} else {
$nicescroll_tr_class = 'hidden';
}
$cursor_width_options = array(0=>JText::_('COM_TABULIZER_DEFAULT'));
for ($i=1;$i<15;$i++) $cursor_width_options[$i] = "{$i}px";
$cursor_options = '<table class="fieldtable1">'.
'<tr><td>'.JText::_('COM_TABULIZER_RESPONSIVE_SCROLLBAR_CURSOR_DISPLAY').':</td><td>'.TabulizerForm::getCheckboxCtrl($name.'_cursor_display','1',$params[RESPONSIVE_PATTERN_1]['cursor']['display']).' '.JText::_('COM_TABULIZER_YES').'</td></tr>' .
'<tr><td>'.JText::_('COM_TABULIZER_RESPONSIVE_SCROLLBAR_CURSOR_WIDTH').':</td><td>'. TabulizerForm::getSelectCtrl($name.'_cursor_width',$params[RESPONSIVE_PATTERN_1]['cursor']['width'],$cursor_width_options).'</td></tr>' .
'<tr><td>'.JText::_('COM_TABULIZER_RESPONSIVE_SCROLLBAR_CURSOR_COLOR').':</td><td>'.TabulizerForm::getTextCtrl($name.'_cursor_color',$params[RESPONSIVE_PATTERN_1]['cursor']['color'],array('class'=>'short_param')).' <span class="tip">'.JText::_('COM_TABULIZER_OPTIONAL_INPUT_FIELD').'</span></td></tr>' .
'</table>';
$nicescroll_params = '
<table id="responsive_1_nicescroll_tbl">
<tr id="ncflg" class="tr_hi"><td>'.JText::_('COM_TABULIZER_RESPONSIVE_SCROLLBAR_NICESCROLL_ENABLED').'</td><td>'.TabulizerForm::getCheckboxCtrl($name.'_nicescroll','1',$params[RESPONSIVE_PATTERN_1]['nicescroll'],array('onclick'=>'showHideNicescrollParams(this)')).' '.JText::_('COM_TABULIZER_YES').'</td></tr>
<tr id="ncp_1" class="'.$nicescroll_tr_class.'"><td>'.JText::_('COM_TABULIZER_RESPONSIVE_SCROLLBAR_ZOOM').':</td><td>'.TabulizerForm::getCheckboxCtrl($name.'_zoom','1',$params[RESPONSIVE_PATTERN_1]['zoom']).' '.JText::_('COM_TABULIZER_YES').'</td></tr>
<tr id="ncp_2" class="'.$nicescroll_tr_class.'"><td>'.JText::_('COM_TABULIZER_RESPONSIVE_SCROLLBAR_TOUCH').':</td><td>'.TabulizerForm::getCheckboxCtrl($name.'_touch','1',$params[RESPONSIVE_PATTERN_1]['touch']).' '.JText::_('COM_TABULIZER_YES').'</td></tr>
<tr id="ncp_3" class="'.$nicescroll_tr_class.'"><td>'.JText::_('COM_TABULIZER_RESPONSIVE_SCROLLBAR_CURSOR').':</td><td>'.$cursor_options.'</td></tr>
</table>';
$pattern_scrollbars_params .= '<tr class="tr_hi"><td class="fieldlabel3">'.JText::_('COM_TABULIZER_RESPONSIVE_SCROLLBAR_NICESCROLL').':</td><td>'.$nicescroll_params.'</td></tr>';
$pattern_scrollbars_params = '<table width="100%">'.$pattern_scrollbars_params.'</table>';
$pattern_scrollbars_params_html = '<span id="responsive_'.RESPONSIVE_PATTERN_1.'_params_div" class="'.$pattern_1_div_class.'">
<table width="100%">' .
'<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_RESPONSIVE_PARAMS_1').':</td><td>'.$pattern_scrollbars_params.'</td></tr>' .
'</table>
</span>';
// pattern #3 params
$options = array(0=>JText::_('COM_TABULIZER_NONE'), 'persist'=>JText::_('COM_TABULIZER_RESPONSIVE_PRIORITY_PERSIST'), 'essential'=>JText::_('COM_TABULIZER_RESPONSIVE_PRIORITY_ESSENTIAL'), 'optional'=>JText::_('COM_TABULIZER_RESPONSIVE_PRIORITY_OPTIONAL'),'invisible_column'=>JText::_('COM_TABULIZER_RESPONSIVE_PRIORITY_INVISIBLE'));
$top_row = $bottom_row = '';
for ($i=1;$i<=RESPONSIVE_PATTERN_PARAMS_MAX_COLUMNS;$i++) {
$column_value = (isset($params[RESPONSIVE_PATTERN_3]['priorities'][$i]))?$params[RESPONSIVE_PATTERN_3]['priorities'][$i]:0;
$column_selection = TabulizerForm::getSelectCtrl($name.'_header_selection_params_'.$i,$column_value,$options);
$top_row .= '<td>'.sprintf(JText::_('COM_TABULIZER_RESPONSIVE_COLUMN_PRIORITY'),$i).'</td>';
$bottom_row .= '<td>'.$column_selection.'</td>';
}
$pattern_header_selection_params = '<table><tr>'.$top_row.'</tr><tr>'.$bottom_row.'</tr></table>';
$pattern_header_selection_params_html = '<span id="responsive_'.RESPONSIVE_PATTERN_3.'_params_div" class="'.$pattern_3_div_class.'">
<table width="100%">' .
'<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_RESPONSIVE_PARAMS_3').':</td><td>'.$pattern_header_selection_params.'</td></tr>' .
'</table>
</span>';
// pattern #4 params
$options = array(0=>JText::_('COM_TABULIZER_NONE'), 'expand'=>JText::_('COM_TABULIZER_RESPONSIVE_PRIORITY_EXPAND'), 'phone'=>JText::_('COM_TABULIZER_RESPONSIVE_PRIORITY_PHONE'), 'tablet'=>JText::_('COM_TABULIZER_RESPONSIVE_PRIORITY_TABLET'),'all'=>JText::_('COM_TABULIZER_RESPONSIVE_PRIORITY_ALL'));
$top_row = $bottom_row = '';
for ($i=1;$i<=RESPONSIVE_PATTERN_PARAMS_MAX_COLUMNS;$i++) {
if (!empty($params[RESPONSIVE_PATTERN_4]['expand'])&&($params[RESPONSIVE_PATTERN_4]['expand'] == $i)) $column_value = 'expand';
else $column_value = (isset($params[RESPONSIVE_PATTERN_4]['hides'][$i]))?$params[RESPONSIVE_PATTERN_4]['hides'][$i]:0;
$column_selection = TabulizerForm::getSelectCtrl($name.'_expand_params_'.$i,$column_value,$options);
$top_row .= '<td>'.sprintf(JText::_('COM_TABULIZER_RESPONSIVE_COLUMN_PRIORITY'),$i).'</td>';
$bottom_row .= '<td>'.$column_selection.'</td>';
}
$pattern_expand_params = '<table><tr>'.$top_row.'</tr><tr>'.$bottom_row.'</tr></table>';
$pattern_expand_params_html = '<span id="responsive_'.RESPONSIVE_PATTERN_4.'_params_div" class="'.$pattern_4_div_class.'">
<table width="100%">' .
'<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_RESPONSIVE_PARAMS_4').':</td><td>'.$pattern_expand_params.'</td></tr>' .
'</table>
</span>';
$options = array(0=>JText::_('COM_TABULIZER_NONE'),
RESPONSIVE_PATTERN_1 => JText::_('COM_TABULIZER_RESPONSIVE_PATTERN_1'),
RESPONSIVE_PATTERN_2 => JText::_('COM_TABULIZER_RESPONSIVE_PATTERN_2'),
RESPONSIVE_PATTERN_3 => JText::_('COM_TABULIZER_RESPONSIVE_PATTERN_3'),
RESPONSIVE_PATTERN_4 => JText::_('COM_TABULIZER_RESPONSIVE_PATTERN_4'),
RESPONSIVE_PATTERN_5 => JText::_('COM_TABULIZER_RESPONSIVE_PATTERN_5'),
RESPONSIVE_PATTERN_6 => JText::_('COM_TABULIZER_RESPONSIVE_PATTERN_6'));
$attributes = array('onchange'=>'updateResponsivePattern(this)');
$html .= '<div class="data_type_params">'.TabulizerForm::getSelectCtrl($name.'_patternid',$pattern_id,$options,$attributes) . '<br/><br style="line-height:15px" />' .
$pattern_scrollbars_params_html .
$pattern_header_selection_params_html .
$pattern_expand_params_html . '</div>';
$html .= TabulizerForm::getHiddenCtrl($name, '');
$responsive_wrapper_tip_class = empty($pattern_id)?'hidden_span':'';
$responsive_wrapper_tip_html = '<span class="'.$responsive_wrapper_tip_class.'" id="responsive_wrapper_tip"><span style="display:inline-block;padding-top:5px">'.JText::_('COM_TABULIZER_RESPONSIVE_WRAPPER_TIP').'<br/><a href="javascript:addResponsiveWrapper()">'.JText::_('COM_TABULIZER_RESPONSIVE_WRAPPER_ADD').'</a></span></span>';
$html .= $responsive_wrapper_tip_html;
return $html;
}
function getExportTableHTML($name,$value) {
$html = '';
$enabled = 0;
$view_value = 0;
$download_value = 1;
$email_value = 1;
$strip_tags_value = 'all';
if (!empty($value)) {
$enabled = $value['enabled'];
$view_value = $value['view'];
$download_value = $value['download'];
$email_value = $value['email'];
$strip_tags_value = $value['strip_tags'];
}
$strip_tags_options = array( 'none' => JText::_('COM_TABULIZER_EXPORT_TABLE_STRIP_TAGS_NONE'), 'all' => JText::_('COM_TABULIZER_EXPORT_TABLE_STRIP_TAGS_ALL'));
$html .= '<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_EXPORT_TABLE_ENABLED').':</td><td>'.TabulizerForm::getCheckboxCtrl($name .'_enabled','1',$enabled).' '.JText::_('COM_TABULIZER_YES').'</td></tr>'."\n";
//$html .= '<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_EXPORT_TABLE_VIEW').':</td><td>'.TabulizerForm::getCheckboxCtrl($name .'_view','1',$view_value).'</td></tr>'."\n";
$html .= '<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_EXPORT_TABLE_DOWNLOAD').':</td><td>'.TabulizerForm::getCheckboxCtrl($name .'_download','1',$download_value).'</td></tr>'."\n";
$html .= '<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_EXPORT_TABLE_EMAIL').':</td><td>'.TabulizerForm::getCheckboxCtrl($name .'_email','1',$email_value).'</td></tr>'."\n";
$html .= '<tr class="tr_hi"><td class="fieldlabel2">'.JText::_('COM_TABULIZER_EXPORT_TABLE_STRIP_TAGS').':</td><td>'.TabulizerForm::getSelectCtrl($name.'_strip_tags',$strip_tags_value,$strip_tags_options).'</td></tr>'."\n";
$html = '<div class="data_format_params"><table>' . $html . '</table></div>';
$html .= TabulizerForm::getHiddenCtrl($name, '');
return $html;
}
function getSelectOptions($options, $selected_value) {
$options_html = '';
foreach ($options as $value => $label) {
if ($value == $selected_value) {
$options_html .= '<option value="'.$value.'" selected="selected">'.$label.'</option>';
} else {
$options_html .= '<option value="'.$value.'">'.$label.'</option>';
}
}
return $options_html;
}
function getEncodingMenu($name) {
$html = '<span class="base64_tools_menu">[<a href="javascript:encode_base64_value(\''.$name.'\');">'.JText::_('COM_TABULIZER_BASE64_TOOLS_ENCODE_BTN').'</a>|<a href="javascript:decode_base64_value(\''.$name.'\');">'.JText::_('COM_TABULIZER_BASE64_TOOLS_DECODE_BTN').'</a>]</span>';
return $html;
}
function getBase64Tools() {
$document = JFactory::getDocument();
$js_url = TabulizerPath::getURLPath('base64_tools.js','admin_js'); // JURI::base() . '/components/com_tabulizer/assets/js/base64_tools.js';
$document->addScript($js_url);
$html = '<table><tr><td><a href="javascript:encode_base64();">'.JText::_('COM_TABULIZER_BASE64_TOOLS_ENCODE_BTN').'</a></td><td><input type="text" name="encode_from" id="encode_from" value="" ></td><td> --&gt; </td><td><input type="text" name="encode_to" id="encode_to" value="" ></td></tr>'.
'<tr><td><a href="javascript:decode_base64();">'.JText::_('COM_TABULIZER_BASE64_TOOLS_DECODE_BTN').'</a></td><td><input type="text" name="decode_from" id="decode_from" value="" ></td><td> --&gt; </td><td><input type="text" name="decode_to" id="decode_to" value="" ></td></tr></table>';
return $html;
}
}
?>