PATH:
home
/
centosnipponia
/
public_html
/
nipponiacom2
/
caribe
/
libraries
/
f0f
/
form
/
field
<?php /** * @package FrameworkOnFramework * @subpackage form * @copyright Copyright (C) 2010 - 2015 Nicholas K. Dionysopoulos / Akeeba Ltd. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ // Protect from unauthorized access defined('F0F_INCLUDED') or die; /** * Form Field class for F0F * Relation list * * @package FrameworkOnFramework * @since 2.0 */ class F0FFormFieldRelation extends F0FFormFieldList { /** * 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() { return $this->getRepeatable(); } /** * 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'] : $this->id; $relationclass = $this->element['relationclass'] ? (string) $this->element['relationclass'] : ''; $value_field = $this->element['value_field'] ? (string) $this->element['value_field'] : 'title'; $translate = $this->element['translate'] ? (string) $this->element['translate'] : false; $link_url = $this->element['url'] ? (string) $this->element['url'] : false; if (!($link_url && $this->item instanceof F0FTable)) { $link_url = false; } if ($this->element['empty_replacement']) { $empty_replacement = (string) $this->element['empty_replacement']; } $relationName = F0FInflector::pluralize($this->name); $relations = $this->item->getRelations()->getMultiple($relationName); foreach ($relations as $relation) { $html = '<span class="' . $relationclass . '">'; if ($link_url) { $keyfield = $relation->getKeyName(); $this->_relationId = $relation->$keyfield; $url = $this->parseFieldTags($link_url); $html .= '<a href="' . $url . '">'; } $value = $relation->get($relation->getColumnAlias($value_field)); // Get the (optionally formatted) value if (!empty($empty_replacement) && empty($value)) { $value = JText::_($empty_replacement); } if ($translate == true) { $html .= JText::_($value); } else { $html .= $value; } if ($link_url) { $html .= '</a>'; } $html .= '</span>'; $rels[] = $html; } $html = '<span class="' . $class . '">'; $html .= implode(', ', $rels); $html .= '</span>'; return $html; } /** * Method to get the field options. * * @return array The field option objects. */ protected function getOptions() { $options = array(); $this->value = array(); $value_field = $this->element['value_field'] ? (string) $this->element['value_field'] : 'title'; $input = new F0FInput; $component = ucfirst(str_replace('com_', '', $input->getString('option'))); $view = ucfirst($input->getString('view')); $relation = F0FInflector::pluralize((string) $this->element['name']); $model = F0FModel::getTmpInstance(ucfirst($relation), $component . 'Model'); $table = $model->getTable(); $key = $table->getKeyName(); $value = $table->getColumnAlias($value_field); foreach ($model->getItemList(true) as $option) { $options[] = JHtml::_('select.option', $option->$key, $option->$value); } if ($id = F0FModel::getAnInstance($view)->getId()) { $table = F0FTable::getInstance($view, $component . 'Table'); $table->load($id); $relations = $table->getRelations()->getMultiple($relation); foreach ($relations as $item) { $this->value[] = $item->getId(); } } return $options; } /** * Replace string with tags that reference fields * * @param string $text Text to process * * @return string Text with tags replace */ protected function parseFieldTags($text) { $ret = $text; // 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; $ret = str_replace('[ITEM:ID]', $replace, $ret); // Replace the [ITEMID] in the URL with the current Itemid parameter $ret = str_replace('[ITEMID]', JFactory::getApplication()->input->getInt('Itemid', 0), $ret); // Replace the [RELATION:ID] in the URL with the relation's key value $ret = str_replace('[RELATION:ID]', $this->_relationId, $ret); // Replace other field variables in the URL $fields = $this->item->getTableFields(); foreach ($fields as $fielddata) { $fieldname = $fielddata->Field; if (empty($fieldname)) { $fieldname = $fielddata->column_name; } $search = '[ITEM:' . strtoupper($fieldname) . ']'; $replace = $this->item->$fieldname; $ret = str_replace($search, $replace, $ret); } return $ret; } }
[+]
..
[-] accesslevel.php
[edit]
[-] actions.php
[edit]
[-] button.php
[edit]
[-] cachehandler.php
[edit]
[-] calendar.php
[edit]
[-] captcha.php
[edit]
[-] checkbox.php
[edit]
[-] checkboxes.php
[edit]
[-] components.php
[edit]
[-] editor.php
[edit]
[-] email.php
[edit]
[-] groupedbutton.php
[edit]
[-] groupedlist.php
[edit]
[-] hidden.php
[edit]
[-] image.php
[edit]
[-] imagelist.php
[edit]
[-] integer.php
[edit]
[-] language.php
[edit]
[-] list.php
[edit]
[-] media.php
[edit]
[-] model.php
[edit]
[-] ordering.php
[edit]
[-] password.php
[edit]
[-] plugins.php
[edit]
[-] published.php
[edit]
[-] radio.php
[edit]
[-] relation.php
[edit]
[-] rules.php
[edit]
[-] selectrow.php
[edit]
[-] sessionhandler.php
[edit]
[-] spacer.php
[edit]
[-] sql.php
[edit]
[-] tag.php
[edit]
[-] tel.php
[edit]
[-] text.php
[edit]
[-] textarea.php
[edit]
[-] timezone.php
[edit]
[-] title.php
[edit]
[-] url.php
[edit]
[-] user.php
[edit]
[-] usergroup.php
[edit]
[-] .htaccess.disabled
[edit]