Spade

Mini Shell

Directory:~$ /home/lmsyaran/www/administrator/components/com_phocacart/models/fields/modal/
Upload File

[Home] [System Details] [Kill Me]
Current File:~$ /home/lmsyaran/www/administrator/components/com_phocacart/models/fields/modal/phocacartcategory.php

<?php
/**
 * @package   Phoca Cart
 * @author    Jan Pavelka - https://www.phoca.cz
 * @copyright Copyright (C) Jan Pavelka https://www.phoca.cz
 * @license   http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 and later
 * @cms       Joomla
 * @copyright Copyright (C) Open Source Matters. All rights reserved.
 * @license   http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
 */

defined('JPATH_BASE') or die;

use Joomla\CMS\Language\LanguageHelper;


class JFormFieldModal_Phocacartcategory extends JFormField
{

	protected $type = 'Modal_Phocacartcategory';


	protected function getInput()
	{
		$allowNew       = ((string) $this->element['new'] ==
'true');
		$allowEdit      = ((string) $this->element['edit'] ==
'true');
		$allowClear     = ((string) $this->element['clear'] !=
'false');
		$allowSelect    = ((string) $this->element['select'] !=
'false');
		$allowPropagate = ((string) $this->element['propagate'] ==
'true');

		$languages = LanguageHelper::getContentLanguages(array(0, 1));

		// Load language
		JFactory::getLanguage()->load('com_phocacart',
JPATH_ADMINISTRATOR);

		// The active category id field.
		$value = (int) $this->value > 0 ? (int) $this->value :
'';

		// Create the modal id.
		$modalId = 'Phocacartcategory_' . $this->id;

		// Add the modal field script to the document head.
		Joomla\CMS\HTML\HTMLHelper::_('jquery.framework');
		Joomla\CMS\HTML\HTMLHelper::_('script',
'system/modal-fields.js', array('version' =>
'auto', 'relative' => true));

		// Script to proxy the select modal function to the modal-fields.js file.
		if ($allowSelect)
		{
			static $scriptSelect = null;

			if (is_null($scriptSelect))
			{
				$scriptSelect = array();
			}

			if (!isset($scriptSelect[$this->id]))
			{
				JFactory::getDocument()->addScriptDeclaration("
				function jSelectPhocacartcategory_" . $this->id . "(id,
title, object) {
					window.processModalSelect('Phocacartcategory', '"
. $this->id . "', id, title, '', object);
				}
				");

				JText::script('JGLOBAL_ASSOCIATIONS_PROPAGATE_FAILED');

				$scriptSelect[$this->id] = true;
			}
		}

		// Setup variables for display.
		$linkCategories =
'index.php?option=com_phocacart&amp;view=phocacartcategories&amp;layout=modal&amp;tmpl=component&amp;'
. JSession::getFormToken() . '=1';
		$linkCategory  =
'index.php?option=com_phocacart&amp;view=phocacartcategory&amp;layout=modal&amp;tmpl=component&amp;'
. JSession::getFormToken() . '=1';
		$modalTitle   = JText::_('COM_PHOCACART_CHANGE_CATEGORY');

		if (isset($this->element['language']))
		{
			$linkCategories .= '&amp;forcedLanguage=' .
$this->element['language'];
			$linkCategory   .= '&amp;forcedLanguage=' .
$this->element['language'];
			$modalTitle     .= ' &#8212; ' .
$this->element['label'];
		}

		$urlSelect = $linkCategories .
'&amp;function=jSelectPhocacartcategory_' . $this->id;
		$urlEdit   = $linkCategory .
'&amp;task=phocacartcategory.edit&amp;id=\' +
document.getElementById("' . $this->id .
'_id").value + \'';
		$urlNew    = $linkCategory .
'&amp;task=phocacartcategory.add';

		if ($value)
		{
			$db    = JFactory::getDbo();
			$query = $db->getQuery(true)
				->select($db->quoteName('title'))
				->from($db->quoteName('#__phocacart_categories'))
				->where($db->quoteName('id') . ' = ' . (int)
$value);
			$db->setQuery($query);

			try
			{
				$title = $db->loadResult();
			}
			catch (RuntimeException $e)
			{
                throw new Exception($e->getMessage(), 500);
			}
		}

		$title = empty($title) ?
JText::_('COM_PHOCACART_SELECT_A_CATEGORY') :
htmlspecialchars($title, ENT_QUOTES, 'UTF-8');

		// The current category display field.
		$html  = '<span class="input-append">';
		$html .= '<input class="input-medium" id="' .
$this->id . '_name" type="text" value="' .
$title . '" disabled="disabled" size="35"
/>';

		// Select category button
		if ($allowSelect)
		{
			$html .= '<a'
				. ' class="btn hasTooltip' . ($value ? '
hidden' : '') . '"'
				. ' id="' . $this->id . '_select"'
				. ' data-toggle="modal"'
				. ' role="button"'
				. ' href="#ModalSelect' . $modalId . '"'
				. ' title="' .
JHtml::tooltipText('COM_PHOCACART_CHANGE_CATEGORY') .
'">'
				. '<span class="icon-file"
aria-hidden="true"></span> ' .
JText::_('JSELECT')
				. '</a>';
		}

		// New category button
		if ($allowNew)
		{
			$html .= '<a'
				. ' class="btn hasTooltip' . ($value ? '
hidden' : '') . '"'
				. ' id="' . $this->id . '_new"'
				. ' data-toggle="modal"'
				. ' role="button"'
				. ' href="#ModalNew' . $modalId . '"'
				. ' title="' .
JHtml::tooltipText('COM_PHOCACART_NEW_CATEGORY') .
'">'
				. '<span class="icon-new"
aria-hidden="true"></span> ' .
JText::_('JACTION_CREATE')
				. '</a>';
		}

		// Edit category button
		if ($allowEdit)
		{
			$html .= '<a'
				. ' class="btn hasTooltip' . ($value ? '' :
' hidden') . '"'
				. ' id="' . $this->id . '_edit"'
				. ' data-toggle="modal"'
				. ' role="button"'
				. ' href="#ModalEdit' . $modalId . '"'
				. ' title="' .
JHtml::tooltipText('COM_PHOCACART_EDIT_CATEGORY') .
'">'
				. '<span class="icon-edit"
aria-hidden="true"></span> ' .
JText::_('JACTION_EDIT')
				. '</a>';
		}

		// Clear category button
		if ($allowClear)
		{
			$html .= '<a'
				. ' class="btn' . ($value ? '' : '
hidden') . '"'
				. ' id="' . $this->id . '_clear"'
				. ' href="#"'
				. ' onclick="window.processModalParent(\'' .
$this->id . '\'); return false;">'
				. '<span class="icon-remove"
aria-hidden="true"></span>' .
JText::_('JCLEAR')
				. '</a>';
		}

		// Propagate category button
		if ($allowPropagate && count($languages) > 2)
		{
			// Strip off language tag at the end
			$tagLength = (int) strlen($this->element['language']);
			$callbackFunctionStem = substr("jSelectPhocacartcategory_" .
$this->id, 0, -$tagLength);

			$html .= '<a'
			. ' class="btn hasTooltip' . ($value ? '' :
' hidden') . '"'
			. ' id="' . $this->id . '_propagate"'
			. ' href="#"'
			. ' title="' .
JHtml::tooltipText('JGLOBAL_ASSOCIATIONS_PROPAGATE_TIP') .
'"'
			. ' onclick="Joomla.propagateAssociation(\'' .
$this->id . '\', \'' . $callbackFunctionStem .
'\');">'
			. '<span class="icon-refresh"
aria-hidden="true"></span>' .
JText::_('JGLOBAL_ASSOCIATIONS_PROPAGATE_BUTTON')
			. '</a>';
		}

		$html .= '</span>';

		// Select category modal
		if ($allowSelect)
		{
			$html .= Joomla\CMS\HTML\HTMLHelper::_(
				'bootstrap.renderModal',
				'ModalSelect' . $modalId,
				array(
					'title'       => $modalTitle,
					'url'         => $urlSelect,
					'height'      => '400px',
					'width'       => '800px',
					'bodyHeight'  => '70',
					'modalWidth'  => '80',
					'footer'      => '<a role="button"
class="btn" data-dismiss="modal"
aria-hidden="true">' .
JText::_('JLIB_HTML_BEHAVIOR_CLOSE') . '</a>',
				)
			);
		}

		// New category modal
        // phocacartcategory-form => adminForm
		if ($allowNew)
		{
			$html .= Joomla\CMS\HTML\HTMLHelper::_(
				'bootstrap.renderModal',
				'ModalNew' . $modalId,
				array(
					'title'       =>
JText::_('COM_PHOCACART_NEW_CATEGORY'),
					'backdrop'    => 'static',
					'keyboard'    => false,
					'closeButton' => false,
					'url'         => $urlNew,
					'height'      => '400px',
					'width'       => '800px',
					'bodyHeight'  => '70',
					'modalWidth'  => '80',
					'footer'      => '<a role="button"
class="btn" aria-hidden="true"'
							. ' onclick="window.processModalEdit(this, \''
							. $this->id . '\', \'add\',
\'phocacartcategory\', \'cancel\',
\'adminForm\', \'jform_id\',
\'jform_title\'); return false;">'
							. JText::_('JLIB_HTML_BEHAVIOR_CLOSE') .
'</a>'
							. '<a role="button" class="btn
btn-primary" aria-hidden="true"'
							. ' onclick="window.processModalEdit(this, \''
							. $this->id . '\', \'add\',
\'phocacartcategory\', \'save\',
\'adminForm\', \'jform_id\',
\'jform_title\'); return false;">'
							. JText::_('JSAVE') . '</a>'
							. '<a role="button" class="btn
btn-success" aria-hidden="true"'
							. ' onclick="window.processModalEdit(this, \''
							. $this->id . '\', \'add\',
\'phocacartcategory\', \'apply\',
\'adminForm\', \'jform_id\',
\'jform_title\'); return false;">'
							. JText::_('JAPPLY') . '</a>',
				)
			);
		}

		// Edit category modal.
        // phocacartcategory-form => adminForm
		if ($allowEdit)
		{
			$html .= Joomla\CMS\HTML\HTMLHelper::_(
				'bootstrap.renderModal',
				'ModalEdit' . $modalId,
				array(
					'title'       =>
JText::_('COM_PHOCACART_EDIT_CATEGORY'),
					'backdrop'    => 'static',
					'keyboard'    => false,
					'closeButton' => false,
					'url'         => $urlEdit,
					'height'      => '400px',
					'width'       => '800px',
					'bodyHeight'  => '70',
					'modalWidth'  => '80',
					'footer'      => '<a role="button"
class="btn" aria-hidden="true"'
							. ' onclick="window.processModalEdit(this, \'' .
$this->id
							. '\', \'edit\',
\'phocacartcategory\', \'cancel\',
\'adminForm\', \'jform_id\',
\'jform_title\'); return false;">'
							. JText::_('JLIB_HTML_BEHAVIOR_CLOSE') .
'</a>'
							. '<a role="button" class="btn
btn-primary" aria-hidden="true"'
							. ' onclick="window.processModalEdit(this, \''
							. $this->id . '\', \'edit\',
\'phocacartcategory\', \'save\',
\'adminForm\', \'jform_id\',
\'jform_title\'); return false;">'
							. JText::_('JSAVE') . '</a>'
							. '<a role="button" class="btn
btn-success" aria-hidden="true"'
							. ' onclick="window.processModalEdit(this, \''
							. $this->id . '\', \'edit\',
\'phocacartcategory\', \'apply\',
\'adminForm\', \'jform_id\',
\'jform_title\'); return false;">'
							. JText::_('JAPPLY') . '</a>',
				)
			);
		}

		// Note: class='required' for client side validation.
		$class = $this->required ? ' class="required
modal-value"' : '';

		$html .= '<input type="hidden" id="' .
$this->id . '_id"' . $class . '
data-required="' . (int) $this->required . '"
name="' . $this->name
			. '" data-text="' .
htmlspecialchars(JText::_('COM_PHOCACART_SELECT_A_CATEGORY',
true), ENT_COMPAT, 'UTF-8') . '" value="' .
$value . '" />';

		return $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());
	}
}