?
Path : /home/admin/public_html/old/administrator/components/com_newsfeeds/models/fields/modal/ |
Current File : /home/admin/public_html/old/administrator/components/com_newsfeeds/models/fields/modal/newsfeed.php |
<?php /** * @package Joomla.Administrator * @subpackage com_newsfeeds * * @copyright Copyright (C) 2005 - 2015 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('JPATH_BASE') or die; /** * Supports a modal newsfeeds picker. * * @since 1.6 */ class JFormFieldModal_Newsfeed extends JFormField { /** * The form field type. * * @var string * @since 1.6 */ protected $type = 'Modal_Newsfeed'; /** * Method to get the field input markup. * * @return string The field input markup. * * @since 1.6 */ protected function getInput() { $allowEdit = ((string) $this->element['edit'] == 'true') ? true : false; $allowClear = ((string) $this->element['clear'] != 'false') ? true : false; // Load language JFactory::getLanguage()->load('com_newsfeeds', JPATH_ADMINISTRATOR); // Load the javascript JHtml::_('bootstrap.tooltip'); // Build the script. $script = array(); // Select button script $script[] = ' function jSelectNewsfeed_' . $this->id . '(id, name, object) {'; $script[] = ' document.getElementById("' . $this->id . '_id").value = id;'; $script[] = ' document.getElementById("' . $this->id . '_name").value = name;'; if ($allowEdit) { $script[] = ' jQuery("#' . $this->id . '_edit").removeClass("hidden");'; } if ($allowClear) { $script[] = ' jQuery("#' . $this->id . '_clear").removeClass("hidden");'; } $script[] = ' jQuery("#modalNewsfeed' . $this->id . '").modal("hide");'; if ($this->required) { $script[] = ' document.formvalidator.validate(document.getElementById("' . $this->id . '_id"));'; $script[] = ' document.formvalidator.validate(document.getElementById("' . $this->id . '_name"));'; } $script[] = ' }'; // Clear button script static $scriptClear; if ($allowClear && !$scriptClear) { $scriptClear = true; $script[] = ' function jClearNewsfeed(id) {'; $script[] = ' document.getElementById(id + "_id").value = "";'; $script[] = ' document.getElementById(id + "_name").value = "' . htmlspecialchars(JText::_('COM_NEWSFEEDS_SELECT_A_FEED', true), ENT_COMPAT, 'UTF-8') . '";'; $script[] = ' jQuery("#"+id + "_clear").addClass("hidden");'; $script[] = ' if (document.getElementById(id + "_edit")) {'; $script[] = ' jQuery("#"+id + "_edit").addClass("hidden");'; $script[] = ' }'; $script[] = ' return false;'; $script[] = ' }'; } // Add the script to the document head. JFactory::getDocument()->addScriptDeclaration(implode("\n", $script)); // Setup variables for display. $html = array(); $link = 'index.php?option=com_newsfeeds&view=newsfeeds&layout=modal&tmpl=component&function=jSelectNewsfeed_' . $this->id; if (isset($this->element['language'])) { $link .= '&forcedLanguage=' . $this->element['language']; } // Get the title of the linked chart if ((int) $this->value > 0) { $db = JFactory::getDbo(); $query = $db->getQuery(true) ->select($db->quoteName('name')) ->from($db->quoteName('#__newsfeeds')) ->where($db->quoteName('id') . ' = ' . (int) $this->value); $db->setQuery($query); try { $title = $db->loadResult(); } catch (RuntimeException $e) { JError::raiseWarning(500, $e->getMessage()); } } if (empty($title)) { $title = JText::_('COM_NEWSFEEDS_SELECT_A_FEED'); } $title = htmlspecialchars($title, ENT_QUOTES, 'UTF-8'); // The active newsfeed id field. if (0 == (int) $this->value) { $value = ''; } else { $value = (int) $this->value; } // The current newsfeed display field. $html[] = '<span class="input-append">'; $html[] = '<input type="text" class="input-medium" id="' . $this->id . '_name" value="' . $title . '" disabled="disabled" size="35" />'; $html[] = '<a href="#modalNewsfeed' . $this->id . '" class="btn hasTooltip" role="button" data-toggle="modal"' . ' title="' . JHtml::tooltipText('COM_NEWSFEEDS_CHANGE_FEED_BUTTON') . '">' . '<span class="icon-file"></span> ' . JText::_('JSELECT') . '</a>'; $html[] = JHtml::_( 'bootstrap.renderModal', 'modalNewsfeed' . $this->id, array( 'url' => $link . '&' . JSession::getFormToken() . '=1"', 'title' => JText::_('COM_NEWSFEEDS_CHANGE_FEED_BUTTON'), 'width' => '800px', 'height' => '300px', 'footer' => '<button class="btn" data-dismiss="modal" aria-hidden="true">' . JText::_("JLIB_HTML_BEHAVIOR_CLOSE") . '</button>' ) ); // Edit newsfeed button if ($allowEdit) { $html[] = '<a class="btn hasTooltip' . ($value ? '' : ' hidden') . '" href="index.php?option=com_newsfeeds&layout=modal&tmpl=component&task=newsfeed.edit&id=' . $value . '" target="_blank" title="' . JHtml::tooltipText('COM_NEWSFEEDS_EDIT_NEWSFEED') . '" ><span class="icon-edit"></span>' . JText::_('JACTION_EDIT') . '</a>'; } // Clear newsfeed button if ($allowClear) { $html[] = '<button id="' . $this->id . '_clear" class="btn' . ($value ? '' : ' hidden') . '" onclick="return jClearNewsfeed(\'' . $this->id . '\')"><span class="icon-remove"></span>' . JText::_('JCLEAR') . '</button>'; } $html[] = '</span>'; // class='required' for client side validation $class = ''; if ($this->required) { $class = ' class="required modal-value"'; } $html[] = '<input type="hidden" id="' . $this->id . '_id"' . $class . ' name="' . $this->name . '" value="' . $value . '" />'; return implode("\n", $html); } /** * Method to get the field label markup. * * @return string The field label markup. * * @since 3.4 */ protected function getLabel() { return str_replace($this->id, $this->id . '_id', parent::getLabel()); } }