Ejemplo n.º 1
0
 /**
  * Gets the link
  *
  * @param   \Joomla\Registry\Registry  &$params  module parameters
  *
  * @return  array  The link as a string
  *
  * @since   1.5
  */
 public static function getLink(&$params)
 {
     $document = JFactory::getDocument();
     foreach ($document->_links as $link => $value) {
         $value = ArrayHelper::toString($value);
         if (strpos($value, 'application/' . $params->get('format') . '+xml')) {
             return $link;
         }
     }
 }
 /**
  * Utility function to map an array to a string.
  *
  * @param   array    $array         The array to map.
  * @param   string   $inner_glue    The glue (optional, defaults to '=') between the key and the value.
  * @param   string   $outer_glue    The glue (optional, defaults to ' ') between array elements.
  * @param   boolean  $keepOuterKey  True if final key should be kept.
  *
  * @return  string   The string mapped from the given array
  *
  * @since   11.1
  * @deprecated  4.0 Use Joomla\Utilities\ArrayHelper::toString instead
  */
 public static function toString($array = null, $inner_glue = '=', $outer_glue = ' ', $keepOuterKey = false)
 {
     $output = array();
     if (is_array($array)) {
         $output[] = ArrayHelper::toString($array, $inner_glue, $outer_glue, $keepOuterKey);
     } else {
         JLog::add('This method is typehinted to be an array in \\Joomla\\Utilities\\ArrayHelper::toString.', JLog::WARNING, 'deprecated');
     }
     return implode($outer_glue, $output);
 }
Ejemplo n.º 3
0
 /**
  * Generates the head HTML and return the results as a string
  *
  * @param   JDocumentHtml  $document  The document for which the head will be created
  *
  * @return  string  The head hTML
  *
  * @since   3.5
  * @deprecated  4.0  Method code will be moved into the render method
  */
 public function fetchHead($document)
 {
     // Convert the tagids to titles
     if (isset($document->_metaTags['name']['tags'])) {
         $tagsHelper = new JHelperTags();
         $document->_metaTags['name']['tags'] = implode(', ', $tagsHelper->getTagNames($document->_metaTags['name']['tags']));
     }
     // Trigger the onBeforeCompileHead event
     $app = JFactory::getApplication();
     $app->triggerEvent('onBeforeCompileHead');
     // Get line endings
     $lnEnd = $document->_getLineEnd();
     $tab = $document->_getTab();
     $tagEnd = ' />';
     $buffer = '';
     // Generate charset when using HTML5 (should happen first)
     if ($document->isHtml5()) {
         $buffer .= $tab . '<meta charset="' . $document->getCharset() . '" />' . $lnEnd;
     }
     // Generate base tag (need to happen early)
     $base = $document->getBase();
     if (!empty($base)) {
         $buffer .= $tab . '<base href="' . $base . '" />' . $lnEnd;
     }
     // Generate META tags (needs to happen as early as possible in the head)
     foreach ($document->_metaTags as $type => $tag) {
         foreach ($tag as $name => $content) {
             if ($type == 'http-equiv' && !($document->isHtml5() && $name == 'content-type')) {
                 $buffer .= $tab . '<meta http-equiv="' . $name . '" content="' . htmlspecialchars($content, ENT_COMPAT, 'UTF-8') . '" />' . $lnEnd;
             } elseif ($type != 'http-equiv' && !empty($content)) {
                 $buffer .= $tab . '<meta ' . $type . '="' . $name . '" content="' . htmlspecialchars($content, ENT_COMPAT, 'UTF-8') . '" />' . $lnEnd;
             }
         }
     }
     // Don't add empty descriptions
     $documentDescription = $document->getDescription();
     if ($documentDescription) {
         $buffer .= $tab . '<meta name="description" content="' . htmlspecialchars($documentDescription, ENT_COMPAT, 'UTF-8') . '" />' . $lnEnd;
     }
     // Don't add empty generators
     $generator = $document->getGenerator();
     if ($generator) {
         $buffer .= $tab . '<meta name="generator" content="' . htmlspecialchars($generator, ENT_COMPAT, 'UTF-8') . '" />' . $lnEnd;
     }
     $buffer .= $tab . '<title>' . htmlspecialchars($document->getTitle(), ENT_COMPAT, 'UTF-8') . '</title>' . $lnEnd;
     // Generate link declarations
     foreach ($document->_links as $link => $linkAtrr) {
         $buffer .= $tab . '<link href="' . $link . '" ' . $linkAtrr['relType'] . '="' . $linkAtrr['relation'] . '"';
         if (is_array($linkAtrr['attribs'])) {
             if ($temp = ArrayHelper::toString($linkAtrr['attribs'])) {
                 $buffer .= ' ' . $temp;
             }
         }
         $buffer .= ' />' . $lnEnd;
     }
     $defaultCssMimes = array('text/css');
     // Generate stylesheet links
     foreach ($document->_styleSheets as $strSrc => $strAttr) {
         $buffer .= $tab . '<link rel="stylesheet" href="' . $strSrc . '"';
         if (!is_null($strAttr['mime']) && (!$document->isHtml5() || !in_array($strAttr['mime'], $defaultCssMimes))) {
             $buffer .= ' type="' . $strAttr['mime'] . '"';
         }
         if (!is_null($strAttr['media'])) {
             $buffer .= ' media="' . $strAttr['media'] . '"';
         }
         if (is_array($strAttr['attribs'])) {
             if ($temp = ArrayHelper::toString($strAttr['attribs'])) {
                 $buffer .= ' ' . $temp;
             }
         }
         $buffer .= $tagEnd . $lnEnd;
     }
     // Generate stylesheet declarations
     foreach ($document->_style as $type => $content) {
         $buffer .= $tab . '<style';
         if (!is_null($type) && (!$document->isHtml5() || !in_array($type, $defaultCssMimes))) {
             $buffer .= ' type="' . $type . '"';
         }
         $buffer .= '>' . $lnEnd;
         // This is for full XHTML support.
         if ($document->_mime != 'text/html') {
             $buffer .= $tab . $tab . '/*<![CDATA[*/' . $lnEnd;
         }
         $buffer .= $content . $lnEnd;
         // See above note
         if ($document->_mime != 'text/html') {
             $buffer .= $tab . $tab . '/*]]>*/' . $lnEnd;
         }
         $buffer .= $tab . '</style>' . $lnEnd;
     }
     $defaultJsMimes = array('text/javascript', 'application/javascript', 'text/x-javascript', 'application/x-javascript');
     // Generate script file links
     foreach ($document->_scripts as $strSrc => $strAttr) {
         $buffer .= $tab . '<script src="' . $strSrc . '"';
         if (!is_null($strAttr['mime']) && (!$document->isHtml5() || !in_array($strAttr['mime'], $defaultJsMimes))) {
             $buffer .= ' type="' . $strAttr['mime'] . '"';
         }
         if ($strAttr['defer']) {
             $buffer .= ' defer';
             if (!$document->isHtml5()) {
                 $buffer .= '="defer"';
             }
         }
         if ($strAttr['async']) {
             $buffer .= ' async';
             if (!$document->isHtml5()) {
                 $buffer .= '="async"';
             }
         }
         $buffer .= '></script>' . $lnEnd;
     }
     // Generate scripts options
     $scriptOptions = $document->getScriptOptions();
     if (!empty($scriptOptions)) {
         $buffer .= $tab . '<script type="text/javascript">' . $lnEnd;
         // This is for full XHTML support.
         if ($document->_mime != 'text/html') {
             $buffer .= $tab . $tab . '//<![CDATA[' . $lnEnd;
         }
         $pretyPrint = JDEBUG && defined('JSON_PRETTY_PRINT') ? JSON_PRETTY_PRINT : false;
         $jsonOptions = json_encode($scriptOptions, $pretyPrint);
         $jsonOptions = $jsonOptions ? $jsonOptions : '{}';
         // TODO: use .extend(Joomla.optionsStorage, options) when it will be safe
         $buffer .= $tab . 'var Joomla = Joomla || {};' . $lnEnd;
         $buffer .= $tab . 'Joomla.optionsStorage = ' . $jsonOptions . ';' . $lnEnd;
         // See above note
         if ($document->_mime != 'text/html') {
             $buffer .= $tab . $tab . '//]]>' . $lnEnd;
         }
         $buffer .= $tab . '</script>' . $lnEnd;
     }
     // Generate script declarations
     foreach ($document->_script as $type => $content) {
         $buffer .= $tab . '<script';
         if (!is_null($type) && (!$document->isHtml5() || !in_array($type, $defaultJsMimes))) {
             $buffer .= ' type="' . $type . '"';
         }
         $buffer .= '>' . $lnEnd;
         // This is for full XHTML support.
         if ($document->_mime != 'text/html') {
             $buffer .= $tab . $tab . '//<![CDATA[' . $lnEnd;
         }
         $buffer .= $content . $lnEnd;
         // See above note
         if ($document->_mime != 'text/html') {
             $buffer .= $tab . $tab . '//]]>' . $lnEnd;
         }
         $buffer .= $tab . '</script>' . $lnEnd;
     }
     // Generate script language declarations.
     if (count(JText::script())) {
         $buffer .= $tab . '<script';
         if (!$document->isHtml5()) {
             $buffer .= ' type="text/javascript"';
         }
         $buffer .= '>' . $lnEnd;
         if ($document->_mime != 'text/html') {
             $buffer .= $tab . $tab . '//<![CDATA[' . $lnEnd;
         }
         $buffer .= $tab . $tab . '(function() {' . $lnEnd;
         $buffer .= $tab . $tab . $tab . 'Joomla.JText.load(' . json_encode(JText::script()) . ');' . $lnEnd;
         $buffer .= $tab . $tab . '})();' . $lnEnd;
         if ($document->_mime != 'text/html') {
             $buffer .= $tab . $tab . '//]]>' . $lnEnd;
         }
         $buffer .= $tab . '</script>' . $lnEnd;
     }
     // Output the custom tags - array_unique makes sure that we don't output the same tags twice
     foreach (array_unique($document->_custom) as $custom) {
         $buffer .= $tab . $custom . $lnEnd;
     }
     return $buffer;
 }
<?php

defined('JPATH_BASE') or die;
use Joomla\Utilities\ArrayHelper;
$d = $displayData;
$from = $d->from;
$to = $d->to;
$calOpts = ArrayHelper::toString($d->calOpts);
if ($d->j3) {
    $from->img = '<button id ="' . $from->id . '_cal_img" class="btn calendarbutton">' . $from->img . '</button>';
    $to->img = '<button id ="' . $to->id . '_cal_img" class="btn calendarbutton">' . $to->img . '</button>';
}
$prepend = $d->j3 ? '<div class="input-append">' : '';
$append = $d->j3 ? '</div>' : '';
if ($d->filterType === 'range-hidden') {
    ?>
	<input type="hidden" name="<?php 
    echo $from->name;
    ?>
"
		class="<?php 
    echo $d->class;
    ?>
"
		value="<?php 
    echo $from->value;
    ?>
"
		id="<?php 
    echo $d->htmlId;
    ?>
Ejemplo n.º 5
0
    /**
     * 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 calendar($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 = ArrayHelper::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() && strtotime($value) !== false) {
            $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 '<div' . $div_class . '>' . '<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" id="' . $id . '_img"' . $btn_style . '><span class="icon-calendar"></span></button>' . '</div>';
    }
Ejemplo n.º 6
0
 /**
  * Displays a calendar control field
  *
  * hacked from behaviour as you need to check if the element exists
  * it might not as you could be using a custom template
  *
  * @param   string $value         The date value (must be in the same format as supplied by $format)
  * @param   string $name          The name of the text field
  * @param   string $id            The id of the text field
  * @param   string $format        The date format (not used)
  * @param   array  $attribs       Additional html attributes
  * @param   int    $repeatCounter Repeat group counter (not used)
  *
  * @deprecated - use JLayouts instead
  *
  * @return  string
  */
 public function calendar($value, $name, $id, $format = '%Y-%m-%d', $attribs = null, $repeatCounter = 0)
 {
     $j3 = FabrikWorker::j3();
     if (is_array($attribs)) {
         $attribs = ArrayHelper::toString($attribs);
     }
     FabrikHelperHTML::addPath(COM_FABRIK_BASE . 'media/system/images/', 'image', 'form', false);
     $opts = $j3 ? array('alt' => 'calendar') : array('alt' => 'calendar', 'class' => 'calendarbutton', 'id' => $id . '_cal_img');
     $img = FabrikHelperHTML::image('calendar.png', 'form', @$this->tmpl, $opts);
     $html = array();
     if ($j3) {
         $btnLayout = FabrikHelperHTML::getLayout('fabrik-button');
         $layoutData = (object) array('class' => 'calendarbutton', 'id' => $id . '_cal_img', 'label' => $img);
         $img = $btnLayout->render($layoutData);
         $html[] = '<div class="input-append">';
     }
     $html[] = '<input type="text" name="' . $name . '" id="' . $id . '" value="' . $value . '" ' . $attribs . ' />' . $img;
     if ($j3) {
         $html[] = '</div>';
     }
     return implode("\n", $html);
 }
Ejemplo n.º 7
0
 /**
  * Generates an HTML radio list.
  *
  * @param   array    $data       An array of objects
  * @param   string   $name       The value of the HTML name attribute
  * @param   string   $attribs    Additional HTML attributes for the `<select>` tag
  * @param   mixed    $optKey     The key that is selected
  * @param   string   $optText    The name of the object variable for the option value
  * @param   string   $selected   The name of the object variable for the option text
  * @param   boolean  $idtag      Value of the field id or null by default
  * @param   boolean  $translate  True if options will be translated
  *
  * @return  string  HTML for the select list
  *
  * @since   1.5
  */
 public static function radiolist($data, $name, $attribs = null, $optKey = 'value', $optText = 'text', $selected = null, $idtag = false, $translate = false)
 {
     if (is_array($attribs)) {
         $attribs = ArrayHelper::toString($attribs);
     }
     $id_text = $idtag ? $idtag : $name;
     $html = '<div class="controls">';
     foreach ($data as $obj) {
         $k = $obj->{$optKey};
         $t = $translate ? JText::_($obj->{$optText}) : $obj->{$optText};
         $id = isset($obj->id) ? $obj->id : null;
         $extra = '';
         $id = $id ? $obj->id : $id_text . $k;
         if (is_array($selected)) {
             foreach ($selected as $val) {
                 $k2 = is_object($val) ? $val->{$optKey} : $val;
                 if ($k == $k2) {
                     $extra .= ' selected="selected" ';
                     break;
                 }
             }
         } else {
             $extra .= (string) $k == (string) $selected ? ' checked="checked" ' : '';
         }
         $html .= "\n\t" . '<label for="' . $id . '" id="' . $id . '-lbl" class="radio">';
         $html .= "\n\t\n\t" . '<input type="radio" name="' . $name . '" id="' . $id . '" value="' . $k . '" ' . $extra . $attribs . ' />' . $t;
         $html .= "\n\t" . '</label>';
     }
     $html .= "\n";
     $html .= '</div>';
     $html .= "\n";
     return $html;
 }
Ejemplo n.º 8
0
 /**
  * Generates the head HTML and return the results as a string
  *
  * @param   JDocumentHtml  $document  The document for which the head will be created
  *
  * @return  string  The head hTML
  *
  * @since   3.5
  * @deprecated  4.0  Method code will be moved into the render method
  */
 public function fetchHead($document)
 {
     // Convert the tagids to titles
     if (isset($document->_metaTags['name']['tags'])) {
         $tagsHelper = new JHelperTags();
         $document->_metaTags['name']['tags'] = implode(', ', $tagsHelper->getTagNames($document->_metaTags['name']['tags']));
     }
     if ($document->getScriptOptions()) {
         JHtml::_('behavior.core');
     }
     // Trigger the onBeforeCompileHead event
     $app = JFactory::getApplication();
     $app->triggerEvent('onBeforeCompileHead');
     // Get line endings
     $lnEnd = $document->_getLineEnd();
     $tab = $document->_getTab();
     $tagEnd = ' />';
     $buffer = '';
     // Generate charset when using HTML5 (should happen first)
     if ($document->isHtml5()) {
         $buffer .= $tab . '<meta charset="' . $document->getCharset() . '" />' . $lnEnd;
     }
     // Generate base tag (need to happen early)
     $base = $document->getBase();
     if (!empty($base)) {
         $buffer .= $tab . '<base href="' . $base . '" />' . $lnEnd;
     }
     // Generate META tags (needs to happen as early as possible in the head)
     foreach ($document->_metaTags as $type => $tag) {
         foreach ($tag as $name => $content) {
             if ($type == 'http-equiv' && !($document->isHtml5() && $name == 'content-type')) {
                 $buffer .= $tab . '<meta http-equiv="' . $name . '" content="' . htmlspecialchars($content, ENT_COMPAT, 'UTF-8') . '" />' . $lnEnd;
             } elseif ($type != 'http-equiv' && !empty($content)) {
                 $buffer .= $tab . '<meta ' . $type . '="' . $name . '" content="' . htmlspecialchars($content, ENT_COMPAT, 'UTF-8') . '" />' . $lnEnd;
             }
         }
     }
     // Don't add empty descriptions
     $documentDescription = $document->getDescription();
     if ($documentDescription) {
         $buffer .= $tab . '<meta name="description" content="' . htmlspecialchars($documentDescription, ENT_COMPAT, 'UTF-8') . '" />' . $lnEnd;
     }
     // Don't add empty generators
     $generator = $document->getGenerator();
     if ($generator) {
         $buffer .= $tab . '<meta name="generator" content="' . htmlspecialchars($generator, ENT_COMPAT, 'UTF-8') . '" />' . $lnEnd;
     }
     $buffer .= $tab . '<title>' . htmlspecialchars($document->getTitle(), ENT_COMPAT, 'UTF-8') . '</title>' . $lnEnd;
     // Generate link declarations
     foreach ($document->_links as $link => $linkAtrr) {
         $buffer .= $tab . '<link href="' . $link . '" ' . $linkAtrr['relType'] . '="' . $linkAtrr['relation'] . '"';
         if (is_array($linkAtrr['attribs'])) {
             if ($temp = ArrayHelper::toString($linkAtrr['attribs'])) {
                 $buffer .= ' ' . $temp;
             }
         }
         $buffer .= ' />' . $lnEnd;
     }
     $defaultCssMimes = array('text/css');
     // Generate stylesheet links
     foreach ($document->_styleSheets as $strSrc => $strAttr) {
         $buffer .= $tab . '<link href="' . $strSrc . '" rel="stylesheet"';
         if (!is_null($strAttr['mime']) && (!$document->isHtml5() || !in_array($strAttr['mime'], $defaultCssMimes))) {
             $buffer .= ' type="' . $strAttr['mime'] . '"';
         }
         if (!is_null($strAttr['media'])) {
             $buffer .= ' media="' . $strAttr['media'] . '"';
         }
         if (is_array($strAttr['attribs'])) {
             if ($temp = ArrayHelper::toString($strAttr['attribs'])) {
                 $buffer .= ' ' . $temp;
             }
         }
         $buffer .= $tagEnd . $lnEnd;
     }
     // Generate stylesheet declarations
     foreach ($document->_style as $type => $content) {
         $buffer .= $tab . '<style';
         if (!is_null($type) && (!$document->isHtml5() || !in_array($type, $defaultCssMimes))) {
             $buffer .= ' type="' . $type . '"';
         }
         $buffer .= '>' . $lnEnd;
         // This is for full XHTML support.
         if ($document->_mime != 'text/html') {
             $buffer .= $tab . $tab . '/*<![CDATA[*/' . $lnEnd;
         }
         $buffer .= $content . $lnEnd;
         // See above note
         if ($document->_mime != 'text/html') {
             $buffer .= $tab . $tab . '/*]]>*/' . $lnEnd;
         }
         $buffer .= $tab . '</style>' . $lnEnd;
     }
     // Generate scripts options
     $scriptOptions = $document->getScriptOptions();
     if (!empty($scriptOptions)) {
         $buffer .= $tab . '<script type="application/json" class="joomla-script-options new">';
         $prettyPrint = JDEBUG && defined('JSON_PRETTY_PRINT') ? JSON_PRETTY_PRINT : false;
         $jsonOptions = json_encode($scriptOptions, $prettyPrint);
         $jsonOptions = $jsonOptions ? $jsonOptions : '{}';
         $buffer .= $jsonOptions;
         $buffer .= '</script>' . $lnEnd;
     }
     $defaultJsMimes = array('text/javascript', 'application/javascript', 'text/x-javascript', 'application/x-javascript');
     $html5NoValueAttributes = array('defer', 'async');
     $mediaVersion = $document->getMediaVersion();
     // Generate script file links
     foreach ($document->_scripts as $src => $attribs) {
         // Check if script uses IE conditional statements.
         $conditional = isset($attribs['options']) && isset($attribs['options']['conditional']) ? $attribs['options']['conditional'] : null;
         // Check if script uses media version.
         if (strpos($src, '?') === false && isset($attribs['options']) && isset($attribs['options']['version']) && $attribs['options']['version']) {
             $src .= '?' . ($attribs['options']['version'] === 'auto' ? $mediaVersion : $attribs['options']['version']);
         }
         $buffer .= $tab;
         // This is for IE conditional statements support.
         if (!is_null($conditional)) {
             $buffer .= '<!--[if ' . $conditional . ']>';
         }
         $buffer .= '<script src="' . $src . '"';
         // Add script tag attributes.
         foreach ($attribs as $attrib => $value) {
             // Don't add the 'options' attribute. This attribute is for internal use (version, conditional, etc).
             if ($attrib === 'options') {
                 continue;
             }
             // Don't add type attribute if document is HTML5 and it's a default mime type. 'mime' is for B/C.
             if (in_array($attrib, array('type', 'mime')) && $document->isHtml5() && in_array($value, $defaultJsMimes)) {
                 continue;
             }
             // Don't add type attribute if document is HTML5 and it's a default mime type. 'mime' is for B/C.
             if ($attrib === 'mime') {
                 $attrib = 'type';
             } elseif (in_array($attrib, array('defer', 'async')) && $value === true) {
                 $value = $attrib;
             }
             // Add attribute to script tag output.
             $buffer .= ' ' . htmlspecialchars($attrib, ENT_COMPAT, 'UTF-8');
             if (!($document->isHtml5() && in_array($attrib, $html5NoValueAttributes))) {
                 // Json encode value if it's an array.
                 $value = !is_scalar($value) ? json_encode($value) : $value;
                 $buffer .= '="' . htmlspecialchars($value, ENT_COMPAT, 'UTF-8') . '"';
             }
         }
         $buffer .= '></script>';
         // This is for IE conditional statements support.
         if (!is_null($conditional)) {
             $buffer .= '<![endif]-->';
         }
         $buffer .= $lnEnd;
     }
     // Generate script declarations
     foreach ($document->_script as $type => $content) {
         $buffer .= $tab . '<script';
         if (!is_null($type) && (!$document->isHtml5() || !in_array($type, $defaultJsMimes))) {
             $buffer .= ' type="' . $type . '"';
         }
         $buffer .= '>' . $lnEnd;
         // This is for full XHTML support.
         if ($document->_mime != 'text/html') {
             $buffer .= $tab . $tab . '//<![CDATA[' . $lnEnd;
         }
         $buffer .= $content . $lnEnd;
         // See above note
         if ($document->_mime != 'text/html') {
             $buffer .= $tab . $tab . '//]]>' . $lnEnd;
         }
         $buffer .= $tab . '</script>' . $lnEnd;
     }
     // Output the custom tags - array_unique makes sure that we don't output the same tags twice
     foreach (array_unique($document->_custom) as $custom) {
         $buffer .= $tab . $custom . $lnEnd;
     }
     return $buffer;
 }
Ejemplo n.º 9
0
echo $this->user->web_id;
?>
</p>
						</div>
					</div>

					<div class="form-group">
						<label class="col-sm-2 compojoom-control-label">
							<?php 
echo JText::_('COM_CMC_CLIENTS');
?>
						</label>
						<div class="col-sm-10">
							<p class="form-control-static">
								<?php 
echo ArrayHelper::toString($this->user->clients ? json_decode($this->user->clients, true) : array(), " = ", ", ");
?>
							</p>
						</div>
					</div>

					<div class="form-group">
						<label class="col-sm-2 compojoom-control-label">
							<?php 
echo JText::_('COM_CMC_LANGUAGE');
?>
						</label>
						<div class="col-sm-10">
							<p class="form-control-static">
								<?php 
echo $this->user->language ? $this->user->language : 'en';
    /**
     * 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   array   $attribs  Additional HTML attributes
     *
     * @return  string  HTML markup for a calendar field
     *
     * @since   11.1
     */
    public static function calendar($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 = ArrayHelper::toString($attribs);
        }
        if (!$readonly && !$disabled) {
            // Load the calendar behavior
            self::_('behavior.calendar');
            self::_('behavior.tooltip');
            // Only display the triggers once for each control.
            if (!in_array($id, $done)) {
                $document = Factory::getDocument();
                $document->addScriptDeclaration('window.addEvent(\'domready\', 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: ' . Factory::getLanguage()->getFirstDay() . '
				});});');
                $done[] = $id;
            }
            return '<input type="text" title="' . (0 !== (int) $value ? self::_('date', $value, null, null) : '') . '" name="' . $name . '" id="' . $id . '" value="' . htmlspecialchars($value, ENT_COMPAT, 'UTF-8') . '" ' . $attribs . ' />' . self::_('image', 'system/calendar.png', Text::_('JLIB_HTML_CALENDAR'), array('class' => 'calendar', 'id' => $id . '_img'), true);
        } else {
            return '<input type="text" title="' . (0 !== (int) $value ? self::_('date', $value, null, null) : '') . '" value="' . (0 !== (int) $value ? self::_('date', $value, 'Y-m-d H:i:s', null) : '') . '" ' . $attribs . ' /><input type="hidden" name="' . $name . '" id="' . $id . '" value="' . htmlspecialchars($value, ENT_COMPAT, 'UTF-8') . '" />';
        }
    }
Ejemplo n.º 11
0
 /**
  * Tests converting array to string.
  *
  * @param   array    $input     The array being input
  * @param   string   $inner     The inner glue
  * @param   string   $outer     The outer glue
  * @param   boolean  $keepKey   Keep the outer key
  * @param   string   $expect    The expected return value
  * @param   string   $message   The failure message
  * @param   boolean  $defaults  Use function defaults (true) or full argument list
  *
  * @return  void
  *
  * @dataProvider  seedTestToString
  * @covers        Joomla\Utilities\ArrayHelper::toString
  * @since         1.0
  */
 public function testToString($input, $inner, $outer, $keepKey, $expect, $message, $defaults)
 {
     if ($defaults) {
         $output = ArrayHelper::toString($input);
     } else {
         $output = ArrayHelper::toString($input, $inner, $outer, $keepKey);
     }
     $this->assertEquals($expect, $output, $message);
 }
 /**
  * Generates the head HTML and return the results as a string
  *
  * @param   JDocument  $document  The document for which the head will be created
  *
  * @return  string  The head hTML
  *
  * @since   11.1
  */
 public function fetchHead(Document $document)
 {
     // Trigger the onBeforeCompileHead event (skip for installation, since it causes an error)
     $app = Factory::getApplication();
     $app->triggerEvent('onBeforeCompileHead');
     // Get line endings
     $lnEnd = $document->_getLineEnd();
     $tab = $document->_getTab();
     $tagEnd = ' />';
     $buffer = '';
     // Generate charset when using HTML5 (should happen first)
     if ($document->isHtml5()) {
         $buffer .= $tab . '<meta charset="' . $document->getCharset() . '" />' . $lnEnd;
     }
     // Generate base tag (need to happen early)
     $base = $document->getBase();
     if (!empty($base)) {
         $buffer .= $tab . '<base href="' . $document->getBase() . '" />' . $lnEnd;
     }
     // Generate META tags (needs to happen as early as possible in the head)
     foreach ($document->_metaTags as $type => $tag) {
         foreach ($tag as $name => $content) {
             if ($type == 'http-equiv' && !($document->isHtml5() && $name == 'content-type')) {
                 $buffer .= $tab . '<meta http-equiv="' . $name . '" content="' . htmlspecialchars($content) . '" />' . $lnEnd;
             } elseif ($type == 'standard' && !empty($content)) {
                 $buffer .= $tab . '<meta name="' . $name . '" content="' . htmlspecialchars($content) . '" />' . $lnEnd;
             }
         }
     }
     // Don't add empty descriptions
     $documentDescription = $document->getDescription();
     if ($documentDescription) {
         $buffer .= $tab . '<meta name="description" content="' . htmlspecialchars($documentDescription) . '" />' . $lnEnd;
     }
     // Don't add empty generators
     $generator = $document->getGenerator();
     if ($generator) {
         $buffer .= $tab . '<meta name="generator" content="' . htmlspecialchars($generator) . '" />' . $lnEnd;
     }
     $buffer .= $tab . '<title>' . htmlspecialchars($document->getTitle(), ENT_COMPAT, 'UTF-8') . '</title>' . $lnEnd;
     // Generate link declarations
     foreach ($document->_links as $link => $linkAtrr) {
         $buffer .= $tab . '<link href="' . $link . '" ' . $linkAtrr['relType'] . '="' . $linkAtrr['relation'] . '"';
         if ($temp = ArrayHelper::toString($linkAtrr['attribs'])) {
             $buffer .= ' ' . $temp;
         }
         $buffer .= ' />' . $lnEnd;
     }
     // Generate stylesheet links
     foreach ($document->_styleSheets as $strSrc => $strAttr) {
         $buffer .= $tab . '<link rel="stylesheet" href="' . $strSrc . '" type="' . $strAttr['mime'] . '"';
         if (!is_null($strAttr['media'])) {
             $buffer .= ' media="' . $strAttr['media'] . '" ';
         }
         if ($temp = ArrayHelper::toString($strAttr['attribs'])) {
             $buffer .= ' ' . $temp;
         }
         $buffer .= $tagEnd . $lnEnd;
     }
     // Generate stylesheet declarations
     foreach ($document->_style as $type => $content) {
         $buffer .= $tab . '<style type="' . $type . '">' . $lnEnd;
         // This is for full XHTML support.
         if ($document->_mime != 'text/html') {
             $buffer .= $tab . $tab . '<![CDATA[' . $lnEnd;
         }
         $buffer .= $content . $lnEnd;
         // See above note
         if ($document->_mime != 'text/html') {
             $buffer .= $tab . $tab . ']]>' . $lnEnd;
         }
         $buffer .= $tab . '</style>' . $lnEnd;
     }
     // Generate script file links
     foreach ($document->_scripts as $strSrc => $strAttr) {
         $buffer .= $tab . '<script src="' . $strSrc . '"';
         if (!is_null($strAttr['mime'])) {
             $buffer .= ' type="' . $strAttr['mime'] . '"';
         }
         if ($strAttr['defer']) {
             $buffer .= ' defer="defer"';
         }
         if ($strAttr['async']) {
             $buffer .= ' async="async"';
         }
         $buffer .= '></script>' . $lnEnd;
     }
     // Generate script declarations
     foreach ($document->_script as $type => $content) {
         $buffer .= $tab . '<script type="' . $type . '">' . $lnEnd;
         // This is for full XHTML support.
         if ($document->_mime != 'text/html') {
             $buffer .= $tab . $tab . '<![CDATA[' . $lnEnd;
         }
         $buffer .= $content . $lnEnd;
         // See above note
         if ($document->_mime != 'text/html') {
             $buffer .= $tab . $tab . ']]>' . $lnEnd;
         }
         $buffer .= $tab . '</script>' . $lnEnd;
     }
     // Generate script language declarations.
     if (count(Text::script())) {
         $buffer .= $tab . '<script type="text/javascript">' . $lnEnd;
         $buffer .= $tab . $tab . '(function() {' . $lnEnd;
         $buffer .= $tab . $tab . $tab . 'var strings = ' . json_encode(Text::script()) . ';' . $lnEnd;
         $buffer .= $tab . $tab . $tab . 'if (typeof Joomla == \'undefined\') {' . $lnEnd;
         $buffer .= $tab . $tab . $tab . $tab . 'Joomla = {};' . $lnEnd;
         $buffer .= $tab . $tab . $tab . $tab . 'Joomla.JText = strings;' . $lnEnd;
         $buffer .= $tab . $tab . $tab . '}' . $lnEnd;
         $buffer .= $tab . $tab . $tab . 'else {' . $lnEnd;
         $buffer .= $tab . $tab . $tab . $tab . 'Joomla.JText.load(strings);' . $lnEnd;
         $buffer .= $tab . $tab . $tab . '}' . $lnEnd;
         $buffer .= $tab . $tab . '})();' . $lnEnd;
         $buffer .= $tab . '</script>' . $lnEnd;
     }
     foreach ($document->_custom as $custom) {
         $buffer .= $tab . $custom . $lnEnd;
     }
     return $buffer;
 }