primo commit
This commit is contained in:
		| @ -0,0 +1,108 @@ | ||||
| <?php | ||||
| /* @package Joomla | ||||
|  * @copyright Copyright (C) Open Source Matters. All rights reserved. | ||||
|  * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php | ||||
|  * @extension Phoca Extension | ||||
|  * @copyright Copyright (C) Jan Pavelka www.phoca.cz | ||||
|  * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL | ||||
|  */ | ||||
| defined('JPATH_BASE') or die(); | ||||
| use Joomla\CMS\Form\FormField; | ||||
| use Joomla\CMS\Session\Session; | ||||
| use Joomla\CMS\Factory; | ||||
| use Joomla\CMS\HTML\HTMLHelper; | ||||
| use Joomla\CMS\Uri\Uri; | ||||
| use Joomla\CMS\Language\Text; | ||||
| jimport('joomla.form.formfield'); | ||||
|  | ||||
|  | ||||
| class JFormFieldPhocaSelectItem extends FormField | ||||
| { | ||||
| 	public $type = 'PhocaSelectItem'; | ||||
|  | ||||
| 	protected function getInput() { | ||||
| 		$html 	= array(); | ||||
| 		$url 	= 'index.php?option=com_phocagallery&view=phocagalleryitema&format=json&tmpl=component&'. Session::getFormToken().'=1'; | ||||
|  | ||||
| 		// Possible problem with modal | ||||
| 		//$attr 	= $this->element['class'] ? ' class="'.(string) $this->element['class'].' typeahead"' : ' class="typeahead"'; | ||||
| 		$attr 	= $this->element['class'] ? ' class="'.(string) $this->element['class'].' "' : ' class=""'; | ||||
|  | ||||
| 		$attr  .= $this->element['size'] ? ' size="'.(int) $this->element['size'].'"' : ''; | ||||
| 		$attr  .= $this->element['required'] ? ' required aria-required="true"' : ''; | ||||
|  | ||||
|  | ||||
| 		$clearId = 'phClearId'.$this->id; | ||||
|  | ||||
|  | ||||
| 		if ($this->multiple) { | ||||
| 			$multiple = 'true'; | ||||
| 		} else { | ||||
| 			$multiple = 'false'; | ||||
| 		} | ||||
|  | ||||
|  | ||||
| 		$onchange 	= (string) $this->element['onchange']; | ||||
| 		$value = ''; | ||||
|  | ||||
| 		$image = PhocaGalleryImage::getImageByImageId((int)$this->value);// We don't need catid, we get all categories title | ||||
| 		if(isset($image->id)) { | ||||
| 			$value .= (int)$image->id . ':'. $image->title .' ('.$image->category_title.')'; | ||||
| 		} | ||||
| 		$id = (int)$this->value; | ||||
|  | ||||
|  | ||||
|  | ||||
| 		$document 			= Factory::getDocument(); | ||||
| 		$app				= Factory::getApplication(); | ||||
| 		$wa 				= $app->getDocument()->getWebAssetManager(); | ||||
|  | ||||
| 		HTMLHelper::_('jquery.framework', false); | ||||
| 		//HTMLHelper::_('script', 'media/com_phocagallery/js/administrator/select2/select2.js', array('version' => 'auto')); | ||||
| 		//HTMLHelper::_('script', 'media/com_phocagallery/js/administrator/select2/jquery.phocaselect2.js', array('version' => 'auto')); | ||||
| 		//HTMLHelper::_('stylesheet', 'media/com_phocagallery/js/administrator/select2/select2.css', array('version' => 'auto')); | ||||
| 		$wa->registerAndUseScript('com_phocagallery.select2', 'media/com_phocagallery/js/administrator/select2/select2.js', array('version' => 'auto')); | ||||
| 		$wa->registerAndUseScript('com_phocagallery.phocaselect2', 'media/com_phocagallery/js/administrator/select2/jquery.phocaselect2.js', array('version' => 'auto')); | ||||
| 		$wa->registerAndUseStyle('com_phocagallery.select2', 'media/com_phocagallery/js/administrator/select2/select2.css', array('version' => 'auto')); | ||||
|  | ||||
| 		$document->addScriptOptions('phLang', array( | ||||
| 			'COM_PHOCAGALLERY_NO_MATCHES_FOUND' => Text::_('COM_PHOCAGALLERY_NO_MATCHES_FOUND'), | ||||
| 			'COM_PHOCAGALLERY_PLEASE_ENTER' => Text::_('COM_PHOCAGALLERY_PLEASE_ENTER'), | ||||
| 			'COM_PHOCAGALLERY_S_MORE_CHARACTER' => Text::_('COM_PHOCAGALLERY_S_MORE_CHARACTER'), | ||||
| 			'COM_PHOCAGALLERY_PLEASE_DELETE' => Text::_('COM_PHOCAGALLERY_PLEASE_DELETE'), | ||||
| 			'COM_PHOCAGALLERY_S_CHARACTER' => Text::_('COM_PHOCAGALLERY_S_CHARACTER'), | ||||
| 			'COM_PHOCAGALLERY_YOU_CAN_ONLY_SELECT' => Text::_('COM_PHOCAGALLERY_YOU_CAN_ONLY_SELECT'), | ||||
| 			'COM_PHOCAGALLERY_S_ITEM' => Text::_('COM_PHOCAGALLERY_S_ITEM'), | ||||
| 			'COM_PHOCAGALLERY_LOADING_MORE_RESULTS' => Text::_('COM_PHOCAGALLERY_LOADING_MORE_RESULTS'), | ||||
| 			'COM_PHOCAGALLERY_SEARCHING' => Text::_('COM_PHOCAGALLERY_SEARCHING') | ||||
| 		)); | ||||
| 		$document->addScriptOptions('phVars', array('uriRoot' => Uri::root())); | ||||
|  | ||||
| 		$s = array(); | ||||
| 		$s[] = 'jQuery(document).ready(function() {'; | ||||
| 		$s[] = '   phSearchItemsMultiple("#'.$this->id.'", "'.$url.'", '.(int)$id.', '.$multiple.', "[|]");'; | ||||
| 		if (!$this->multiple) { | ||||
| 			$s[] = ' jQuery("#' . $clearId . '").on("click", function() {jQuery("#' . $this->id . '").select2("val", ""); });'; | ||||
| 		} | ||||
| 		$s[] = '});'; | ||||
|  | ||||
| 		$document->addScriptDeclaration(implode("\n", $s)); | ||||
|  | ||||
|  | ||||
| 		$class = ''; | ||||
| 		if (!$this->multiple) { | ||||
|  | ||||
| 			$class = 'ph-select2-clear-btn-box'; | ||||
| 		} | ||||
| 		$html[] = '<div class="input-append input-group">'; | ||||
| 		$html[] = '<input type="text" placeholder=" " class="'.$class.'" id="'.$this->id.'" name="'.$this->name.'" value="'. $value.'"' .' '.$attr.' />'; | ||||
| 		if (!$this->multiple) { | ||||
| 			$html[] = '<input type="button" class="btn btn-primary" id="' . $clearId . '" name="' . $clearId . '" value="' . Text::_('COM_PHOCAGALLERY_CLEAR') . '"' . ' />'; | ||||
| 		} | ||||
| 		$html[] = '</div>'. "\n"; | ||||
|  | ||||
|  | ||||
| 		return implode("\n", $html); | ||||
| 	} | ||||
| } | ||||
| ?> | ||||
		Reference in New Issue
	
	Block a user