%PDF- %PDF-
| Direktori : /home1/lightco1/www/plugins/system/jsnframework/libraries/joomlashine/form/fields/ |
| Current File : //home1/lightco1/www/plugins/system/jsnframework/libraries/joomlashine/form/fields/messagelist.php |
<?php
/**
* @version $Id$
* @package JSN_Framework
* @author JoomlaShine Team <support@joomlashine.com>
* @copyright Copyright (C) 2012 JoomlaShine.com. All Rights Reserved.
* @license GNU/GPL v2 or later http://www.gnu.org/licenses/gpl-2.0.html
*
* Websites: http://www.joomlashine.com
* Technical Support: Feedback - http://www.joomlashine.com/contact-us/get-support.html
*/
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
/**
* Create messages list.
*
* Below is a sample field declaration for generating message list for
* enable/disable application messages:
*
* <code><field name="messagelist" type="messagelist">
* <option value="CONFIGURATION">JSN_SAMPLE_CONFIGURATION</option>
* <option value="ABOUT">JSN_SAMPLE_ABOUT</option>
* </field></code>
*
* @package JSN_Framework
* @since 1.0.0
*/
class JFormFieldMessageList extends JFormField
{
/**
* The form field type.
*
* @var string
*/
protected $type = 'MessageList';
/**
* Always return null to disable label markup generation.
*
* @return string
*/
protected function getLabel()
{
return '';
}
/**
* Get the messages list markup.
*
* @return string
*/
protected function getInput()
{
// Preset output
$html[] = '
<div class="jsn-page-list">
';
// Add assets
$input = JFactory::getApplication()->input;
if ($input->getInt('ajax') == 1)
{
$html[] = JSNHtmlAsset::loadScript('jsn/message', array('option' => $input->getCmd('option')), true);
}
else
{
JSNHtmlAsset::loadScript('jsn/message', array('option' => $input->getCmd('option')));
}
// Get screen filter
$screen = JFactory::getApplication()->input->getCmd('msg_screen');
// Create screen filter
$screens = $this->getOptions();
array_unshift($screens, JHtml::_('select.option', '', JText::_('JSN_EXTFW_MESSAGE_FILTER_LIST')));
$screens = JHtml::_('select.genericlist', $screens, 'msg_screen', ' ', 'value', 'text', $screen);
// Create refresh button and screen filter
$html[] = '
<div class="jsn-fieldset-filter">
<fieldset>
<div class="pull-left jsn-fieldset-search">
<a class="btn" title="' . JText::_('JSN_EXTFW_MESSAGE_REFRESH_LIST') . '" id="jsn-button-refresh" ajax-request="yes" ajax-target="#jsn-config-form > div" href="javascript:void(0)"><i class="icon-refresh"></i> ' . JText::_('JSN_EXTFW_MESSAGE_REFRESH_LIST') . '</a>
</div>
<div class="pull-right jsn-fieldset-select">
' . $screens . '
</div>
<div class="clearbreak"></div>
</fieldset>
</div>
';
// Get message list
$msgs = JSNUtilsMessage::getList($screen, true);
// Render message list
$html[] = JSNUtilsMessage::showConfig($msgs);
$html[] = '<input type="hidden" name="' . $this->name . '" value="JSN_CONFIG_SKIP_SAVING" /></div>';
return implode($html);
}
/**
* Get the field options for screen list.
*
* @return array
*/
protected function getOptions()
{
// Preset options array
$options = array();
foreach ($this->element->children() as $option)
{
// Only add <option /> elements
if ($option->getName() != 'option')
{
continue;
}
// Create a new option object based on the <option /> element
$tmp = JHtml::_(
'select.option',
(string) $option['value'],
JText::alt(trim((string) $option), preg_replace('/[^a-zA-Z0-9_\-]/', '_', $this->fieldname)),
'value', 'text'
);
// Add the option object to the options array
$options[] = $tmp;
}
reset($options);
return $options;
}
}