Beispiel #1
0
 /**
  * Get the rendering of this field type for a repeatable (grid) display,
  * e.g. in a view listing many item (typically a "browse" task)
  *
  * @since 2.0
  *
  * @return  string  The field HTML
  */
 public function getRepeatable()
 {
     $class = $this->element['class'] ? (string) $this->element['class'] : '';
     return '<span class="' . $this->id . ' ' . $class . '">' . htmlspecialchars(FOFFormFieldList::getOptionName($this->getOptions(), $this->value), ENT_COMPAT, 'UTF-8') . '</span>';
 }
 /**
  * Gets the active option's label given an array of JHtml options
  *
  * @param   array   $data      The JHtml options to parse
  * @param   mixed   $selected  The currently selected value
  * @param   string  $groupKey  Group name
  * @param   string  $optKey    Key name
  * @param   string  $optText   Value name
  *
  * @return  mixed   The label of the currently selected option
  */
 public static function getOptionName($data, $selected = null, $groupKey = 'items', $optKey = 'value', $optText = 'text')
 {
     $ret = null;
     foreach ($data as $dataKey => $group) {
         $label = $dataKey;
         $noGroup = is_int($dataKey);
         if (is_array($group)) {
             $subList = $group[$groupKey];
             $label = $group[$optText];
             $noGroup = false;
         } elseif (is_object($group)) {
             // Sub-list is in a property of an object
             $subList = $group->{$groupKey};
             $label = $group->{$optText};
             $noGroup = false;
         } else {
             throw new RuntimeException('Invalid group contents.', 1);
         }
         if ($noGroup) {
             $label = '';
         }
         $match = FOFFormFieldList::getOptionName($data, $selected, $optKey, $optText);
         if (!is_null($match)) {
             $ret = array('group' => $label, 'item' => $match);
             break;
         }
     }
     return $ret;
 }
 /**
  * Get the rendering of this field type for static display, e.g. in a single
  * item view (typically a "read" task).
  *
  * @since 2.0
  *
  * @return  string  The field HTML
  */
 public function getStatic()
 {
     $class = $this->element['class'] ? ' class="' . (string) $this->element['class'] . '"' : '';
     return '<span id="' . $this->id . '" ' . $class . '>' . htmlspecialchars(FOFFormFieldList::getOptionName($this->getOptions(), $this->value), ENT_COMPAT, 'UTF-8') . '</span>';
 }
 /**
  * Get the rendering of this field type for a repeatable (grid) display,
  * e.g. in a view listing many item (typically a "browse" task)
  *
  * @since 2.0
  *
  * @return  string  The field HTML
  */
 public function getRepeatable()
 {
     $class = $this->element['class'] ? (string) $this->element['class'] : '';
     $params = $this->getOptions();
     $db = FOFPlatform::getInstance()->getDbo();
     $query = $db->getQuery(true);
     $query->select('a.id AS value, a.title AS text');
     $query->from('#__viewlevels AS a');
     $query->group('a.id, a.title, a.ordering');
     $query->order('a.ordering ASC');
     $query->order($query->qn('title') . ' ASC');
     // Get the options.
     $db->setQuery($query);
     $options = $db->loadObjectList();
     // If params is an array, push these options to the array
     if (is_array($params)) {
         $options = array_merge($params, $options);
     } elseif ($params) {
         array_unshift($options, JHtml::_('select.option', '', JText::_('JOPTION_ACCESS_SHOW_ALL_LEVELS')));
     }
     return '<span class="' . $this->id . ' ' . $class . '">' . htmlspecialchars(FOFFormFieldList::getOptionName($options, $this->value), ENT_COMPAT, 'UTF-8') . '</span>';
 }
Beispiel #5
0
    protected function getOptions()
    {
        echo '<script type="text/javascript">

					var article_content_params = "{article_name} Article name <br>" +
						                             "{article_description} Article description";

					var event_content_params = "{event_name} Event name <br>" +
					                           "{event_description} Event description";

					var form_content_params = "{form_name} Form name <br>" +
					                          "{form_description} Form description";

					var product_content_params = "{product_name} Name of product <br>" +
					                             "{product_description} Description of product <br>" +
					                             "{product_attribute} Product attribute <br>" +
					                             "{product_quantity} Product quantity <br>" +
					                             "{addtocart_button} Button Add to cart <br>" +
					                             "{product_image} Product image <br>" +
					                             "{product_price} Product price <br>";

					var article_content_default = "<table>&trade;" +
														"<tbody>&trade;" +
															"<tr>&trade;" +
																"<td>{article_name}</td>&trade;" +
															"</tr>&trade;" +
															"<tr>&trade;" +
																"<td>{article_description}</td>&trade;" +
															"</tr>&trade;" +
														"</tbody>&trade;" +
													"</table>&trade;";

					article_content_default = article_content_default.replace(/</g,"&lt;")
																		.replace(/>/g,"&gt;")
																		.replace(/&trade;/g, "<br/>");

					var event_content_default = "<table>&trade;" +
													"<tbody>&trade;" +
														"<tr>&trade;" +
															"<td>{session_title}</td>&trade;" +
														"</tr>&trade;" +
														"<tr>&trade;" +
															"<td>{session_date}</td>&trade;" +
														"</tr>&trade;" +
														"<tr>&trade;" +
															"<td>{event_title}</td>&trade;" +
														"</tr>&trade;" +
														"<tr>&trade;" +
															"<td>{event_description}</td>&trade;" +
														"</tr>&trade;" +
														"<tr>&trade;" +
															"<td>{event_button}</td>&trade;" +
														"</tr>&trade;" +
													"</tbody>&trade;" +
											    "</table>&trade;";

					event_content_default = event_content_default.replace(/</g,"&lt;")
																	.replace(/>/g,"&gt;")
																	.replace(/&trade;/g, "<br/>");

					var form_content_default = "<table>&trade;" +
													"<tbody>&trade;" +
														"<tr>&trade;" +
															"<td colspan=2>{form_title}</td>&trade;" +
														"</tr>&trade;" +
														"<tr>&trade;" +
															"<td>{form_field}</td>&trade;" +
														"<td>{form_field}</td>&trade;" +
														"</tr>&trade;" +
														"<tr>&trade;" +
															"<td colspan=2>{form_field}</td>&trade;" +
														"</tr>&trade;" +
														"<tr>&trade;" +
															"<td colspan=2>{form_button}</td>&trade;" +
														"</tr>&trade;" +
													"</tbody>&trade;" +
												"</table>&trade;";

					form_content_default = form_content_default.replace(/</g,"&lt;")
																	.replace(/>/g,"&gt;")
																	.replace(/&trade;/g, "<br/>");

					var product_content_default = "<table>&trade;" +
														"<tbody>&trade;" +

															"<tr>&trade;" +
																"<td rowspan=4>{product_image}</td>;" +
																"<td colspan=2>{product_name}</td>&trade;" +
															"</tr>&trade;" +
															"<tr>&trade;" +
																"<td colspan=2>{product_description}</td>&trade;" +
															"</tr>&trade;" +
															"<tr>&trade;" +
																"<td colspan=2>{product_attribute}</td>&trade;" +
															"</tr>&trade;" +
															"<tr>&trade;" +
																"<td>{product_price}</td>&trade;" +
																"<td>{product_quantity}</td>&trade;" +
																"<td>{addtocart_button}</td>&trade;" +
															"</tr>&trade;" +
														"</tbody>&trade;" +
													"</table>&trade;";


					product_content_default = product_content_default.replace(/</g,"&lt;")
																		.replace(/>/g,"&gt;")
																		.replace(/&trade;/g, "<br/>");

					window.onload = function()
					{
						var x = document.getElementById("content_params").getElementsByTagName("p");
						var y = document.getElementById("content_default").getElementsByTagName("p");
						var z = document.getElementById("section");

						setContent(x[0], y[0], z);

						z.onchange = function()
						{
							setContent(x[0], y[0], z);
						};
					};

					function setContent(content_params_area, content_default_area, section)
					{
						if (section.value == "article")
						{
							content_params_area.innerHTML = article_content_params;
							content_default_area.innerHTML = article_content_default;
						}
						else if (section.value == "event")
						{
							content_params_area.innerHTML = event_content_params;
							content_default_area.innerHTML = event_content_default;
						}
						else if (section.value == "form")
						{
							content_params_area.innerHTML = form_content_params;
							content_default_area.innerHTML = form_content_default;
						}
						else if (section.value == "product")
						{
							content_params_area.innerHTML = product_content_params;
							content_default_area.innerHTML = product_content_default;
						}
					}

				</script>';
        return parent::getOptions();
    }
Beispiel #6
0
 /**
  * Method to get the field options.
  *
  * @return  array  The field option objects.
  */
 protected function getOptions()
 {
     $options = array();
     // Initialize some field attributes.
     $key = $this->element['key_field'] ? (string) $this->element['key_field'] : 'value';
     $value = $this->element['value_field'] ? (string) $this->element['value_field'] : (string) $this->element['name'];
     $translate = $this->element['translate'] ? (string) $this->element['translate'] : false;
     $applyAccess = $this->element['apply_access'] ? (string) $this->element['apply_access'] : 'false';
     $modelName = (string) $this->element['model'];
     $nonePlaceholder = (string) $this->element['none'];
     if (!empty($nonePlaceholder)) {
         $options[] = JHtml::_('select.option', JText::_($nonePlaceholder), null);
     }
     // Process field atrtibutes
     $applyAccess = strtolower($applyAccess);
     $applyAccess = in_array($applyAccess, array('yes', 'on', 'true', '1'));
     // Explode model name into model name and prefix
     $parts = FOFInflector::explode($modelName);
     $mName = ucfirst(array_pop($parts));
     $mPrefix = FOFInflector::implode($parts);
     // Get the model object
     $config = array('savestate' => 0);
     $model = FOFModel::getTmpInstance($mName, $mPrefix, $config);
     if ($applyAccess) {
         $model->applyAccessFiltering();
     }
     // Process state variables
     foreach ($this->element->children() as $stateoption) {
         // Only add <option /> elements.
         if ($stateoption->getName() != 'state') {
             continue;
         }
         $stateKey = (string) $stateoption['key'];
         $stateValue = (string) $stateoption;
         $model->setState($stateKey, $stateValue);
     }
     // Set the query and get the result list.
     $items = $model->getItemList(true);
     // Build the field options.
     if (!empty($items)) {
         foreach ($items as $item) {
             if ($translate == true) {
                 $options[] = JHtml::_('select.option', $item->{$key}, JText::_($item->{$value}));
             } else {
                 $options[] = JHtml::_('select.option', $item->{$key}, $item->{$value});
             }
         }
     }
     // Merge any additional options in the XML definition.
     $options = array_merge(parent::getOptions(), $options);
     return $options;
 }
Beispiel #7
0
 /**
  * Get the rendering of this field type for a repeatable (grid) display,
  * e.g. in a view listing many item (typically a "browse" task)
  *
  * @since 2.0
  *
  * @return  string  The field HTML
  */
 public function getRepeatable()
 {
     $class = $this->element['class'] ? (string) $this->element['class'] : '';
     $db = JFactory::getDbo();
     $query = $db->getQuery(true);
     $query->select('a.id AS value, a.title AS text');
     $query->from('#__usergroups AS a');
     $query->group('a.id, a.title');
     $query->order('a.id ASC');
     $query->order($query->qn('title') . ' ASC');
     // Get the options.
     $db->setQuery($query);
     $options = $db->loadObjectList();
     return '<span class="' . $this->id . ' ' . $class . '">' . htmlspecialchars(FOFFormFieldList::getOptionName($options, $this->value), ENT_COMPAT, 'UTF-8') . '</span>';
 }
 /**
  * Get the rendering of this field type for a repeatable (grid) display,
  * e.g. in a view listing many item (typically a "browse" task)
  *
  * @since 2.0
  *
  * @return  string  The field HTML
  */
 public function getRepeatable()
 {
     $show_link = false;
     $link_url = '';
     $class = $this->element['class'] ? (string) $this->element['class'] : '';
     if ($this->element['show_link'] == 'true') {
         $show_link = true;
     }
     if ($this->element['url']) {
         $link_url = $this->element['url'];
     } else {
         $show_link = false;
     }
     if ($show_link && $this->item instanceof FOFTable) {
         // Replace [ITEM:ID] in the URL with the item's key value (usually:
         // the auto-incrementing numeric ID)
         $keyfield = $this->item->getKeyName();
         $replace = $this->item->{$keyfield};
         $link_url = str_replace('[ITEM:ID]', $replace, $link_url);
         // Replace other field variables in the URL
         $fields = $this->item->getFields();
         foreach ($fields as $fielddata) {
             $fieldname = $fielddata->Field;
             $search = '[ITEM:' . strtoupper($fieldname) . ']';
             $replace = $this->item->{$fieldname};
             $link_url = str_replace($search, $replace, $link_url);
         }
     } else {
         $show_link = false;
     }
     $html = '<span class="' . $this->id . ' ' . $class . '">';
     if ($show_link) {
         $html .= '<a href="' . $link_url . '">';
     }
     $html .= htmlspecialchars(FOFFormFieldList::getOptionName($this->getOptions(), $this->value), ENT_COMPAT, 'UTF-8');
     if ($show_link) {
         $html .= '</a>';
     }
     $html .= '</span>';
     return $html;
 }