86 lines
2.7 KiB
PHP
86 lines
2.7 KiB
PHP
<?php
|
|
/**
|
|
* @package FrameworkOnFramework
|
|
* @subpackage form
|
|
* @copyright Copyright (C) 2010-2016 Nicholas K. Dionysopoulos / Akeeba Ltd. All rights reserved.
|
|
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
|
*/
|
|
// Protect from unauthorized access
|
|
defined('F0F_INCLUDED') or die;
|
|
|
|
/**
|
|
* Generic field header, with text input (search) filter
|
|
*
|
|
* @package FrameworkOnFramework
|
|
* @since 2.0
|
|
*/
|
|
class F0FFormHeaderFieldsearchable extends F0FFormHeaderField
|
|
{
|
|
/**
|
|
* Get the filter field
|
|
*
|
|
* @return string The HTML
|
|
*/
|
|
protected function getFilter()
|
|
{
|
|
// Initialize some field attributes.
|
|
$size = $this->element['size'] ? ' size="' . (int) $this->element['size'] . '"' : '';
|
|
$maxLength = $this->element['maxlength'] ? ' maxlength="' . (int) $this->element['maxlength'] . '"' : '';
|
|
$filterclass = $this->element['filterclass'] ? ' class="' . (string) $this->element['filterclass'] . '"' : '';
|
|
$placeholder = $this->element['placeholder'] ? $this->element['placeholder'] : $this->getLabel();
|
|
$name = $this->element['searchfieldname'] ? $this->element['searchfieldname'] : $this->name;
|
|
$placeholder = ' placeholder="' . JText::_($placeholder) . '"';
|
|
|
|
if ($this->element['searchfieldname'])
|
|
{
|
|
$model = $this->form->getModel();
|
|
$searchvalue = $model->getState((string) $this->element['searchfieldname']);
|
|
}
|
|
else
|
|
{
|
|
$searchvalue = $this->value;
|
|
}
|
|
|
|
// Initialize JavaScript field attributes.
|
|
if ($this->element['onchange'])
|
|
{
|
|
$onchange = ' onchange="' . (string) $this->element['onchange'] . '"';
|
|
}
|
|
else
|
|
{
|
|
$onchange = ' onchange="document.adminForm.submit();"';
|
|
}
|
|
|
|
return '<input type="text" name="' . $name . '" id="' . $this->id . '"' . ' value="'
|
|
. htmlspecialchars($searchvalue, ENT_COMPAT, 'UTF-8') . '"' . $filterclass . $size . $placeholder . $onchange . $maxLength . '/>';
|
|
}
|
|
|
|
/**
|
|
* Get the buttons HTML code
|
|
*
|
|
* @return string The HTML
|
|
*/
|
|
protected function getButtons()
|
|
{
|
|
$buttonclass = $this->element['buttonclass'] ? (string) $this->element['buttonclass'] : 'btn hasTip hasTooltip';
|
|
$buttonsState = strtolower($this->element['buttons']);
|
|
$show_buttons = !in_array($buttonsState, array('no', 'false', '0'));
|
|
|
|
if (!$show_buttons)
|
|
{
|
|
return '';
|
|
}
|
|
|
|
$html = '';
|
|
|
|
$html .= '<button class="' . $buttonclass . '" onclick="this.form.submit();" title="' . JText::_('JSEARCH_FILTER') . '" >' . "\n";
|
|
$html .= '<i class="icon-search"></i>';
|
|
$html .= '</button>' . "\n";
|
|
$html .= '<button class="' . $buttonclass . '" onclick="document.adminForm.' . $this->id . '.value=\'\';this.form.submit();" title="' . JText::_('JSEARCH_RESET') . '">' . "\n";
|
|
$html .= '<i class="icon-remove"></i>';
|
|
$html .= '</button>' . "\n";
|
|
|
|
return $html;
|
|
}
|
|
}
|