Your IP : 216.73.216.89


Current Path : /home/azimutno/www/demo/libraries/eshiol/core/
Upload File :
Current File : /home/azimutno/www/demo/libraries/eshiol/core/sendbydate.php

<?php
/**
 * @version		16.2.20 libraries/eshiol/core/sendbydate.php
 * 
 * @package		J2XML
 * @subpackage	plg_system_j2xml
 * @since		14.2.10
 *
 * @author		Helios Ciancio <info@eshiol.it>
 * @link		http://www.eshiol.it
 * @copyright	Copyright (C) 2010, 2016 Helios Ciancio. All Rights Reserved
 * @license		http://www.gnu.org/licenses/gpl-3.0.html GNU/GPL v3
 * J2XML is free software. This version may have been modified pursuant
 * to the GNU General Public License, and as distributed it includes or
 * is derivative of works licensed under the GNU General Public License 
 * or other free or open source software licenses.
 */
 
defined('JPATH_PLATFORM') or die;

/**
 * Renders a sendbydate button
 */
class JToolbarButtonSendbydate extends JToolbarButton
{
	/**
	 * Button type
	 *
	 * @var    string
	 */
	protected $_name = 'SendByDate';
	
	private $_d1;
	private $_d2;
	
	/**
	 * Fetch the HTML for the button
	 *
	 * @param   string   $type  Unused string.
	 * @param   string   $name  The name of the button icon class.
	 * @param   string   $text  Button text.
	 * @param   string   $task  Task associated with the button.
	 * @param   boolean  $list  True to allow lists
	 *
	 * @return  string  HTML string for the button
	 *
	 * @since   3.0
	 */
	public function fetchButton($type = 'Sendbydate', $name = '', $text = '', $urls = array(), $list = true, $d1 = null, $d2 = null)
	{
		$this->_d1 = $d1;
		$this->_d2 = $d2;
		$i18n_text = JText::_($text);
		$class = $this->fetchIconClass($name);

		$doc = JFactory::getDocument();
		$doc->addStyleDeclaration("
#{$name}_begin_img { width:35px!important; margin-left:0px; }
#{$name}_end_img { width:35px!important; margin-left:0px; }
");
		$doc->addScriptDeclaration("
jQuery(window).on('resize', function(){
	width = jQuery(window).width();
	if (width < 480)
		width = width - 150;
	else
		width = 137;
	jQuery('#{$name}_button').width(width);
});
");

		if ($name == "apply" || $name == "new")
		{
			$btnClass = "btn btn-small btn-success";
			$iconWhite = "icon-white";
		}
		else
		{
			$btnClass = "btn btn-small";
			$iconWhite = "";
		}

		$d1_field = JHtmlJ2XML::calendar2($d1, $name.'_begin', $name.'_begin', '%Y/%m/%d', array('style' => 'display:none', 'class' => 'btn-small'));
		$d2_field = JHtmlJ2XML::calendar2($d2, $name.'_end', $name.'_end', '%Y/%m/%d', array('style' => 'display:none', 'class' => 'btn-small'));
		
		$html  = "<div class=\"btn-group\">\n";
		if (is_array($urls))
		{
			$html .= "	<button id=\"{$name}_button\" class=\"btn btn-small dropdown-toggle\" data-toggle=\"dropdown\"><i class=\"icon-{$name}\"> </i> <span>{$i18n_text}</span> <i class=\"caret\"> </i>\n";
			$html .= "  ".$d1_field."\n";
			$html .= "  ".$d2_field."\n";
			$html .= "  </button>\n";
			$html .= "	<ul class=\"dropdown-menu\">\n";
			for ($i = 0; $i < count($urls); $i++)
			{
				$doTask = $this->_getCommand($name, $urls[$i]->title, $urls[$i]->url, $list);
				$html .= "		<li><a href=\"#\" onclick=\"{$doTask}\">{$urls[$i]->title}</a></li>\n";
			}
			$html .= "	</ul>\n";
		}			
		else
		{
			$doTask = $this->_getCommand($name, $i18n_text, $urls->url, $list);
			$html .= "<button id=\"{$name}_button\" href=\"#\" onclick=\"$doTask\" class=\"" . $btnClass . "\">\n";
			$html .= "<i class=\"$class $iconWhite\">\n";
			$html .= "</i>\n";
			$html .= "<span>{$i18n_text}</span>\n";
			$html .= "</button>\n";
			$html .= $d1_field."\n";
			$html .= $d2_field."\n";
		}
		$html .= "</div>\n";
		
		return $html;
	}

	/**
	 * Get the button CSS Id
	 *
	 * @param   string   $type      Unused string.
	 * @param   string   $name      Name to be used as apart of the id
	 * @param   string   $text      Button text
	 * @param   string   $task      The task associated with the button
	 * @param   boolean  $list      True to allow use of lists
	 * @param   boolean  $hideMenu  True to hide the menu on click
	 *
	 * @return  string  Button CSS Id
	 *
	 * @since   3.0
	 */
	public function fetchId($type = 'Sendbydate', $name = '', $text = '', $task = '', $list = true, $hideMenu = false)
	{
		return $this->_parent->getName() . '-' . $name;
	}

	/**
	 * Get the JavaScript command for the button
	 *
	 * @param   string   $name  The task name as seen by the user
	 * @param   string   $task  The task used by the application
	 * @param   boolean  $list  True is requires a list confirmation.
	 *
	 * @return  string   JavaScript command string
	 *
	 * @since   3.0
	 */
	protected function _getCommand($name, $text, $url, $list)
	{
		JHtml::_('behavior.framework');
		$message = JText::_('JLIB_HTML_PLEASE_MAKE_A_SELECTION_FROM_THE_LIST');
		$message = addslashes($message);
		$app = JFactory::getApplication();
		$d1 = $this->_d1; //->format('Y/m/d');
		$d2 = $this->_d2; //->format('Y/m/d');
		
		$token = JSession::getFormToken();
		$url = base64_encode("{$url}&format=json&{$token}=1");
		if ($list)
			$cmd = "
			if (document.adminForm.boxchecked.value==0)
				alert('{$message}');
			else 
				eshiol.sendAjaxByDate('{$name}', '{$text}', '{$url}');
			";
			return $cmd;
	}
}

abstract class JHtmlJ2XML extends JHtml
{
	/**
	 * Displays a calendar control field
	 *
	 * @param   string  $value    The date value
	 * @param   string  $name     The name of the text field
	 * @param   string  $id       The id of the text field
	 * @param   string  $format   The date format
	 * @param   mixed   $attribs  Additional HTML attributes
	 *
	 * @return  string  HTML markup for a calendar field
	 *
	 * @since   1.5
	 */
	public static function calendar2($value, $name, $id, $format = '%Y-%m-%d', $attribs = null)
	{
		static $done;

		if ($done === null)
		{
			$done = array();
		}

		$readonly = isset($attribs['readonly']) && $attribs['readonly'] == 'readonly';
		$disabled = isset($attribs['disabled']) && $attribs['disabled'] == 'disabled';

		if (is_array($attribs))
		{
			$attribs['class'] = isset($attribs['class']) ? $attribs['class'] : 'input-medium';
			$attribs['class'] = trim($attribs['class'] . ' hasTooltip');

			$attribs = JArrayHelper::toString($attribs);
		}

		static::_('bootstrap.tooltip');

		// Format value when not nulldate ('0000-00-00 00:00:00'), otherwise blank it as it would result in 1970-01-01.
		if ($value && $value != JFactory::getDbo()->getNullDate())
		{
			$tz = date_default_timezone_get();
			date_default_timezone_set('UTC');
			$inputvalue = strftime($format, strtotime($value));
			date_default_timezone_set($tz);
		}
		else
		{
			$inputvalue = '';
		}

		// Load the calendar behavior
		static::_('behavior.calendar');

		// Only display the triggers once for each control.
		if (!in_array($id, $done))
		{
			$document = JFactory::getDocument();
			$document
			->addScriptDeclaration(
					'jQuery(document).ready(function($) {Calendar.setup({
			// Id of the input field
			inputField: "' . $id . '",
			// Format of the input field
			ifFormat: "' . $format . '",
			// Trigger for the calendar (button ID)
			button: "' . $id . '_img",
			// Alignment (defaults to "Bl")
			align: "Tl",
			singleClick: true,
			firstDay: ' . JFactory::getLanguage()->getFirstDay() . '
			});});'
					);
			$done[] = $id;
		}

		// Hide button using inline styles for readonly/disabled fields
		$btn_style = ($readonly || $disabled) ? ' style="display:none;"' : '';
		$div_class = (!$readonly && !$disabled) ? ' class="input-append"' : '';

		return '<input type="text" title="' . ($inputvalue ? static::_('date', $value, null, null) : '')
		. '" name="' . $name . '" id="' . $id . '" value="' . htmlspecialchars($inputvalue, ENT_COMPAT, 'UTF-8') . '" ' . $attribs . ' />'
				. '<button type="button" class="btn btn-small" id="' . $id . '_img"' . $btn_style . '><span class="icon-calendar"></span></button>'
						;
	}
}