199 lines
7.6 KiB
PHP
199 lines
7.6 KiB
PHP
<?php
|
|
/**
|
|
* @package Joomla.Administrator
|
|
* @subpackage com_content
|
|
*
|
|
* @copyright Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
|
|
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
|
*/
|
|
|
|
defined('JPATH_BASE') or die;
|
|
|
|
if(version_compare(JVERSION,'3.0.0','ge')):
|
|
/**
|
|
* Supports a modal article picker.
|
|
*
|
|
* @package Joomla.Administrator
|
|
* @subpackage com_content
|
|
* @since 1.6
|
|
*/
|
|
class JFormFieldModal_Article extends JFormField
|
|
{
|
|
/**
|
|
* The form field type.
|
|
*
|
|
* @var string
|
|
* @since 1.6
|
|
*/
|
|
protected $type = 'Modal_Article';
|
|
|
|
/**
|
|
* Method to get the field input markup.
|
|
*
|
|
* @return string The field input markup.
|
|
* @since 1.6
|
|
*/
|
|
protected function getInput()
|
|
{
|
|
// Load the modal behavior script.
|
|
JHtml::_('behavior.modal', 'a.modal');
|
|
|
|
// Build the script.
|
|
$script = array();
|
|
$script[] = ' function jSelectArticle_'.$this->id.'(id, title, catid, object) {';
|
|
$script[] = ' document.id("'.$this->id.'_id").value = id;';
|
|
$script[] = ' document.id("'.$this->id.'_name").value = title;';
|
|
$script[] = ' SqueezeBox.close();';
|
|
$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_content&view=articles&layout=modal&tmpl=component&function=jSelectArticle_'.$this->id;
|
|
|
|
if (isset($this->element['language']))
|
|
{
|
|
$link .= '&forcedLanguage='.$this->element['language'];
|
|
}
|
|
|
|
$db = JFactory::getDbo();
|
|
$db->setQuery(
|
|
'SELECT title' .
|
|
' FROM #__content' .
|
|
' WHERE id = '.(int) $this->value
|
|
);
|
|
|
|
try
|
|
{
|
|
$title = $db->loadResult();
|
|
}
|
|
catch (RuntimeException $e)
|
|
{
|
|
JError::raiseWarning(500, $e->getMessage());
|
|
}
|
|
|
|
if (empty($title))
|
|
{
|
|
$title = 'Select An Article';//JText::_('COM_CONTENT_SELECT_AN_ARTICLE');
|
|
}
|
|
$title = htmlspecialchars($title, ENT_QUOTES, 'UTF-8');
|
|
|
|
// The current user display field.
|
|
$html[] = '<span class="input-append">';
|
|
$html[] = '<input type="text" class="input-medium" id="'.$this->id.'_name" value="'.$title.'" disabled="disabled" size="35" /><a class="modal btn" title="'.JText::_('COM_CONTENT_CHANGE_ARTICLE').'" href="'.$link.'&'.JSession::getFormToken().'=1" rel="{handler: \'iframe\', size: {x: 800, y: 450}}"><i class="icon-file"></i> '.JText::_('JSELECT').'</a>';
|
|
$html[] = '</span>';
|
|
|
|
// The active article id field.
|
|
if (0 == (int) $this->value)
|
|
{
|
|
$value = '';
|
|
}
|
|
else
|
|
{
|
|
$value = (int) $this->value;
|
|
}
|
|
|
|
// 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);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
else:
|
|
class JFormFieldModal_Article extends JFormField{
|
|
/**
|
|
* The form field type.
|
|
*
|
|
* @var string
|
|
* @since 1.6
|
|
*/
|
|
protected $type = 'Modal_Article';
|
|
|
|
/**
|
|
* Method to get the field input markup.
|
|
*
|
|
* @return string The field input markup.
|
|
* @since 1.6
|
|
*/
|
|
protected function getInput()
|
|
{
|
|
// Load the modal behavior script.
|
|
JHtml::_('behavior.modal', 'a.modal');
|
|
|
|
// Build the script.
|
|
$script = array();
|
|
$script[] = ' function jSelectArticle_'.$this->id.'(id, title, catid, object) {';
|
|
$script[] = ' document.id("'.$this->id.'_id").value = id;';
|
|
$script[] = ' document.id("'.$this->id.'_name").value = title;';
|
|
$script[] = ' SqueezeBox.close();';
|
|
$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_content&view=articles&layout=modal&tmpl=component&function=jSelectArticle_'.$this->id;
|
|
|
|
$db = JFactory::getDBO();
|
|
$db->setQuery(
|
|
'SELECT title' .
|
|
' FROM #__content' .
|
|
' WHERE id = '.(int) $this->value
|
|
);
|
|
$title = $db->loadResult();
|
|
|
|
if ($error = $db->getErrorMsg()) {
|
|
JError::raiseWarning(500, $error);
|
|
}
|
|
|
|
if (empty($title)) {
|
|
$title = 'Select An Article';//JText::_('COM_CONTENT_SELECT_AN_ARTICLE');
|
|
}
|
|
$title = htmlspecialchars($title, ENT_QUOTES, 'UTF-8');
|
|
|
|
// The current user display field.
|
|
$html[] = '<div class="fltlft">';
|
|
$html[] = ' <input type="text" id="'.$this->id.'_name" value="'.$title.'" disabled="disabled" size="35" />';
|
|
$html[] = '</div>';
|
|
|
|
// The user select button.
|
|
$html[] = '<div class="button2-left">';
|
|
$html[] = ' <div class="blank">';
|
|
$html[] = ' <a class="modal" title="'.'Select Article'.'" href="'.$link.'&'.JSession::getFormToken().'=1" rel="{handler: \'iframe\', size: {x: 800, y: 450}}">'.'Select'.'</a>';
|
|
$html[] = ' </div>';
|
|
$html[] = '</div>';
|
|
|
|
// The active article id field.
|
|
if (0 == (int)$this->value) {
|
|
$value = '';
|
|
} else {
|
|
$value = (int)$this->value;
|
|
}
|
|
|
|
// 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);
|
|
}
|
|
}
|
|
|
|
endif;
|