/** * Display * * @param string $tpl Template * * @return void */ public function display($tpl = null) { FabrikHelperHTML::framework(); $app = JFactory::getApplication(); $input = $app->input; $state = $this->get('State'); $item = $this->get('Item'); $document = JFactory::getDocument(); $srcs = array('media/com_fabrik/js/icons.js', 'media/com_fabrik/js/icongen.js', 'media/com_fabrik/js/canvas.js', 'media/com_fabrik/js/history.js', 'media/com_fabrik/js/keynav.js', 'media/com_fabrik/js/tabs.js', 'media/com_fabrik/js/pages.js', 'media/com_fabrik/js/frontpackage.js'); FabrikHelperHTML::script($srcs); FabrikHelperHTML::stylesheet('media/com_fabrik/css/package.css'); $canvas = $item->params->get('canvas'); // $$$ rob 08/11/2011 test if component name set but still rendering // in option=com_fabrik then we should use fabrik as the package if ($input->get('option') === 'com_fabrik') { $item->component_name = 'fabrik'; } $opts = JArrayHelper::getvalue($canvas, 'options', array()); $tabs = JArrayHelper::getValue($canvas, 'tabs', array('Page 1')); $tabs = json_encode($tabs); $d = new stdClass(); $layout = JArrayHelper::getValue($canvas, 'layout', $d); $layout = json_encode(JArrayHelper::getValue($canvas, 'layout', $d)); $id = $this->get('State')->get('package.id'); $script = "window.addEvent('fabrik.loaded', function() {\n\t\t\tnew FrontPackage({\n\t\ttabs : {$tabs},\n\t\ttabelement : 'packagemenu',\n\t\tpagecontainer : 'packagepages',\n\t\tlayout: {$layout},\n\t\t'packageId': {$id},\n\t\t'package':'{$item->component_name}'\n\t});\n\t\t});"; FabrikHelperHTML::addScriptDeclaration($script); // Force front end templates $this->_basePath = COM_FABRIK_FRONTEND . '/views'; $tmpl = !isset($item->template) ? 'default' : $item->template; $this->addTemplatePath($this->_basePath . '/' . $this->_name . '/tmpl/' . $tmpl); $text = $this->loadTemplate(); FabrikHelperHTML::runConentPlugins($text); echo $text; }
/** * Sets up HTML to be injected into the form's bottom * * @param object $params params * @param object $formModel form model * * @return void */ public function getBottomContent($params, $formModel) { if (!$this->show($params, $formModel)) { return; } $app = JFactory::getApplication(); $formId = $formModel->getForm()->id; $mode = JString::strtolower(JRequest::getCmd('view')); $this->ids = $this->getNavIds($formModel); $linkStartPrev = $this->ids->index == 0 ? ' disabled' : ''; $linkNextEnd = $this->ids->index == $this->ids->lastKey ? ' disabled' : ''; if ($app->isAdmin()) { $url = 'index.php?option=com_fabrik&view=' . $mode . '&formid=' . $formId . '&rowid='; } else { $url = 'index.php?option=com_fabrik&view=' . $mode . '&formid=' . $formId . '&rowid='; } $ajax = (bool) $params->get('paginate_ajax', true); $firstLink = $linkStartPrev ? '<span><<</span>' . JText::_('COM_FABRIK_START') : '<a href="' . JRoute::_($url . $this->ids->first) . '" class="pagenav paginateFirst ' . $linkStartPrev . '"><span><<</span>' . JText::_('COM_FABRIK_START') . '</a>'; $prevLink = $linkStartPrev ? '<span><</span>' . JText::_('COM_FABRIK_PREV') : '<a href="' . JRoute::_($url . $this->ids->prev) . '" class="pagenav paginatePrevious ' . $linkStartPrev . '"><span><</span>' . JText::_('COM_FABRIK_PREV') . '</a>'; $nextLink = $linkNextEnd ? JText::_('COM_FABRIK_NEXT') . '<span>></span>' : '<a href="' . JRoute::_($url . $this->ids->next) . '" class="pagenav paginateNext' . $linkNextEnd . '">' . JText::_('COM_FABRIK_NEXT') . '<span>></span></a>'; $endLink = $linkNextEnd ? JText::_('COM_FABRIK_END') . '<span>>></span>' : '<a href="' . JRoute::_($url . $this->ids->last) . '" class="pagenav paginateLast' . $linkNextEnd . '">' . JText::_('COM_FABRIK_END') . '<span>>></span></a>'; $this->_data = '<ul id="fabrik-from-pagination" class="pagination"> <li>' . $firstLink . '</li> <li>' . $prevLink . '</li> <li>' . $nextLink . '</li> <li>' . $endLink . '</li> </ul>'; FabrikHelperHTML::stylesheet('plugins/fabrik_form/paginate/paginate.css'); return true; }
/** * Draws the html form element * * @param array $data to preopulate element with * @param int $repeatCounter repeat group counter * * @return string elements html */ public function render($data, $repeatCounter = 0) { FabrikHelperHTML::stylesheet(COM_FABRIK_LIVESITE . 'media/com_fabrik/css/slider.css'); $name = $this->getHTMLName($repeatCounter); $id = $this->getHTMLId($repeatCounter); $params = $this->getParams(); $width = (int) $params->get('slider_width', 250); $element = $this->getElement(); $val = $this->getValue($data, $repeatCounter); if (!$this->isEditable()) { return $val; } $labels = array_filter(explode(',', $params->get('slider-labels'))); $str = array(); $str[] = '<div id="' . $id . '" class="fabrikSubElementContainer">'; FabrikHelperHTML::addPath(COM_FABRIK_BASE . 'plugins/fabrik_element/slider/images/', 'image', 'form', false); $outsrc = FabrikHelperHTML::image('clear_rating_out.png', 'form', $this->tmpl, array(), true); if ($params->get('slider-shownone')) { $str[] = '<div class="clearslider_cont"><img src="' . $outsrc . '" style="cursor:pointer;padding:3px;" alt="' . JText::_('PLG_ELEMENT_SLIDER_CLEAR') . '" class="clearslider" /></div>'; } $str[] = '<div class="slider_cont" style="width:' . $width . 'px;">'; if (count($labels) > 0) { $spanwidth = floor(($width - 2 * count($labels)) / count($labels)); $str[] = '<ul class="slider-labels" style="width:' . $width . 'px;">'; for ($i = 0; $i < count($labels); $i++) { if ($i == ceil(floor($labels) / 2)) { $align = 'center'; } switch ($i) { case 0: $align = 'left'; break; case 1: default: $align = 'center'; break; case count($labels) - 1: $align = 'right'; break; } $str[] = '<li style="width:' . $spanwidth . 'px;text-align:' . $align . ';">' . $labels[$i] . '</li>'; } $str[] = '</ul>'; } $str[] = '<div class="fabrikslider-line" style="width:' . $width . 'px">'; $str[] = '<div class="knob"></div>'; $str[] = '</div>'; $str[] = '<input type="hidden" class="fabrikinput" name="' . $name . '" value="' . $val . '" />'; $str[] = '<div class="slider_output">' . $val . '</div>'; $str[] = '</div>'; $str[] = '</div>'; return implode("\n", $str); }
/** * draws the form element * @param array data to preopulate element with * @param int repeat group counter * @return string returns element html */ function render($data, $repeatCounter = 0) { FabrikHelperHTML::stylesheet(COM_FABRIK_LIVESITE.'media/com_fabrik/css/slider.css'); $name = $this->getHTMLName($repeatCounter); $id = $this->getHTMLId($repeatCounter); $params =& $this->getParams(); $width = $params->get('slider_width', 250); $element = $this->getElement(); $val = $this->getValue($data, $repeatCounter); if (!$this->_editable) { return $val; } $imagepath = COM_FABRIK_LIVESITE.'/plugins/fabrik_element/slider/images/'; $labels = array_filter(explode(',', $params->get('slider-labels'))); $str = "<div class=\"fabrikSubElementContainer\" id=\"$id\">"; FabrikHelperHTML::addPath(JPATH_SITE.'/plugins/fabrik_element/slider/images/', 'image', 'form', false); $outsrc = FabrikHelperHTML::image('clear_rating_out.png', 'form', $this->tmpl, '', true); if ($params->get('slider-shownone')) { $str .= "<div class=\"clearslider_cont\"><img src=\"$outsrc\" style=\"cursor:pointer;padding:3px;\" alt=\"clear\" class=\"clearslider\" /></div>"; } $str .="<div class=\"slider_cont\" style=\"width:{$width}px;\">\n"; if (count($labels) > 0) { $spanwidth = floor(($width - (2 * count($labels))) /count($labels)); $str .= "<ul class=\"slider-labels\" style=\"width:{$width}px;\">\n"; for ($i=0; $i < count($labels); $i++) { if ($i == ceil(floor($labels)/2)) { $align = 'center'; } switch($i) { case 0: $align = 'left'; break; case 1: default: $align = 'center'; break; case count($labels) -1: $align = 'right'; break; } $str .= "<li style=\"width:{$spanwidth}px;text-align:$align;\">".$labels[$i]."</li>\n"; } $str .= "</ul>\n"; } $str .= "<div class=\"fabrikslider-line\" style=\"width:{$width}px\">\n<div class=\"knob\"></div>\n</div>\n"; $str .= "<input type=\"hidden\" class=\"fabrikinput\" name=\"$name\" value=\"$val\"/>\n"; $str .= "<div class=\"slider_output\">$val</div>\n"; $str .= "</div>"; return $str; }
/** * Draws the html form element * * @param array $data To pre-populate element with * @param int $repeatCounter Repeat group counter * * @return string elements html */ public function render($data, $repeatCounter = 0) { FabrikHelperHTML::stylesheet(COM_FABRIK_LIVESITE . 'media/com_fabrik/css/slider.css'); $params = $this->getParams(); $width = (int) $params->get('slider_width', 250); $val = $this->getValue($data, $repeatCounter); if (!$this->isEditable()) { return $val; } $labels = explode(',', $params->get('slider-labels')); FabrikHelperHTML::addPath(COM_FABRIK_BASE . 'plugins/fabrik_element/slider/images/', 'image', 'form', false); $layout = $this->getLayout('form'); $layoutData = new stdClass(); $layoutData->id = $this->getHTMLId($repeatCounter); $layoutData->name = $this->getHTMLName($repeatCounter); $layoutData->value = $val; $layoutData->width = $width; $layoutData->j3 = FabrikWorker::j3(); $layoutData->showNone = $params->get('slider-shownone'); $layoutData->outSrc = FabrikHelperHTML::image('clear_rating_out.png', 'form', $this->tmpl, array(), true); $layoutData->labels = $labels; $layoutData->spanWidth = floor(($width - 2 * count($labels)) / count($labels)); $layoutData->align = array(); for ($i = 0; $i < count($labels); $i++) { switch ($i) { case 0: $align = 'left'; break; case count($labels) - 1: $align = 'right'; break; case 1: default: $align = 'center'; break; } $layoutData->align[] = $align; } return $layout->render($layoutData); }
/** * Draws the html form element * * @param array $data To pre-populate element with * @param int $repeatCounter Repeat group counter * * @return string elements html */ public function render($data, $repeatCounter = 0) { $values = $this->getSubOptionValues(); $labels = $this->getSubOptionLabels(); $selected = (array) $this->getValue($data, $repeatCounter); $i = 0; $to = array(); $from = array(); foreach ($values as $v) { if (!in_array($v, $selected)) { $from[$v] = $labels[$i]; } $i++; } $i = 0; $lookup = array_flip($values); foreach ($selected as $v) { if ($v == '' || $v == '-' || $v == '[""]') { continue; } $k = FArrayHelper::getValue($lookup, $v); $tmpTxt = addslashes(htmlspecialchars(FArrayHelper::getValue($labels, $k))); $to[$v] = $tmpTxt; $i++; } if (!$this->isEditable()) { return implode(', ', $to); } FabrikHelperHTML::stylesheet(COM_FABRIK_LIVESITE . 'plugins/fabrik_element/picklist/picklist.css'); $layout = $this->getLayout('form'); $layoutData = new stdClass(); $layoutData->id = $this->getHTMLId($repeatCounter); $layoutData->errorCSS = $this->elementError != '' ? ' elementErrorHighlight' : ''; $layoutData->from = $from; $layoutData->to = $to; $layoutData->name = $this->getHTMLName($repeatCounter); $layoutData->value = json_encode($selected); $layoutData->addOptionsUi = $this->getAddOptionFields($repeatCounter); return $layout->render($layoutData); }
function display($tpl = null) { FabrikHelperHTML::framework(); $state = $this->get('State'); $item = $this->get('Item'); $document = JFactory::getDocument(); FabrikHelperHTML::script('media/com_fabrik/js/icons.js', true); FabrikHelperHTML::script('media/com_fabrik/js/icongen.js', true); FabrikHelperHTML::script('media/com_fabrik/js/canvas.js', true); FabrikHelperHTML::script('media/com_fabrik/js/history.js', true); FabrikHelperHTML::script('media/com_fabrik/js/keynav.js', true); FabrikHelperHTML::script('media/com_fabrik/js/tabs.js', true); FabrikHelperHTML::script('media/com_fabrik/js/pages.js', true); FabrikHelperHTML::script('media/com_fabrik/js/frontpackage.js', true); FabrikHelperHTML::stylesheet('media/com_fabrik/css/package.css'); $canvas = $item->params->get('canvas'); $opts = JArrayHelper::getvalue($canvas, 'options', array()); $tabs = JArrayHelper::getValue($canvas, 'tabs', array('Page 1')); $tabs = json_encode($tabs); $d = new stdClass(); $layout = JArrayHelper::getValue($canvas, 'layout', $d); $layout = json_encode(JArrayHelper::getValue($canvas, 'layout', $d)); $id = $this->get('State')->get('package.id'); $script = "head.ready(function() {\r\n\t\t\tnew FrontPackage({\r\n\t\ttabs : {$tabs},\r\n\t\ttabelement : 'packagemenu',\r\n\t\tpagecontainer : 'packagepages',\r\n\t\tlayout: {$layout},\r\n\t\t'packageid':{$id},\r\n\t\t'package':'{$item->component_name}'\r\n\t});\r\n\t\t});"; $document->addScriptDeclaration($script); //force front end templates $this->_basePath = COM_FABRIK_FRONTEND . DS . 'views'; $tmpl = !isset($item->template) ? 'default' : $item->template; $this->addTemplatePath($this->_basePath . DS . $this->_name . DS . 'tmpl' . DS . $tmpl); $text = $this->loadTemplate(); $opt = JRequest::getVar('option'); JRequest::setVar('option', 'com_content'); jimport('joomla.html.html.content'); $text .= '{emailcloak=off}'; $text = JHTML::_('content.prepare', $text); $text = preg_replace('/\\{emailcloak\\=off\\}/', '', $text); JRequest::setVar('option', $opt); echo $text; }
/** * check for a custom css file and include it if it exists * @param string $path NOT including JPATH_SITE (so relative too root dir * @return failse */ function stylesheetFromPath($path) { if (JFile::exists(JPATH_SITE . DS . $path)) { $parts = explode(DS, $path); $file = array_pop($parts); $path = implode('/', $parts) . '/'; FabrikHelperHTML::stylesheet($path . $file); } }
/** * Create the html for Ajax upload widget * * @param array $str Current html output * @param int $repeatCounter Repeat group counter * @param array $values Existing files * * @return array Modified file-upload html */ protected function plupload($str, $repeatCounter, $values) { FabrikHelperHTML::stylesheet(COM_FABRIK_LIVESITE . 'media/com_fabrik/css/slider.css'); $params = $this->getParams(); $w = (int) $params->get('ajax_dropbox_width', 0); $h = (int) $params->get('ajax_dropbox_height', 200); $dropBoxStyle = 'height:' . $h . 'px;'; if ($w !== 0) { $dropBoxStyle .= 'width:' . $w . 'px;'; } $layout = $this->getLayout('widget'); $displayData = new stdClass(); $displayData->id = $this->getHTMLId($repeatCounter); $displayData->winWidth = $params->get('win_width', 400); $displayData->winHeight = $params->get('win_height', 400); $displayData->canCrop = $this->canCrop(); $displayData->canvasSupport = FabrikHelperHTML::canvasSupport(); $displayData->dropBoxStyle = $dropBoxStyle; $displayData->field = implode("\n", $str); $displayData->j3 = FabrikWorker::j3(); $str = (array) $layout->render($displayData); FabrikHelperHTML::jLayoutJs('fabrik-progress-bar', 'fabrik-progress-bar', (object) array('context' => '', 'animated' => true)); FabrikHelperHTML::jLayoutJs('fabrik-progress-bar-success', 'fabrik-progress-bar', (object) array('context' => 'success', 'value' => 100)); FabrikHelperHTML::jLayoutJs('fabrik-icon-delete', 'fabrik-icon', (object) array('icon' => 'delete'), array('debug' => true)); return $str; }
/** * Sets up HTML to be injected into the form's bottom * * @return void */ public function getBottomContent() { /** @var FabrikFEModelForm $formModel */ $formModel = $this->getModel(); if (!$this->show()) { $this->data = ''; return; } $j3 = FabrikWorker::j3(); $input = $this->app->input; $formId = $formModel->getForm()->id; $mode = JString::strtolower($input->get('view', 'form')); $this->ids = $this->getNavIds(); $linkStartPrev = $this->ids->index == 0 ? ' disabled' : ''; $linkNextEnd = $this->ids->index == $this->ids->lastKey ? ' disabled' : ''; if ($this->app->isAdmin()) { $url = 'index.php?option=com_fabrik&task=' . $mode . '.view&formid=' . $formId . '&rowid='; } else { $url = 'index.php?option=com_' . $this->package . '&view=' . $mode . '&formid=' . $formId . '&rowid='; } $links = array(); $links['first'] = JRoute::_($url . $this->ids->first); $links['first-active'] = $linkStartPrev; $links['last-active'] = $linkNextEnd; $links['prev'] = JRoute::_($url . $this->ids->prev); $links['next'] = JRoute::_($url . $this->ids->next); $links['last'] = JRoute::_($url . $this->ids->last); if ($j3) { $layout = new JLayoutFile('plugins.fabrik_form.paginate.layouts.default_paginate', JPATH_SITE); $this->data = $layout->render($links); } else { $firstLink = $linkStartPrev ? '<span><<</span>' . FText::_('COM_FABRIK_START') : '<a href="' . $links['first'] . '" class="pagenav paginateFirst ' . $linkStartPrev . '"><span><<</span>' . FText::_('COM_FABRIK_START') . '</a>'; $prevLink = $linkStartPrev ? '<span><</span>' . FText::_('COM_FABRIK_PREV') : '<a href="' . $links['prev'] . '" class="pagenav paginatePrevious ' . $linkStartPrev . '"><span><</span>' . FText::_('COM_FABRIK_PREV') . '</a>'; $nextLink = $linkNextEnd ? FText::_('COM_FABRIK_NEXT') . '<span>></span>' : '<a href="' . $links['next'] . '" class="pagenav paginateNext' . $linkNextEnd . '">' . FText::_('COM_FABRIK_NEXT') . '<span>></span></a>'; $endLink = $linkNextEnd ? FText::_('COM_FABRIK_END') . '<span>>></span>' : '<a href="' . $links['last'] . '" class="pagenav paginateLast' . $linkNextEnd . '">' . FText::_('COM_FABRIK_END') . '<span>>></span></a>'; $this->data = '<ul id="fabrik-from-pagination" class="pagination"> <li>' . $firstLink . '</li> <li>' . $prevLink . '</li> <li>' . $nextLink . '</li> <li>' . $endLink . '</li> </ul>'; } FabrikHelperHTML::stylesheet('plugins/fabrik_form/paginate/paginate.css'); }
/** * @since 3.0 loads lists's css files * Checks : J template html override css file then fabrik list tmpl template css file. Including them if found */ public function getListCss() { $tmpl = $this->getTmpl(); $app = JFactory::getApplication(); /* check for a form template file (code moved from view) */ if ($tmpl != '') { $qs = '?c=' . $this->getRenderContext(); $qs .= '&buttoncount=' . $this->rowActionCount; if (JFile::exists(JPATH_THEMES . '/' . $app->getTemplate() . '/html/com_fabrik/list/' . $tmpl . '/template_css.php')) { FabrikHelperHTML::stylesheet(COM_FABRIK_LIVESITE . 'templates/' . $app->getTemplate() . '/html/com_fabrik/list/' . $tmpl . '/template_css.php' . $qs); } else { FabrikHelperHTML::stylesheet(COM_FABRIK_LIVESITE . 'components/com_fabrik/views/list/tmpl/' . $tmpl . '/template_css.php' . $qs); } } }
/** * CCK - not used atm * * @return void */ public function cck() { $catid = JRequest::getInt('catid'); $db = JFactory::getDBO(); $db->setQuery('SELECT id FROM #__fabrik_forms WHERE params LIKE \'%"cck_category":"' . $catid . '"%\''); $id = $db->loadResult(); if (!$id) { FabrikHelperHTML::stylesheet('system.css', 'administrator/templates/system/css/'); echo "<a target=\"_blank\" href=\"index.php?option=com_fabrik&c=form\">" . JText::_('VIEW_FORMS') . "</a>"; return JError::raiseNotice(500, JText::_('SET_FORM_CCK_CATEGORY')); } JRequest::setVar('formid', $id); // Tell fabrik to load js scripts normally JRequest::setVar('iframe', 1); $this->view(); }
/** * 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; }
/** * @since 3.0 loads lists's css files * Checks : J template html override css file then fabrik list tmpl template css file. Including them if found */ public function getListCss() { $tmpl = $this->getTmpl(); $app = JFactory::getApplication(); /* check for a form template file (code moved from view) */ if ($tmpl != '') { if (JFile::exists(JPATH_THEMES . '/' . $app->getTemplate() . '/html/com_fabrik/list/' . $tmpl . '/template_css.php')) { FabrikHelperHTML::stylesheet(COM_FABRIK_LIVESITE . 'templates/' . $app->getTemplate() . '/html/com_fabrik/list/' . $tmpl . '/template_css.php?c=' . $this->getId()); } else { FabrikHelperHTML::stylesheet(COM_FABRIK_LIVESITE . "components/com_fabrik/views/list/tmpl/" . $tmpl . "/template_css.php?c=" . $this->getId()); } } }
protected function getManagementJS($data = array()) { global $Itemid; // $$$ rob ALWAYS load the calendar (so its avaible in ajax forms) FabrikHelperHTML::loadcalendar(); $app =& JFactory::getApplication(); $model =& $this->getModel(); $table =& $model->getTable(); $formModel =& $model->getForm(); $elementsNotInTable =& $formModel->getElementsNotInTable(); $keys = array('id' => '', 'name' => '', 'label' => ''); foreach ($elementsNotInTable as &$i) { if (is_a($i, 'TableElement')) { $i = array_intersect_key($i->getPublicProperties(), $keys); } } FabrikHelperHTML::packageJS(); $document =& JFactory::getDocument(); if ($model->requiresSlimbox()) { FabrikHelperHTML::slimbox(); } if ($model->requiresMocha()) { FabrikHelperHTML::mocha(); } FabrikHelperHTML::script('table.js', 'media/com_fabrik/js/', true); $tmpl = $this->getTmpl(); FabrikHelperHTML::stylesheet('table.css', 'media/com_fabrik/css/'); // check for a custom css file and include it if it exists FabrikHelperHTML::stylesheetFromPath("components" . DS . "com_fabrik" . DS . "views" . DS . "table" . DS . "tmpl" . DS . $tmpl . DS . "template.css"); //check and add a general fabrik custom css file overrides template css and generic table css FabrikHelperHTML::stylesheetFromPath("media" . DS . "com_fabrik" . DS . "css" . DS . "custom.css"); //check and add a specific table template css file overrides template css generic table css and generic custom css FabrikHelperHTML::stylesheetFromPath("components" . DS . "com_fabrik" . DS . "views" . DS . "table" . DS . "tmpl" . DS . $tmpl . DS . "custom.css"); // check for a custom js file and include it if it exists $aJsPath = JPATH_SITE . DS . "components" . DS . "com_fabrik" . DS . "views" . DS . "table" . DS . "tmpl" . DS . $tmpl . DS . "javascript.js"; if (JFile::exists($aJsPath)) { FabrikHelperHTML::script("javascript.js", 'components/com_fabrik/views/table/tmpl/' . $tmpl . '/', true); } $origRows = $this->rows; $this->rows = array(array()); $tmpItemid = !isset($Itemid) ? 0 : $Itemid; $this->_c = 0; $this->_row = new stdClass(); $script = ''; // $$$ rob done in HTMLHelper //$script = "/* <![CDATA[ */ \n"; static $tableini; if (!$tableini) { $tableini = true; $script .= "var oTables = \$H();\n"; } $opts = new stdClass(); $opts->admin = $app->isAdmin(); $opts->postMethod = $model->getPostMethod(); $opts->filterMethod = $this->filter_action; $opts->form = 'tableform_' . $model->_id; $opts->headings = $model->_jsonHeadings(); $labels = $this->headings; foreach ($labels as &$l) { $l = strip_tags($l); } $opts->labels = $labels; $opts->primaryKey = $table->db_primary_key; $opts->Itemid = $tmpItemid; $opts->formid = $model->_oForm->getId(); $opts->canEdit = $model->canEdit() ? "1" : "0"; $opts->canView = $model->canView() ? "1" : "0"; $opts->page = JRoute::_('index.php'); $opts->isGrouped = $this->isGrouped; $opts->mooversion = FabrikWorker::getMooVersion() == 1 ? 1.2 : 1.1; if (FabrikWorker::nativeMootools12()) { $opts->mooversion = 1.24; } $opts->formels = $elementsNotInTable; //if table data starts as empty then we need the html from the row // template otherwise we can't add a row to the table if ($model->_postMethod == 'ajax') { ob_start(); $this->_row = new stdClass(); $this->_row->id = ''; $this->_row->class = 'fabrik_row'; require COM_FABRIK_FRONTEND . DS . 'views' . DS . 'table' . DS . 'tmpl' . DS . 'default' . DS . 'default_row.php'; $opts->rowtemplate = ob_get_contents(); ob_end_clean(); } //$$$rob if you are loading a table in a window from a form db join select record option // then we want to know the id of the window so we can set its showSpinner() method $opts->winid = JRequest::getVar('winid', ''); $opts->ajaxEditViewLink = $model->ajaxEditViewLink() ? 1 : 0; $opts = json_encode($opts); $lang = new stdClass(); $lang->select_rows = JText::_('SELECT SOME ROWS FOR DELETION'); $lang->yes = JText::_('Yes'); $lang->no = JText::_('No'); $lang->select_colums_to_export = JText::_('SELECT_COLUMNS_TO_EXPORT'); $lang->include_filters = JText::_('INCLUDE_FILTERS'); $lang->include_data = JText::_('INCLUDE_DATA'); $lang->inlcude_raw_data = JText::_('INCLUDE_RAW_DATA'); $lang->include_calculations = JText::_('INLCUDE_CALCULATIONS'); $lang->export = JText::_('EXPORT'); $lang->loading = JText::_('loading'); $lang->savingto = JText::_('Saving to'); $lang->confirmDelete = JText::_('CONFIRMDELETE'); $lang->csv_downloading = JText::_('COM_FABRIK_CSV_DOWNLOADING'); $lang->download_here = JText::_('COM_FABRIK_DOWNLOAD_HERE'); $lang->csv_complete = JText::_('COM_FABRIK_CSV_COMPLETE'); $lang = json_encode($lang); $script .= "\n" . "var oTable{$model->_id} = new fabrikTable({$model->_id},"; $script .= $opts . "," . $lang; $script .= "\n" . ");"; $script .= "\n" . "oTable{$model->_id}.addListenTo('form_{$model->_oForm->_id}');"; $script .= "\n" . "oTable{$model->_id}.addListenTo('table_{$model->_id}');"; $script .= "\n" . "oPackage.addBlock('table_{$model->_id}', oTable{$model->_id});"; //add in plugin objects $plugins = $this->get('PluginJsObjects'); $script .= "\noTable{$model->_id}.addPlugins([\n"; $script .= " " . implode(",\n ", $plugins); $script .= "]\n);\n"; $script .= "oTables.set({$model->_id}, oTable{$model->_id});\n"; FabrikHelperHTML::addScriptDeclaration($script); $this->getElementJs(); //reset data back to original settings $this->rows = $origRows; $this->get('CustomJsAction'); }
/** * Get the class to manage the form element * to ensure that the file is loaded only once * * @param array &$srcs Scripts previously loaded * @param string $script Script to load once class has loaded * @param array &$shim Dependant class names to load before loading the class - put in requirejs.config shim * * @return void */ public function formJavascriptClass(&$srcs, $script = '', &$shim = array()) { $key = FabrikHelperHTML::isDebug() ? 'element/digsig/digsig' : 'element/digsig/digsig-min'; $s = new stdClass(); $s->deps = array(); $folder = 'element/digsig/libs/signature-pad/'; $digsigShim = new stdClass(); $digsigShim->deps = array($folder . 'jquery.signaturepad'); $s->deps[] = $folder . 'jquery.signaturepad'; $s->deps[] = $folder . 'flashcanvas'; $shim[$folder . 'flashcanvas'] = $digsigShim; $s->deps[] = $folder . 'json2'; $shim[$folder . 'json2'] = $digsigShim; $shim[$key] = $s; FabrikHelperHTML::stylesheet(COM_FABRIK_LIVESITE . 'plugins/fabrik_element/digsig/libs/signature-pad/jquery.signaturepad.css'); parent::formJavascriptClass($srcs, $script, $shim); // $$$ hugh - added this, and some logic in the view, so we will get called on a per-element basis return false; }
/** * loads form's css files * Checks : custom css file, template css file. Including them if found */ function getFormCss() { $tmpl = $this->getForm()->form_template; /* check for a custom css file */ if (JRequest::getVar('incformcss', 1) == 1) { FabrikHelperHTML::stylesheet('form.css', 'media/com_fabrik/css/'); } //check and add a general fabrik custom css file overrides generic form css FabrikHelperHTML::stylesheetFromPath("media" . DS . "com_fabrik" . DS . "css" . DS . "custom.css"); FabrikHelperHTML::stylesheetFromPath("components" . DS . "com_fabrik" . DS . "css" . DS . $this->getId() . ".css"); /* check for a form template file (code moved from view) */ if ($tmpl != '') { FabrikHelperHTML::stylesheetFromPath("components" . DS . "com_fabrik" . DS . 'views' . DS . 'form' . DS . 'tmpl' . DS . $tmpl . DS . "template.css"); //check and add a custom form template css FabrikHelperHTML::stylesheetFromPath("components" . DS . "com_fabrik" . DS . 'views' . DS . 'form' . DS . 'tmpl' . DS . $tmpl . DS . "custom.css"); } $app =& JFactory::getApplication(); if ($app->isAdmin() && JRequest::getVar('tmpl') === 'components') { FabrikHelperHTML::stylesheet('system.css', 'administrator/templates/system/css/'); } }
/** * Create the html for Ajax upload widget * * @param array $str Current html output * @param int $repeatCounter Repeat group counter * @param array $values Existing files * * @return array Modified fileupload html */ protected function plupload($str, $repeatCounter, $values) { FabrikHelperHTML::stylesheet(COM_FABRIK_LIVESITE . 'media/com_fabrik/css/slider.css'); $id = $this->getHTMLId($repeatCounter); $j3 = FabrikWorker::j3(); $params = $this->getParams(); $winWidth = $params->get('win_width', 400); $winHeight = $params->get('win_height', 400); $runtimes = $params->get('ajax_runtime', 'html5,html4'); $w = (int) $params->get('ajax_dropbox_width', 0); $h = (int) $params->get('ajax_dropbox_hight', 200); $dropBoxStyle = 'height:' . $h . 'px'; if ($w !== 0) { $dropBoxStyle .= 'width:' . $w . 'px;'; } // Add span with id so that element fxs work. $pstr = array(); $pstr[] = '<span id="' . $id . '"></span>'; $pstr[] = '<div id="' . $id . '-widgetcontainer">'; $pstr[] = '<canvas id="' . $id . '-widget" width="' . $winWidth . '" height="' . $winHeight . '"></canvas>'; if ($this->canCrop()) { $pstr[] = '<div class="zoom" style="float:left;margin-top:10px;padding-right:10x;width:180px">'; $pstr[] = ' zoom:'; $pstr[] = ' <div class="fabrikslider-line" style="width: 100px;float:left;">'; $pstr[] = ' <div class="knob"></div>'; $pstr[] = ' </div>'; $pstr[] = ' <input name="zoom-val" value="" size="3" class="input-mini"/>'; $pstr[] = '</div>'; $pstr[] = '<div class="rotate" style="float:left;margin-top:10px;width:180px">' . JText::_('PLG_ELEMENT_FILEUPLOAD_ROTATE') . ':'; $pstr[] = ' <div class="fabrikslider-line" style="width: 100px;float:left;">'; $pstr[] = ' <div class="knob"></div>'; $pstr[] = ' </div>'; $pstr[] = ' <input name="rotate-val" value="" size="3" class="input-mini"/>'; $pstr[] = '</div>'; } if (FabrikHelperHTML::canvasSupport()) { $pstr[] = '<div style="text-align: right;float:right;margin:10px 0; width: 205px">'; $pstr[] = '<input type="button" class="button btn btn-primary" name="close-crop" value="' . JText::_('CLOSE') . '" />'; $pstr[] = '</div>'; } $pstr[] = '</div>'; $pstr[] = '<div class="plupload_container fabrikHide" id="' . $id . '_container" style="' . $dropBoxStyle . '">'; $pstr[] = '<div class="plupload" id="' . $id . '_dropList_container">'; if ($j3) { $pstr[] = ' <table class="table table-striped table-condensed">'; $pstr[] = ' <thead style="display:none"><tr>'; $pstr[] = ' <th class="span4">' . JText::_('PLG_ELEMENT_FILEUPLOAD_FILENAME') . '</th>'; $pstr[] = ' <th class="span1 plupload_crop"> </th>'; $pstr[] = ' <th class="span5 plupload_file_status"></th>'; $pstr[] = ' <th class="span1 plupload_file_action"> </th>'; $pstr[] = ' </tr></thead>'; $pstr[] = ' <tbody class="plupload_filelist" id="' . $id . '_dropList">'; $pstr[] = ' </tbody>'; $pstr[] = ' <tfoot><tr><td colspan="4">'; $pstr[] = ' <a id="' . $id . '_browseButton" class="btn btn-mini" href="#"><i class="icon-plus-sign icon-plus"></i>' . JText::_('PLG_ELEMENT_FILEUPLOAD_ADD_FILES') . '</a>'; $pstr[] = ' <a class="btn btn-mini disabled" data-action="plupload_start" href="#"><i class="icon-upload"></i>' . JText::_('PLG_ELEMENT_FILEUPLOAD_START_UPLOAD') . '</a>'; $pstr[] = ' <span class="plupload_upload_status"></span>'; $pstr[] = '</td></tr></tfoot>'; $pstr[] = ' </table>'; } else { $pstr[] = ' <div class="plupload_header">'; $pstr[] = ' <div class="plupload_header_content">'; $pstr[] = ' <div class="plupload_header_title">' . JText::_('PLG_ELEMENT_FILEUPLOAD_PLUP_HEADING') . '</div>'; $pstr[] = ' <div class="plupload_header_text">' . JText::_('PLG_ELEMENT_FILEUPLOAD_PLUP_SUB_HEADING') . '</div>'; $pstr[] = ' </div>'; $pstr[] = ' </div>'; $pstr[] = ' <div class="plupload_content">'; $pstr[] = ' <div class="plupload_filelist_header">'; $pstr[] = ' <div class="plupload_file_name">' . JText::_('PLG_ELEMENT_FILEUPLOAD_FILENAME') . '</div>'; $pstr[] = ' <div class="plupload_file_action"> </div>'; $pstr[] = ' <div class="plupload_file_status"><span>' . JText::_('PLG_ELEMENT_FILEUPLOAD_STATUS') . '</span></div>'; $pstr[] = ' <div class="plupload_file_size">' . JText::_('PLG_ELEMENT_FILEUPLOAD_SIZE') . '</div>'; $pstr[] = ' <div class="plupload_clearer"> </div>'; $pstr[] = ' </div>'; $pstr[] = ' <ul class="plupload_filelist" id="' . $id . '_dropList">'; $pstr[] = ' </ul>'; $pstr[] = ' <div class="plupload_filelist_footer">'; $pstr[] = ' <div class="plupload_file_name">'; $pstr[] = ' <div class="plupload_buttons">'; $pstr[] = ' <a id="' . $id . '_browseButton" class="plupload_button plupload_add" href="#">' . JText::_('PLG_ELEMENT_FILEUPLOAD_ADD_FILES') . '</a>'; $pstr[] = ' <a class="plupload_button plupload_start plupload_disabled" href="#">' . JText::_('PLG_ELEMENT_FILEUPLOAD_START_UPLOAD') . '</a>'; $pstr[] = ' </div>'; $pstr[] = ' <span class="plupload_upload_status"></span>'; $pstr[] = ' </div>'; $pstr[] = ' <div class="plupload_file_action"></div>'; $pstr[] = ' <div class="plupload_file_status">'; $pstr[] = ' <span class="plupload_total_status"></span>'; $pstr[] = ' </div>'; $pstr[] = ' <div class="plupload_file_size">'; $pstr[] = ' <span class="plupload_total_file_size"></span>'; $pstr[] = ' </div>'; $pstr[] = ' <div class="plupload_progress">'; $pstr[] = ' <div class="plupload_progress_container">'; $pstr[] = ' <div class="plupload_progress_bar"></div>'; $pstr[] = ' </div>'; $pstr[] = ' </div>'; $pstr[] = ' <div class="plupload_clearer"> </div>'; $pstr[] = ' </div>'; FabrikHelperHTML::stylesheet(COM_FABRIK_LIVESITE . 'plugins/fabrik_element/fileupload/lib/plupload/css/plupload.queue.css'); } $pstr[] = ' </div>'; $pstr[] = '</div>'; $pstr[] = '<!-- FALLBACK; SHOULD LOADING OF PLUPLOAD FAIL -->'; $pstr[] = '<div class="plupload_fallback">' . JText::_('PLG_ELEMENT_FILEUPLOAD_FALLBACK_MESSAGE'); $pstr[] = '<br />'; array_merge($pstr, $str); $pstr[] = '</div>'; return $pstr; }
/** * 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('fabrikslider.css', 'media/com_fabrik/css/'); $id = $this->getHTMLId($repeatCounter); $params =& $this->getParams(); $runtimes = $params->get('ajax_runtime', 'html5'); $this->pluploadLRuntimes($runtimes); $document =& JFactory::getDocument(); $pstr = $str . '<!-- 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;"> 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;clear:left;margin-top:10px;">' . 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; width: 205px"> <input type="button" class="button" name="close-crop" value="' . JText::_('CLOSE') . '" /> </div> </div>'; } $pstr .= ' <div class="plupload_container" 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"> </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"> </div> </div> <ul class="plupload_filelist" id="' . $id . '_dropList"> </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"> </div> </div> </div> </div> </div> '; $w = (int) $params->get('ajax_dropbox_width', 300); $h = (int) $params->get('ajax_dropbox_hight', 200); FabrikHelperHTML::stylesheet('plupload.queue.css', 'components/com_fabrik/plugins/element/fabrikfileupload/plupload/css/'); $document->addStyleDeclaration(".dropList{background:#aaa; width:" . $w . "px; height:" . $h . "px;}"); return $pstr; }
/** * @since 3.0 loads lists's css files * Checks : J template html override css file then fabrik list tmpl template css file. Including them if found */ public function getListCss() { $tmpl = $this->getTmpl(); $app = JFactory::getApplication(); /* check for a form template file (code moved from view) */ if ($tmpl != '') { $qs = '?c=' . $this->getRenderContext(); $qs .= '&buttoncount=' . $this->rowActionCount; if (JFile::exists(JPATH_THEMES . '/' . $app->getTemplate() . '/html/com_fabrik/list/' . $tmpl . '/template_css.php')) { FabrikHelperHTML::stylesheet(COM_FABRIK_LIVESITE . 'templates/' . $app->getTemplate() . '/html/com_fabrik/list/' . $tmpl . '/template_css.php' . $qs); } else { FabrikHelperHTML::stylesheet(COM_FABRIK_LIVESITE . 'components/com_fabrik/views/list/tmpl/' . $tmpl . '/template_css.php' . $qs); } // $$$ hugh - as per Skype convos with Rob, decided to re-instate the custom.css convention. So I'm adding two files: // custom.css - for backward compat with existing 2.x custom.css // custom_css.php - what we'll recommend people use for custom css moving foward. if (JFile::exists(COM_FABRIK_BASE . '/components/com_fabrik/views/list/tmpl/' . $tmpl . '/custom.css')) { FabrikHelperHTML::stylesheet(COM_FABRIK_LIVESITE . "components/com_fabrik/views/list/tmpl/" . $tmpl . "/custom.css"); } if (JFile::exists(COM_FABRIK_BASE . '/components/com_fabrik/views/list/tmpl/' . $tmpl . '/custom_css.php')) { FabrikHelperHTML::stylesheet(COM_FABRIK_LIVESITE . "components/com_fabrik/views/list/tmpl/" . $tmpl . "/custom_css.php" . $qs); } } }
_startButton" class="btn btn-mini disabled plupload_start" data-action="plupload_start" href="#"> <?php echo FabrikHelperHTML::icon('icon-upload'); ?> <?php echo FText::_('PLG_ELEMENT_FILEUPLOAD_START_UPLOAD'); ?> </a> <span class="plupload_upload_status"></span> </td> </tr> </tfoot> </table> <?php } else { FabrikHelperHTML::stylesheet(COM_FABRIK_LIVESITE . 'plugins/fabrik_element/fileupload/lib/plupload/css/plupload.queue.css'); ?> <div class="plupload_header"> <div class="plupload_header_content"> <div class="plupload_header_title"><?php echo FText::_('PLG_ELEMENT_FILEUPLOAD_PLUP_HEADING'); ?> </div> <div class="plupload_header_text"><?php echo FText::_('PLG_ELEMENT_FILEUPLOAD_PLUP_SUB_HEADING'); ?> </div> </div> </div> <div class="plupload_content"> <div class="plupload_filelist_header">
/** * loads form's css files * Checks : custom css file, template css file. Including them if found */ public function getFormCss() { $app = JFactory::getApplication(); $tmpl = $this->getTmpl(); $v = $this->_editable ? 'form' : 'details'; /* check for a form template file (code moved from view) */ if ($tmpl != '') { if (JFile::exists(JPATH_THEMES . '/' . $app->getTemplate() . '/html/com_fabrik/form/' . $tmpl . '/template_css.php')) { FabrikHelperHTML::stylesheet(COM_FABRIK_LIVESITE . 'templates/' . $app->getTemplate() . '/html/com_fabrik/form/' . $tmpl . '/template_css.php?c=' . $this->getId() . '&view=' . $v); } else { FabrikHelperHTML::stylesheet(COM_FABRIK_LIVESITE . "components/com_fabrik/views/form/tmpl/" . $tmpl . "/template_css.php?c=" . $this->getId() . '&view=' . $v); } } if ($app->isAdmin() && JRequest::getVar('tmpl') === 'components') { FabrikHelperHTML::stylesheet('administrator/templates/system/css/system.css'); } }
/** * loads form's css files * Checks : custom css file, template css file. Including them if found * * @return void */ public function getFormCss() { $input = $this->app->input; $jTmplFolder = FabrikWorker::j3() ? 'tmpl' : 'tmpl25'; $tmpl = $this->getTmpl(); $v = $this->isEditable() ? 'form' : 'details'; // Check for a form template file (code moved from view) if ($tmpl != '') { $qs = '?c=' . $this->getId(); $qs .= '&rowid=' . $this->getRowId(); /* $$$ need & for pdf output which is parsed through xml parser otherwise fails * If FabrikHelperHTML::styleSheetajax loaded then don't do & */ $view = $this->isEditable() ? 'form' : 'details'; if (FabrikHelperHTML::cssAsAsset()) { $qs .= '&view=' . $v; $qs .= '&rowid=' . $this->getRowId(); } else { $qs .= '&view=' . $v; $qs .= '&rowid=' . $this->getRowId(); } $tmplPath = 'templates/' . $this->app->getTemplate() . '/html/com_fabrik/' . $view . '/' . $tmpl . '/template_css.php' . $qs; if (!FabrikHelperHTML::stylesheetFromPath($tmplPath)) { FabrikHelperHTML::stylesheetFromPath('components/com_fabrik/views/' . $view . '/' . $jTmplFolder . '/' . $tmpl . '/template_css.php' . $qs); } /* $$$ hugh - as per Skype convos with Rob, decided to re-instate the custom.css convention. So I'm adding two files: * custom.css - for backward compat with existing 2.x custom.css * custom_css.php - what we'll recommend people use for custom css moving forward. */ if (!FabrikHelperHTML::stylesheetFromPath('templates/' . $this->app->getTemplate() . '/html/com_fabrik/' . $view . '/' . $tmpl . '/custom.css' . $qs)) { FabrikHelperHTML::stylesheetFromPath('components/com_fabrik/views/' . $view . '/' . $jTmplFolder . '/' . $tmpl . '/custom.css' . $qs); } $path = 'templates/' . $this->app->getTemplate() . '/html/com_fabrik/' . $view . '/' . $tmpl . '/custom_css.php' . $qs; if (!FabrikHelperHTML::stylesheetFromPath($path)) { $displayData = new stdClass(); $displayData->view = $view; $displayData->tmpl = $tmpl; $displayData->qs = $qs; $displayData->jTmplFolder = $jTmplFolder; $displayData->formModel = $this; $layout = $this->getLayout('form.fabrik-custom-css-qs'); $path = $layout->render($displayData); FabrikHelperHTML::stylesheetFromPath($path); } } if ($this->app->isAdmin() && $input->get('tmpl') === 'components') { FabrikHelperHTML::stylesheet('administrator/templates/system/css/system.css'); } }
/** * check for a custom css file and include it if it exists * @param string $path NOT including JPATH_SITE (so relative too root dir * @return false */ public static function stylesheetFromPath($path) { if (JFile::exists(JPATH_SITE . '/' . $path)) { FabrikHelperHTML::stylesheet($path); } }
/** * loads form's css files * Checks : custom css file, template css file. Including them if found */ public function getFormCss() { $app = JFactory::getApplication(); $tmpl = $this->getTmpl(); $v = $this->_editable ? 'form' : 'details'; /* check for a form template file (code moved from view) */ if ($tmpl != '') { if (JFile::exists(JPATH_THEMES . '/' . $app->getTemplate() . '/html/com_fabrik/form/' . $tmpl . '/template_css.php')) { FabrikHelperHTML::stylesheet(COM_FABRIK_LIVESITE . 'templates/' . $app->getTemplate() . '/html/com_fabrik/form/' . $tmpl . '/template_css.php?c=' . $this->getId() . '&view=' . $v); } else { FabrikHelperHTML::stylesheet(COM_FABRIK_LIVESITE . "components/com_fabrik/views/form/tmpl/" . $tmpl . "/template_css.php?c=" . $this->getId() . '&view=' . $v); } // $$$ hugh - as per Skype convos with Rob, decided to re-instate the custom.css convention. So I'm adding two files: // custom.css - for backward compat with existing 2.x custom.css // custom_css.php - what we'll recommend people use for custom css moving foward. if (JFile::exists(COM_FABRIK_BASE . '/components/com_fabrik/views/form/tmpl/' . $tmpl . '/custom.css')) { FabrikHelperHTML::stylesheet(COM_FABRIK_LIVESITE . "components/com_fabrik/views/form/tmpl/" . $tmpl . "/custom.css"); } if (JFile::exists(COM_FABRIK_BASE . '/components/com_fabrik/views/form/tmpl/' . $tmpl . '/custom_css.php')) { FabrikHelperHTML::stylesheet(COM_FABRIK_LIVESITE . "components/com_fabrik/views/form/tmpl/" . $tmpl . "/custom_css.php?c=" . $this->getId() . '&view=' . $v); } } if ($app->isAdmin() && JRequest::getVar('tmpl') === 'components') { FabrikHelperHTML::stylesheet('administrator/templates/system/css/system.css'); } }
private function _render($watch, $data = array(), $format = 'table', $repeatCounter = 0) { // http://www.google.com/ig/api?weather=,,,34739300,-86624100 $id = $this->getHTMLId($repeatCounter); $params =& $this->getParams(); $watch_type = $params->get('fabrikweather_watch_type', 'map'); $temp_scale = $params->get('fabrikweather_temp_scale', 'f'); $w = new FabrikWorker(); $city = $params->get('fabrikweather_city', ''); $city = $w->parseMessageForPlaceholder($city, $data); $language = $params->get('fabrikweather_language', 'en'); $is_night = false; if ($watch_type == 'map') { $o = $this->_strToCoords($watch); $lat = (double) trim($o->coords[0]); $glat = sprintf("%8d", $lat * 1000000); $lon = (double) trim($o->coords[1]); $glon = sprintf("%8d", $lon * 1000000); $weather = "{$glat},{$glon}"; $is_night = $this->_isNight($lat, $lon); } else { $weather = $city; } $custom_slug = $params->get('fabrikweather_class_prefix', 'fabrikweather'); if (!empty($custom_slug) && JFile::exists(COM_FABRIK_FRONTEND . DS . 'components/com_fabrik/plugins/element/fabrikweather/assets/' . $custom_slug . '/weather.css')) { FabrikHelperHTML::stylesheet('weather.css', 'components/com_fabrik/plugins/element/fabrikweather/assets/' . $custom_slug . '/'); } else { FabrikHelperHTML::stylesheet('weather.css', 'components/com_fabrik/plugins/element/fabrikweather/assets/fabrikweather/'); } if (!empty($custom_slug) && JFile::exists(COM_FABRIK_FRONTEND . DS . 'plugins/element/fabrikweather/assets/' . $custom_slug . '/render.php')) { require_once COM_FABRIK_FRONTEND . DS . 'plugins/element/fabrikweather/assets/' . $custom_slug . '/render.php'; } else { require_once COM_FABRIK_FRONTEND . DS . 'plugins/element/fabrikweather/assets/fabrikweather/render.php'; } $render = new fabrikWeatherRender(); $render->setIsNight($is_night); $render->setTempScale($temp_scale); if (!empty($custom_slug) && JFolder::exists(COM_FABRIK_FRONTEND . DS . 'plugins/element/fabrikweather/assets/' . $custom_slug . '/icons')) { $render->setIconPath('plugins/element/fabrikweather/assets/' . $custom_slug . '/icons'); } else { $render->setIconPath('plugins/element/fabrikweather/assets/fabrikweather/icons'); } if (!$render->getWeatherXml($weather, $watch_type, $language)) { return JText::_(PLG_ELEMENT_FABRIKWEATHER_NO_GOOGLE_DATA); } if ($format == 'table') { $html = $render->getTableHtml($id, $city); } else { $html = $render->getFormHtml($id, $city); } return $html; }
private function slider() { $v = $this->getValue(); FabrikHelperHTML::stylesheet('radius_search.css', 'components/com_fabrik/plugins/table/radius_search/'); $str = "<div class=\"slider_cont\" style=\"width:200px;\">\n"; $str .= "<div class=\"fabrikslider-line\" style=\"width:200px\">"; $str .= "\n<div class=\"knob\"></div>\n"; $str .= "</div>\n"; $str .= "<input type=\"hidden\" class=\"radius_search_distance\" name=\"radius_search_distance\" value=\"{$v}\"/>\n"; $str .= "<div class=\"slider_output\">{$v}" . $this->getParams()->get('radius_unit', 'km') . "</div>\n"; $str .= "</div>"; return $str; }
/** * 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'); $w = (int) $params->get('ajax_dropbox_width', 300); $h = (int) $params->get('ajax_dropbox_hight', 200); //add span with id so that element fxs work. $pstr = '<!-- UPLOAD CONTAINER --> <span id="' . $id . '"></span> <div id="' . $id . '-widgetcontainer">'; $pstr .= ' <canvas id="' . $id . '-widget" width="400" height="400"></canvas>'; if ($params->get('fileupload_crop', 0)) { $pstr .= ' <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>'; } $pstr .= ' <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" style="width:' . $w . 'px;height:' . $h . 'px"> <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"> </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"> </div> </div> <ul class="plupload_filelist" id="' . $id . '_dropList"> </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"></span> </div> <div class="plupload_file_size"> <span class="plupload_total_file_size"></span> </div> <div class="plupload_progress"> <div class="plupload_progress_container"> <div class="plupload_progress_bar"></div> </div> </div> <div class="plupload_clearer"> </div> </div> </div> </div> </div> <!-- FALLBACK; SHOULD LOADING OF PLUPLOAD FAIL --> <div class="plupload_fallback">' . JText::_('PLG_ELEMENT_FILEUPLOAD_FALLBACK_MESSAGE') . ' <br /> ' . $str . ' </div>'; FabrikHelperHTML::stylesheet(COM_FABRIK_LIVESITE . 'plugins/fabrik_element/fileupload/lib/plupload/css/plupload.queue.css'); //FabrikHelperHTML::addStyleDeclaration(".dropList{background:#aaa; width:".$w."px; height:".$h."px;}"); return $pstr; }
public static function atWho($selector, $placeHolders = array()) { array_filter($placeHolders); $key = $selector . implode('.', $placeHolders); if (!array_key_exists($key, self::$atWho)) { $replacements = FabrikWorker::globalReplacements(); $replacements = array_keys($replacements); $replacements = array_map(function ($v) { $v = str_replace(array('{', '}'), array('', ''), $v); return $v; }, $replacements); $placeHolders = array_merge($placeHolders, $replacements); $placeHolders = json_encode($placeHolders); $script[] = "jQuery('{$selector}').atwho({\r\n\t\t\t\t'at': '{',\r\n\t\t\t\t'insertTpl' : '\${atwho-at}\${name}}',\r\n\t\t\t\tdata: {$placeHolders},\r\n\t\t\t\t limit: 5,\r\n });"; self::$atWho[$key] = true; $css = self::isDebug() ? 'jquery.atwho.css' : 'jquery.atwho.min.css'; FabrikHelperHTML::stylesheet('media/com_fabrik/js/lib/at/' . $css); $needed[] = self::isDebug() ? '\'lib/caret/caret\'' : '\'lib/caret/caret-min\''; $needed[] = self::isDebug() ? '\'lib/at/atwho\'' : '\'lib/at/atwho-min\''; $needed = implode(", ", $needed); $script = implode("\n", $script); self::addScriptDeclaration("requirejs([{$needed}], function (j, f) {\r\n\t{$script}\r\n});"); } }
/** * loads form's css files * Checks : custom css file, template css file. Including them if found * * @return void */ public function getFormCss() { $app = JFactory::getApplication(); $tmpl = $this->getTmpl(); $v = $this->isEditable() ? 'form' : 'details'; // Check for a form template file (code moved from view) if ($tmpl != '') { $qs = '?c=' . $this->getId(); /* $$$ need & for pdf output which is parsed through xml parser otherwise fails * If FabrikHelperHTML::styleSheetajax loaded then dont do & */ $qs .= FabrikHelperHTML::cssAsAsset() ? '&view=' . $v : '&view=' . $v; $tmplPath = 'templates/' . $app->getTemplate() . '/html/com_fabrik/form/' . $tmpl . '/template_css.php' . $qs; if (!FabrikHelperHTML::stylesheetFromPath($tmplPath)) { FabrikHelperHTML::stylesheetFromPath('components/com_fabrik/views/form/tmpl/' . $tmpl . '/template_css.php' . $qs); } /* $$$ hugh - as per Skype convos with Rob, decided to re-instate the custom.css convention. So I'm adding two files: * custom.css - for backward compat with existing 2.x custom.css * custom_css.php - what we'll recommend people use for custom css moving foward. */ if (!FabrikHelperHTML::stylesheetFromPath('templates/' . $app->getTemplate() . '/html/com_fabrik/form/' . $tmpl . '/custom.css' . $qs)) { FabrikHelperHTML::stylesheetFromPath('components/com_fabrik/views/form/tmpl/' . $tmpl . '/custom.css' . $qs); } if (!FabrikHelperHTML::stylesheetFromPath('templates/' . $app->getTemplate() . '/html/com_fabrik/form/' . $tmpl . '/custom_css.php' . $qs)) { FabrikHelperHTML::stylesheetFromPath('components/com_fabrik/views/form/tmpl/' . $tmpl . '/custom_css.php' . $qs); } } if ($app->isAdmin() && JRequest::getVar('tmpl') === 'components') { FabrikHelperHTML::stylesheet('administrator/templates/system/css/system.css'); } }