示例#1
0
 /**
  * draws the form element
  * @param int repeat group counter
  * @return string returns element html
  */
 function render($data, $repeatCounter = 0)
 {
     $name = $this->getHTMLName($repeatCounter);
     $id = $this->getHTMLId($repeatCounter);
     $element = $this->getElement();
     $params =& $this->getParams();
     $arVals = $this->getSubOptionValues();
     $arTxt = $this->getSubOptionLabels();
     $arSelected = (array) $this->getValue($data, $repeatCounter);
     $errorCSS = isset($this->_elementError) && $this->_elementError != '' ? " elementErrorHighlight" : '';
     $attribs = 'class="picklistcontainer' . $errorCSS . "\"";
     $style = ".frompicklist, .topicklist{\n" . "background-color:#efefef;\n" . "padding:5px !important;\n" . "}\n" . "\n" . "div.picklistcontainer{\n" . "width:40%;\n" . "margin-right:10px;\n" . "margin-bottom:10px;\n" . "float:left;\n" . "}\n" . "\n" . ".frompicklist li, .topicklist li, li.picklist{\n" . "background-color:#FFFFFF;\n" . "margin:3px;\n" . "padding:5px !important;\n" . "cursor:move;\n" . "}\n" . "\n" . "li.emptyplicklist{\n" . "background-color:transparent;\n" . "cursor:pointer;\n" . "}";
     FabrikHelperHTML::addStyleDeclaration($style);
     $i = 0;
     $aRoValues = array();
     $fromlist = "from:<ul id=\"{$id}" . "_fromlist\" class=\"frompicklist\">\n";
     $tolist = "to:<ul id=\"{$id}" . "_tolist\" class=\"topicklist\">\n";
     foreach ($arVals as $v) {
         //$tmptxt = addslashes(htmlspecialchars($arTxt[$i]));
         if (!in_array($v, $arSelected)) {
             $fromlist .= "<li id=\"{$id}_value_{$v}\" class=\"picklist\">" . $arTxt[$i] . "</li>\n";
         }
         $i++;
     }
     $i = 0;
     $lookup = array_flip($arVals);
     foreach ($arSelected as $v) {
         if ($v == '' || $v == '-') {
             continue;
         }
         $k = JArrayHelper::getValue($lookup, $v);
         $tmptxt = addslashes(htmlspecialchars(JArrayHelper::getValue($arTxt, $k)));
         $tolist .= "<li id=\"{$id}_value_{$v}\" class=\"{$v}\">" . $tmptxt . "</li>\n";
         $aRoValues[] = $tmptxt;
         $i++;
     }
     if (empty($arSelected)) {
         $fromlist .= "<li class=\"emptyplicklist\">" . JText::_('PLG_ELEMENT_PICKLIST_DRAG_OPTIONS_HERE') . "</li>\n";
     }
     if (empty($aRoValues)) {
         $tolist .= "<li class=\"emptyplicklist\">" . JText::_('PLG_ELEMENT_PICKLIST_DRAG_OPTIONS_HERE') . "</li>\n";
     }
     $fromlist .= "</ul>\n";
     $tolist .= "</ul>\n";
     $str = "<div {$attribs}>{$fromlist}</div><div class='picklistcontainer'>{$tolist}</div>";
     $str .= $this->getHiddenField($name, json_encode($arSelected), $id);
     if (!$this->_editable) {
         return implode(', ', $aRoValues);
     }
     if ($params->get('allowadd', false)) {
         $onlylabel = $params->get('allowadd-onlylabel');
         $str .= $this->getAddOptionFields($onlylabel, $repeatCounter);
     }
     return $str;
 }
示例#2
0
 /**
  * called when the table filters are loaded
  * appends the widget html to the filters
  */
 function onMakeFilters(&$params, &$model)
 {
     if (!is_object($this->getMapElement())) {
         return;
     }
     $app =& JFactory::getApplication();
     $baseContext = $this->getSessionContext();
     $this->model =& $model;
     $f = new stdClass();
     $f->label = $params->get('radius_label', 'Radius search');
     $class = "class=\"inputbox fabrik_filter autocomplete-trigger\"";
     $type = $app->getUserStateFromRequest($baseContext . 'radius_search_type', 'radius_search_type', array('mylocation'));
     $style = $type[0] == 'place' ? 'display:block' : 'display:none';
     $placeElement =& $this->getPlaceElement()->getElement();
     $context = $baseContext . 'radius_search_place-auto-complete';
     $name = "radius_search_place{$this->_counter}-auto-complete";
     $place = $app->getUserStateFromRequest($context, $name);
     $strPlace = "<div class=\"radius_search_place_container\" style=\"{$style};position:relative;\">\r\n\t\t<input name=\"{$name}\" id=\"{$name}\" {$class} value=\"{$place}\"/>";
     $context = $baseContext . 'radius_search_place';
     $name = 'radius_search_place';
     $placeValue = $app->getUserStateFromRequest($context, $name);
     $strPlace .= "\r\n\t\t<input type=\"hidden\" name=\"{$name}\" id=\"{$name}{$this->_counter}\" {$class} value=\"{$placeValue}\"/>\r\n\t\t</div>";
     $style = $type[0] == 'latlon' ? 'display:block' : 'display:none';
     $lat = $app->getUserStateFromRequest($baseContext . 'lat', 'radius_search_lat');
     $lon = $app->getUserStateFromRequest($baseContext . 'lon', 'radius_search_lon');
     $strLatLon = "<div class=\"radius_search_coords_container\" style=\"{$style}\">\r\n\t\t<table><tr><td><label for=\"radius_search_lat\">" . JText::_('PLG_VIEW_RADIUS_LATITUDE') . "</label></td><td><input name=\"radius_search_lat\" value=\"{$lat}\" id=\"radius_search_lat\" {$class} size=\"6\"/></td></tr>\r\n\t\t<label><tr><td><label for=\"radius_search_lon\">" . JText::_('PLG_VIEW_RADIUS_LONGITUDE') . "</label></td><td><input name=\"radius_search_lon\" value=\"{$lon}\" id=\"radius_search_lon\" {$class} size=\"6\"/></td></tr></table></div>";
     $strSlider = $this->slider();
     $checked = $type[0] == 'mylocation' ? 'checked="checked"' : '';
     $options = "<label>" . JText::_('PLG_VIEW_RADIUS_MY_LOCATION') . "<input type=\"radio\" name=\"radius_search_type[]\" value=\"mylocation\" {$checked} /></label><br />";
     $checked = $type[0] == 'place' ? 'checked="checked"' : '';
     $options .= "<label>" . strip_tags($placeElement->label) . "<input type=\"radio\" name=\"radius_search_type[]\" value=\"place\" {$checked} /></label><br />";
     $checked = $type[0] == 'latlon' ? 'checked="checked"' : '';
     $options .= "<label>" . JText::_('PLG_VIEW_RADIUS_COORDINATES') . "<input type=\"radio\" name=\"radius_search_type[]\" value=\"latlon\" {$checked} /></label><br />";
     $active = $app->getUserStateFromRequest($baseContext . 'radius_serach_active', 'radius_search_active');
     if ($active[0] == 1) {
         $yessel = "checked=\"checked\"";
         $nosel = "";
     } else {
         $yessel = "";
         $nosel = "checked=\"checked\"";
     }
     $str = "<div class=\"radus_search\">\r\n\r\n\t\t<label>" . JText::_('PLG_VIEW_RADIUS_ACTIVE') . "<input type=\"radio\" {$yessel} name=\"radius_search_active[]\" value=\"1\" /></label>\r\n\t\t<label>" . JText::_('PLG_VIEW_RADIUS_INACTIVE') . "<input type=\"radio\" {$nosel} name=\"radius_search_active[]\" value=\"0\" /></label>\r\n\t\t<div class=\"radius_search_options\">\r\n\t\t<table class=\"radius_table\" style=\"width:100%\">\r\n\t\t\t<tr>\r\n\t\t\t\t<td>" . JText::_('PLG_VIEW_RADIUS_DISTANCE') . "</td>\r\n\t\t\t\t<td>{$strSlider}</td>\r\n\t\t\t<tr>\r\n\t\t\t\t<td>" . JText::_('PLG_VIEW_RADIUS_FROM') . ":<br />{$options}</td>\r\n\t\t\t\t<td style=\"text-align:left\">{$strPlace} {$strLatLon}\r\n\t\t\t</tr>\r\n\t\t</table>\r\n\t\t</div>\r\n\t\t";
     $str .= "</div>";
     $f->element = $str;
     $f->required = '';
     FabrikHelperHTML::addStyleDeclaration("table.radius_table{border-collapse:collapse;border:0;}\r\n\t\ttable.radius_table td{border:0;}");
     $model->viewfilters[] = $f;
 }
示例#3
0
	/**
	 * return the javascript to create an instance of the class defined in formJavascriptClass
	 * @param object parameters
	 * @param list table model
	 * @param array [0] => string table's form id to contain plugin
	 * @return bool
	 */

	function onLoadJavascriptInstance($params, $model, $args)
	{
		parent::onLoadJavascriptInstance($params, $model, $args);
		FabrikHelperHTML::addStyleDeclaration('.focusClass{border:1px solid red !important;}');
		FabrikHelperHTML::script('media/com_fabrik/js/element.js');
		$listModel = JModel::getInstance('list', 'FabrikFEModel');
		$listModel->setId(JRequest::getVar('listid'));

		$elements = $model->getElements('filtername');
		$pels = $params->get('inline_editable_elements');
		$use = trim($pels) == '' ? array() : explode(",", $pels);
		$els = array();
		$srcs = array();
		foreach ($elements as $key => $val) {
			$key = FabrikString::safeColNameToArrayKey($key);
			if (empty($use) || in_array($key, $use)) {
				$els[$key] = new stdClass();
				$els[$key]->elid = $val->_id;
				$els[$key]->plugin = $val->getElement()->plugin;
				//load in all element js classes
				$val->formJavascriptClass($src);
			}
		}
		FabrikHelperHTML::script($srcs, true);
		$opts = new stdClass();
		$opts->elements = $els;
		$opts->listid = $model->getId();
		$opts->focusClass = 'focusClass';
		$opts->editEvent = $params->get('inline_edit_event', 'dblclick');
		$opts->tabSave = $params->get('inline_tab_save', false);
		$opts->showCancel = $params->get('inline_show_cancel', true);
		$opts->showSave = $params->get('inline_show_save', true);
		$opts->loadFirst = (bool)$params->get('inline_load_first', false);
		$opts = json_encode($opts);
		$formid = 'list_'+$model->getFormModel()->getForm()->id;
		$this->jsInstance = "new FbListInlineEdit($opts)";
		return true;
	}
示例#4
0
 /**
  * Build the radius search HTML
  *
  * @param   array  &$args  Plugin args
  *
  * @return  void
  */
 public function onMakeFilters(&$args)
 {
     if (!is_object($this->getMapElement())) {
         return;
     }
     $model = $this->getModel();
     $params = $this->getParams();
     $f = new stdClass();
     $f->label = FText::_($params->get('radius_label', 'Radius search'));
     FabrikHelperHTML::stylesheet('plugins/fabrik_list/radius_search/radius_search.css');
     $layoutData = new stdClass();
     $layoutData->renderOrder = $this->renderOrder;
     $layoutData->baseContext = $this->getSessionContext();
     $layoutData->defaultSearch = $params->get('default_search', 'mylocation');
     $layoutData->geocodeDefault = $params->get('geocode_default', '');
     $layoutData->unit = $this->getParams()->get('radius_unit', 'km');
     $layoutData->distance = $this->getValue();
     $layoutData->startActive = $params->get('start_active', 0);
     $typeKey = $layoutData->baseContext . 'radius_search_type' . $this->renderOrder;
     $type = $this->app->getUserStateFromRequest($typeKey, 'radius_search_type' . $this->renderOrder, array($layoutData->defaultSearch));
     $layoutData->select = $this->searchSelectList($type);
     $layoutData->type = $type[0];
     list($layoutData->searchLatitude, $layoutData->searchLongitude) = $this->getSearchLatLon();
     $layoutData->geocodeAsYouType = $params->get('geocode_as_type', 1);
     $layoutData->hasGeocode = $params->get('geocode', 1) == 1;
     $layoutData->address = $address = $this->app->getUserStateFromRequest($layoutData->baseContext . 'geocode' . $this->renderOrder, 'radius_search_geocode_field' . $this->renderOrder);
     $lat = $this->app->getUserStateFromRequest($layoutData->baseContext . 'lat' . $this->renderOrder, 'radius_search_lat' . $this->renderOrder);
     $lon = $this->app->getUserStateFromRequest($layoutData->baseContext . 'lon' . $this->renderOrder, 'radius_search_lon' . $this->renderOrder);
     $o = FabrikString::mapStrToCoords($layoutData->geocodeDefault);
     $layoutData->defaultLat = $lat ? $lat : (double) $o->lat;
     $layoutData->defaultLon = $lon ? $lon : (double) $o->long;
     $layoutData->defaultZoom = (int) $o->zoom === 0 ? 7 : (int) $o->zoom;
     $layoutData->lat = $lat;
     $layoutData->lon = $lon;
     $active = $this->app->getUserStateFromRequest($layoutData->baseContext . 'radius_search_active', 'radius_search_active' . $this->renderOrder, array($layoutData->startActive));
     $layoutData->active = $active[0];
     $layout = $this->getLayout('filters');
     $str = $layout->render($layoutData);
     $f->element = $str;
     $f->required = '';
     if ($this->app->input->get('format') !== 'raw') {
         FabrikHelperHTML::addStyleDeclaration("table.radius_table{border-collapse:collapse;border:0;}\n\t\t\ttable.radius_table td{border:0;}");
     }
     JText::script('PLG_VIEW_RADIUS_NO_GEOLOCATION_AVAILABLE');
     JText::script('COM_FABRIK_SEARCH');
     JText::script('PLG_LIST_RADIUS_SEARCH');
     JText::script('PLG_LIST_RADIUS_SEARCH_BUTTON');
     $mapElement = $this->getMapElement();
     $mapName = $mapElement->getFullName(true, false);
     $model->viewfilters[$mapName] = $f;
 }
示例#5
0
 /**
  * add a debug out put section
  * @param mixed string/object $content
  * @param string $title
  */
 function debug($content, $title = 'output:')
 {
     $config =& JComponentHelper::getParams('com_fabrik');
     if ($config->get('use_fabrikdebug') == 0) {
         return;
     }
     if (JRequest::getBool('fabrikdebug', 0, 'request') != 1) {
         return;
     }
     if (JRequest::getVar('format') == 'raw') {
         return;
     }
     echo "<div class=\"fabrikDebugOutputTitle\">{$title}</div>";
     echo "<div class=\"fabrikDebugOutput fabrikDebugHidden\">";
     if (is_object($content) || is_array($content)) {
         echo "<pre>";
         print_r($content);
         echo "</pre>";
     } else {
         echo $content;
     }
     echo "</div>";
     static $debug;
     if (!isset($debug)) {
         $debug = true;
         $document = JFactory::getDocument();
         $style = ".fabrikDebugOutputTitle{padding:5px;background:#efefef;color:#333;border:1px solid #999;cursor:pointer}";
         $style .= ".fabrikDebugOutput{padding:5px;background:#efefef;color:#999;}";
         $style .= ".fabrikDebugOutput pre{padding:5px;background:#efefef;color:#999;}";
         $style .= ".fabrikDebugHidden{display:none}";
         FabrikHelperHTML::addStyleDeclaration($style);
         $script = "head.ready(function() {\r\n\t\t\t\$\$('.fabrikDebugOutputTitle').each(function(title) {\r\n\t\t\t\ttitle.addEvent('click', function(e) {\r\n\t\t\t\t\ttitle.getNext().toggleClass('fabrikDebugHidden');\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t\t})";
         FabrikHelperHTML::addScriptDeclaration($script);
     }
 }
示例#6
0
foreach ($this->rows as $groupedby => $group) {
    if ($this->isGrouped) {
        echo "<li class=\"title\">" . $this->grouptemplates[$groupedby] . "</li>";
    }
    foreach ($group as $this->_row) {
        echo $this->loadTemplate('row');
    }
}
?>
		</ul>
	<?php 
echo $this->nav;
print_r($this->hiddenFields);
?>
</div>
</form>
<?php 
echo $this->table->outro;
?>

<?php 
$doc = JFactory::getDocument();
//$style = $this->params->get('mobile_image') == '' ? 'musiclist' : 'list';
$style = 'list';
$doc->addScriptDeclaration("head.ready(function(){\ndocument.body.addClass('{$style}');\n})");
if ($this->params->get('mobile_image') == '') {
    FabrikHelperHTML::addStyleDeclaration('body.list li.withimage .comment,
	body.list li.withimage .name{
	margin-left:10px !important
	}');
}
示例#7
0
    /**
     * Create the html plupload widget plus css
     * @param string current html output
     * @param int repeat group counter
     * @param array existing files
     * @return modified fileupload html
     */
    protected function plupload($str, $repeatCounter, $values)
    {
        FabrikHelperHTML::stylesheet(COM_FABRIK_LIVESITE . 'media/com_fabrik/css/slider.css');
        $id = $this->getHTMLId($repeatCounter);
        $params =& $this->getParams();
        $runtimes = $params->get('ajax_runtime', 'html5');
        $this->pluploadLRuntimes($runtimes);
        $pstr = '<!-- UPLOAD CONTAINER -->
		<div id="' . $id . '-widgetcontainer">';
        if ($params->get('fileupload_crop', 0)) {
            $pstr .= '
		<canvas id="' . $id . '-widget" width="400" height="400"></canvas>
<div class="zoom" style="float:left;margin-top:10px;padding-right:10x;width:200px">
zoom:
	<div class="fabrikslider-line" style="width: 100px;float:left;">
		<div class="knob"></div>
	</div>
	<input name="zoom-val" value="" size="3" />
</div>
<div class="rotate" style="float:left;margin-top:10px;width:200px">' . JText::_('PLG_ELEMENT_FILEUPLOAD_ROTATE') . ':
	<div class="fabrikslider-line" style="width: 100px;float:left;">
		<div class="knob"></div>
	</div>
	<input name="rotate-val" value="" size="3" />

</div>
<div  style="text-align: right;float:right;margin-top:10px; width: 205px">
	<input type="button" class="button" name="close-crop" value="' . JText::_('CLOSE') . '" />
	</div>
</div>';
        }
        $pstr .= '

		<div class="plupload_container fabrikHide" id="' . $id . '_container">
			<div class="plupload">
				<div class="plupload_header">
					<div class="plupload_header_content">
						<div class="plupload_header_title">' . JText::_('PLG_ELEMENT_FILEUPLOAD_PLUP_HEADING') . '</div>
						<div class="plupload_header_text">' . JText::_('PLG_ELEMENT_FILEUPLOAD_PLUP_SUB_HEADING') . '</div>
					</div>
				</div>
				<div class="plupload_content">
					<div class="plupload_filelist_header">
						<div class="plupload_file_name">' . JText::_('PLG_ELEMENT_FILEUPLOAD_FILENAME') . '</div>
					<div class="plupload_file_action">&nbsp;</div>
					<div class="plupload_file_status"><span>' . JText::_('PLG_ELEMENT_FILEUPLOAD_STATUS') . '</span></div>
					<div class="plupload_file_size">' . JText::_('PLG_ELEMENT_FILEUPLOAD_SIZE') . '</div>
					<div class="plupload_clearer">&nbsp;</div>
				</div>
				<ul class="plupload_filelist" id="' . $id . '_dropList">
					<li class="plupload_droptext">' . JText::_('PLG_ELEMENT_FILEUPLOAD_DRAG_FILES_HERE') . '</li>
				</ul>
				<div class="plupload_filelist_footer">
					<div class="plupload_file_name">
						<div class="plupload_buttons">
							<a id="' . $id . '_browseButton" class="plupload_button plupload_add" href="#">' . JText::_('PLG_ELEMENT_FILEUPLOAD_ADD_FILES') . '</a>
							<a class="plupload_button plupload_start plupload_disabled" href="#">' . JText::_('PLG_ELEMENT_FILEUPLOAD_START_UPLOAD') . '</a>
						</div>
						<span class="plupload_upload_status"></span>
					</div>
					<div class="plupload_file_action"></div>
					<div class="plupload_file_status">
						<span class="plupload_total_status">0%</span>
					</div>
					<div class="plupload_file_size">
						<span class="plupload_total_file_size">0 b</span>
					</div>
					<div class="plupload_progress">
						<div class="plupload_progress_container">
							<div class="plupload_progress_bar"></div>
						</div>
					</div>
					<div class="plupload_clearer">&nbsp;</div>
				</div>
			</div>
		</div>
		</div>

<!-- FALLBACK; SHOULD LOADING OF PLUPLOAD FAIL -->
<div class="plupload_fallback">' . JText::_('PLG_ELEMENT_FILEUPLOAD_FALLBACK_MESSAGE') . '
   <br />
   ' . $str . '
</div>';
        $w = (int) $params->get('ajax_dropbox_width', 300);
        $h = (int) $params->get('ajax_dropbox_hight', 200);
        FabrikHelperHTML::stylesheet(COM_FABRIK_LIVESITE . 'plugins/fabrik_element/fileupload/plupload/css/plupload.queue.css');
        FabrikHelperHTML::addStyleDeclaration(".dropList{background:#aaa; width:" . $w . "px; height:" . $h . "px;}");
        return $pstr;
    }