当前位置: 首页>>代码示例>>PHP>>正文


PHP FabrikWorker::getMenuOrRequestVar方法代码示例

本文整理汇总了PHP中FabrikWorker::getMenuOrRequestVar方法的典型用法代码示例。如果您正苦于以下问题:PHP FabrikWorker::getMenuOrRequestVar方法的具体用法?PHP FabrikWorker::getMenuOrRequestVar怎么用?PHP FabrikWorker::getMenuOrRequestVar使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在FabrikWorker的用法示例。


在下文中一共展示了FabrikWorker::getMenuOrRequestVar方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: getFilters

 /**
  * this merges session data for the fromForm with any request data
  * allowing us to filter data results from both search forms and filters
  *
  * @return array
  */
 function getFilters()
 {
     //form or detailed views should not apply filters? what about querystrings to set up the default values?
     if (JRequest::getCmd('view') == 'details' || JRequest::getCmd('view') == 'form') {
         $this->_request = array();
         return $this->_request;
     }
     if (isset($this->_request)) {
         return $this->_request;
     }
     $filters = array();
     // $$$ rob clears all list filters, and does NOT apply any
     // other filters to the table, even if in querystring
     if (JRequest::getInt('clearfilters') === 1 && $this->activeTable()) {
         $this->clearFilters();
         $this->_request = array();
         return $this->_request;
     }
     if (JRequest::getVar('replacefilters') == 1) {
         $this->clearFilters();
     }
     //$$$ fehers The filter is cleared and applied at once without having to clear it first and then apply it (would have to be two clicks).
     //useful in querystring filters if you want to clear old filters and apply new filters
     // $$$ rob 20/03/2011 - request resetfilters should overwrite menu option - otherwise filter then nav will remove filter.
     if ((JRequest::getVar('filterclear') == 1 || FabrikWorker::getMenuOrRequestVar('resetfilters', 0, false, 'request') == 1) && $this->activeTable()) {
         $this->clearFilters();
     }
     //overwrite filters with querystring filter
     $this->getQuerystringFilters($filters);
     FabrikHelperHTML::debug($filters, 'filter array: after querystring filters');
     $request =& $this->getPostFilterArray();
     $this->counter = count(JArrayHelper::getValue($request, 'key', array()));
     //overwrite filters with session filters (fabrik_incsessionfilters set to false in listModel::getRecordCounts / for facted data counts
     if (JRequest::getVar('fabrik_incsessionfilters', true)) {
         $this->getSessionFilters($filters);
     }
     FabrikHelperHTML::debug($filters, 'filter array: after session filters');
     //the search form search all has lower priority than the filter search all and search form filters
     $this->getSearchFormSearchAllFilters($filters);
     //overwrite session filters with search form filters
     $this->getSearchFormFilters($filters);
     FabrikHelperHTML::debug($filters, 'filter array: search form');
     //overwrite filters with 'search all' filter
     $this->getSearchAllFilters($filters);
     //finally overwrite filters with post filters
     $this->getPostFilters($filters);
     FabrikHelperHTML::debug($filters, 'filter array: after getpostfilters');
     $this->_request = $filters;
     FabrikHelperHTML::debug($this->_request, 'filter array');
     $this->checkAccess($filters);
     // echo "<pre>";print_r($filters);echo "</pre>";
     return $filters;
 }
开发者ID:romuland,项目名称:khparts,代码行数:59,代码来源:listfilter.php

示例2: _buildQuery

 /**
  * @access private
  * create the sql query to get the rows data for insertion into the form
  */
 function _buildQuery()
 {
     if (isset($this->query)) {
         return $this->query;
     }
     $db = FabrikWorker::getDbo();
     $conf = JFactory::getConfig();
     $form = $this->getForm();
     if (!$form->record_in_database) {
         return;
     }
     $listModel = $this->getListModel();
     $item = $listModel->getTable();
     $sql = $listModel->_buildQuerySelect();
     $sql .= $listModel->_buildQueryJoin();
     $emptyRowId = $this->_rowId === '' ? true : false;
     $random = JRequest::getVar('random');
     $usekey = FabrikWorker::getMenuOrRequestVar('usekey', '', $this->isMambot);
     if ($usekey != '') {
         $usekey = explode('|', $usekey);
         foreach ($usekey as &$tmpk) {
             $tmpk = !strstr($tmpk, '.') ? $item->db_table_name . '.' . $tmpk : $tmpk;
             $tmpk = FabrikString::safeColName($tmpk);
         }
         if (!is_array($this->_rowId)) {
             $aRowIds = explode('|', $this->_rowId);
         }
     }
     $comparison = JRequest::getVar('usekey_comparison', '=');
     $viewpk = JRequest::getVar('view_primary_key');
     // $$$ hugh - changed this to !==, as in rowid=-1/usekey situations, we can have a rowid of 0
     // I don't THINK this will have any untoward side effects, but ...
     if (!$random && !$emptyRowId) {
         $sql .= ' WHERE ';
         if (!empty($usekey)) {
             $sql .= "(";
             $parts = array();
             for ($k = 0; $k < count($usekey); $k++) {
                 //ensure that the key value is not quoted as we Quote() afterwards
                 if (strstr($aRowIds[$k], "'")) {
                     $aRowIds[$k] = str_replace("'", '', $aRowIds[$k]);
                 }
                 if ($comparison == '=') {
                     $parts[] = ' ' . $usekey[$k] . ' = ' . $db->quote($aRowIds[$k]);
                 } else {
                     $parts[] = ' ' . $usekey[$k] . ' LIKE ' . $db->quote('%' . $aRowIds[$k] . '%');
                 }
             }
             $sql .= implode(' AND ', $parts);
             $sql .= ')';
         } else {
             $sql .= ' ' . $item->db_primary_key . ' = ' . $db->quote($this->_rowId);
         }
     } else {
         if ($viewpk != '') {
             $sql .= ' WHERE ' . $viewpk . ' ';
         } else {
             if ($random) {
                 // $$$ rob Should this not go after prefilters have been applied ?
                 $sql .= ' ORDER BY RAND() LIMIT 1 ';
             }
         }
     }
     // get prefilter conditions from table and apply them to the record
     //the false, ignores any filters set by the table
     $where = $listModel->_buildQueryWhere(false);
     if (strstr($sql, 'WHERE') && $this->_rowId != '') {
         //do it this way as queries may contain subquerues which we want to keep the where
         $firstword = substr($where, 0, 5);
         if ($firstword == 'WHERE') {
             $where = substr_replace($where, 'AND', 0, 5);
         }
     }
     //set rowId to -2 to indicate random record
     if ($random) {
         $this->_rowId = -2;
     }
     // $$$ rob ensure that all prefilters are wrapped in brackets so that
     // only one record is loaded by the query - might need to set $word = and?
     if (trim($where) != '') {
         $where = explode(' ', $where);
         $word = array_shift($where);
         $sql .= $word . ' (' . implode(' ', $where) . ')';
     }
     if (!$random) {
         // $$$ rob if showing joined repeat groups we want to be able to order them as defined in the table
         $sql .= $listModel->_buildQueryOrder();
     }
     $this->query = $sql;
     return $sql;
 }
开发者ID:rhotog,项目名称:fabrik,代码行数:95,代码来源:form.php

示例3: getTmpl

 /**
  * Get the table template
  *
  * @since 3.0
  *
  * @return string template name
  */
 public function getTmpl()
 {
     if (!isset($this->tmpl)) {
         $input = $this->app->input;
         $item = $this->getTable();
         $params = $this->getParams();
         $document = JFactory::getDocument();
         if ($this->app->isAdmin()) {
             $this->tmpl = $input->get('layout', $params->get('admin_template'));
         } else {
             $this->tmpl = $input->get('layout', $item->template);
             if ($this->app->scope !== 'mod_fabrik_list') {
                 $this->tmpl = FabrikWorker::getMenuOrRequestVar('fabriklayout', $this->tmpl, $this->isMambot);
                 /* $$$ rob 10/03/2012 changed menu param to listlayout to avoid the list menu item
                  * options also being used for the form/details view template
                  */
                 $this->tmpl = FabrikWorker::getMenuOrRequestVar('listlayout', $this->tmpl, $this->isMambot);
             }
         }
         if ($this->tmpl == '' || !FabrikWorker::j3() && $this->tmpl === 'bootstrap') {
             $this->tmpl = FabrikWorker::j3() ? 'bootstrap' : 'default';
         }
         if ($this->app->scope !== 'mod_fabrik_list') {
             /* $$$ rob 10/03/2012 changed menu param to listlayout to avoid the list menu item
              * options also being used for the form/details view template
              */
             // $this->tmpl = FabrikWorker::getMenuOrRequestVar('fabriklayout', $this->tmpl, $this->isMambot);
             $this->tmpl = FabrikWorker::getMenuOrRequestVar('listlayout', $this->tmpl, $this->isMambot);
         }
         if ($document->getType() === 'pdf') {
             $this->tmpl = $params->get('pdf_template', $this->tmpl);
         }
         // Migration test
         if (FabrikWorker::j3()) {
             $modFolder = JPATH_SITE . '/templates/' . $this->app->getTemplate() . '/html/com_fabrik/list/' . $this->tmpl;
             $componentFolder = JPATH_SITE . '/components/com_fabrik/views/list/tmpl/' . $this->tmpl;
         } else {
             $modFolder = JPATH_SITE . '/templates/' . $this->app->getTemplate() . '/themes/' . $this->tmpl;
             $componentFolder = JPATH_SITE . '/components/com_fabrik/views/list/tmpl25/' . $this->tmpl;
         }
         if (!JFolder::exists($componentFolder) && !JFolder::exists($modFolder)) {
             $this->tmpl = FabrikWorker::j3() ? 'bootstrap' : 'default';
         }
     }
     return $this->tmpl;
 }
开发者ID:pascal26,项目名称:fabrik,代码行数:53,代码来源:list.php

示例4: display


//.........这里部分代码省略.........
     }
     if (!class_exists('JSite')) {
         require_once JPATH_ROOT . '/includes/application.php';
     }
     $this->setTitle($w, $params, $model);
     // Deprecated (keep in case people use them in old templates)
     $this->table = new stdClass();
     $this->table->label = FabrikString::translate($w->parseMessageForPlaceHolder($item->label, $_REQUEST));
     $this->table->intro = $params->get('show_into', 1) == 0 ? '' : FabrikString::translate($w->parseMessageForPlaceHolder($item->introduction));
     $this->table->outro = $params->get('show_outro', 1) == 0 ? '' : FabrikString::translate($w->parseMessageForPlaceHolder($params->get('outro')));
     $this->table->id = $item->id;
     $this->table->renderid = $model->getRenderContext();
     $this->table->db_table_name = $item->db_table_name;
     // End deprecated
     $this->list = $this->table;
     $this->list->class = $model->htmlClass();
     $this->group_by = $item->group_by;
     $this->form = new stdClass();
     $this->form->id = $item->form_id;
     $this->renderContext = $model->getRenderContext();
     $this->formid = 'listform_' . $this->renderContext;
     $form = $model->getFormModel();
     $this->table->action = $model->getTableAction();
     $this->showCSV = $model->canCSVExport();
     $this->showCSVImport = $model->canCSVImport();
     $this->toggleCols = $model->toggleCols();
     $this->showToggleCols = (bool) $params->get('toggle_cols', false);
     $this->canGroupBy = $model->canGroupBy();
     $this->navigation = $nav;
     $this->nav = $input->getInt('fabrik_show_nav', $params->get('show-table-nav', 1)) ? $nav->getListFooter($this->renderContext, $model->getTmpl()) : '';
     $this->nav = '<div class="fabrikNav">' . $this->nav . '</div>';
     $this->fabrik_userid = $this->user->get('id');
     $this->canDelete = $model->deletePossible() ? true : false;
     $this->limitLength = $model->limitLength;
     $this->ajax = $model->isAjax();
     $this->showTitle = FabrikWorker::getMenuOrRequestVar('show-title', $params->get('show-title', 1), $this->isMambot, 'request');
     // 3.0 observed in list.js & html moved into fabrik_actions rollover
     $this->showPDF = $params->get('pdf', $fbConfig->get('list_pdf', false));
     if ($this->showPDF) {
         FabrikWorker::canPdf();
     }
     $this->emptyLink = $model->canEmpty() ? '#' : '';
     $this->csvImportLink = $this->showCSVImport ? JRoute::_('index.php?option=com_' . $this->package . '&view=import&filetype=csv&listid=' . $item->id) : '';
     $this->showAdd = $model->canAdd();
     if ($this->showAdd) {
         if ($params->get('show-table-add', 1)) {
             $this->addRecordLink = $model->getAddRecordLink();
         } else {
             $this->showAdd = false;
         }
     }
     $this->addLabel = $model->addLabel();
     $this->showRSS = $params->get('rss', 0) == 0 ? 0 : 1;
     if ($this->showRSS) {
         $this->rssLink = $model->getRSSFeedLink();
         if ($this->rssLink != '') {
             $attribs = array('type' => 'application/rss+xml', 'title' => 'RSS 2.0');
             $this->doc->addHeadLink($this->rssLink, 'alternate', 'rel', $attribs);
         }
     }
     if ($this->app->isAdmin()) {
         // Admin always uses com_fabrik option
         $this->pdfLink = JRoute::_('index.php?option=com_fabrik&task=list.view&listid=' . $item->id . '&format=pdf&tmpl=component');
     } else {
         $pdfLink = 'index.php?option=com_' . $this->package . '&view=list&format=pdf&listid=' . $item->id;
         if (!$this->nodata) {
             // If some data is shown then ensure that menu links reset filters (combined with require filters) doesn't produce an empty data set for the pdf
             $pdfLink .= '&resetfilters=0';
         }
         $this->pdfLink = JRoute::_($pdfLink);
     }
     list($this->headings, $groupHeadings, $this->headingClass, $this->cellClass) = $model->getHeadings();
     $this->groupByHeadings = $model->getGroupByHeadings();
     $this->filter_action = $model->getFilterAction();
     JDEBUG ? $profiler->mark('fabrik getfilters start') : null;
     $this->filters = $model->getFilters('listform_' . $this->renderContext);
     $fKeys = array_keys($this->filters);
     $this->bootShowFilters = count($fKeys) === 1 && $fKeys[0] === 'all' ? false : true;
     $this->clearFliterLink = $model->getClearButton();
     JDEBUG ? $profiler->mark('fabrik getfilters end') : null;
     $this->filterMode = (int) $params->get('show-table-filters');
     $this->toggleFilters = in_array($this->filterMode, array(2, 4, 5));
     $this->showFilters = $model->getShowFilters();
     $this->filterCols = (int) $params->get('list_filter_cols', '1');
     $this->showClearFilters = $this->showFilters || $params->get('advanced-filter') ? true : false;
     $this->emptyDataMessage = $model->getEmptyDataMsg();
     $this->groupheadings = $groupHeadings;
     $this->calculations = $this->_getCalculations($this->headings);
     $this->isGrouped = !($model->getGroupBy() == '');
     $this->colCount = count($this->headings);
     $this->hasButtons = $model->getHasButtons();
     $this->grouptemplates = $model->groupTemplates;
     $this->params = $params;
     $this->loadTemplateBottom();
     $this->getManagementJS($this->rows);
     // Get dropdown list of other tables for quick nav in admin
     $this->tablePicker = $params->get('show-table-picker', $input->get('list-picker', true)) && $this->app->isAdmin() && $this->app->input->get('format') !== 'pdf' ? FabrikHelperHTML::tableList($this->table->id) : '';
     $this->buttons();
     $this->pluginTopButtons = $model->getPluginTopButtons();
 }
开发者ID:glauberm,项目名称:cinevi,代码行数:101,代码来源:view.base.php

示例5: buildQuery

 /**
  * Create the sql query to get the rows data for insertion into the form
  *
  * @param   array  $opts  key: ignoreOrder ignores order by part of query
  *                        Needed for inline edit, as it only selects certain fields, order by on a db join element returns 0 results
  *
  * @return  string  query
  */
 public function buildQuery($opts = array())
 {
     if (isset($this->query)) {
         return $this->query;
     }
     $db = FabrikWorker::getDbo();
     $input = $this->app->input;
     $form = $this->getForm();
     if (!$form->record_in_database) {
         return;
     }
     $listModel = $this->getListModel();
     $item = $listModel->getTable();
     $sql = $listModel->buildQuerySelect('form');
     $sql .= $listModel->buildQueryJoin();
     $emptyRowId = $this->rowId === '' ? true : false;
     $random = $input->get('random');
     $useKey = FabrikWorker::getMenuOrRequestVar('usekey', '', $this->isMambot, 'var');
     if ($useKey != '') {
         $useKey = explode('|', $useKey);
         foreach ($useKey as &$tmpK) {
             $tmpK = !strstr($tmpK, '.') ? $item->db_table_name . '.' . $tmpK : $tmpK;
             $tmpK = FabrikString::safeColName($tmpK);
         }
         if (!is_array($this->rowId)) {
             $aRowIds = explode('|', $this->rowId);
         }
     }
     $comparison = $input->get('usekey_comparison', '=');
     $viewPk = $input->get('view_primary_key');
     // $$$ hugh - changed this to !==, as in rowid=-1/usekey situations, we can have a rowid of 0
     // I don't THINK this will have any untoward side effects, but ...
     if (!$random && !$emptyRowId || !empty($useKey)) {
         $sql .= ' WHERE ';
         if (!empty($useKey)) {
             $sql .= "(";
             $parts = array();
             for ($k = 0; $k < count($useKey); $k++) {
                 /**
                  *
                  * For gory reasons, we have to assume that an empty string cannot be a valid rowid
                  * when using usekey, so just create a 1=-1 if it is.
                  */
                 if ($aRowIds[$k] === '') {
                     $parts[] = ' 1=-1';
                     continue;
                 }
                 // Ensure that the key value is not quoted as we Quote() afterwards
                 if ($comparison == '=') {
                     $parts[] = ' ' . $useKey[$k] . ' = ' . $db->q($aRowIds[$k]);
                 } else {
                     $parts[] = ' ' . $useKey[$k] . ' LIKE ' . $db->q('%' . $aRowIds[$k] . '%');
                 }
             }
             $sql .= implode(' AND ', $parts);
             $sql .= ')';
         } else {
             $sql .= ' ' . $item->db_primary_key . ' = ' . $db->q($this->rowId);
         }
     } else {
         if ($viewPk != '') {
             $sql .= ' WHERE ' . $viewPk . ' ';
         } elseif ($random) {
             // $$$ rob Should this not go after prefilters have been applied ?
             $sql .= ' ORDER BY RAND() LIMIT 1 ';
         }
     }
     // Get pre-filter conditions from table and apply them to the record
     // the false, ignores any filters set by the table
     $where = $listModel->buildQueryWhere(false);
     if (strstr($sql, 'WHERE')) {
         // Do it this way as queries may contain sub-queries which we want to keep the where
         $firstWord = JString::substr($where, 0, 5);
         if ($firstWord == 'WHERE') {
             $where = JString::substr_replace($where, 'AND', 0, 5);
         }
     }
     // Set rowId to -2 to indicate random record
     if ($random) {
         $this->setRowId(-2);
     }
     // $$$ rob ensure that all prefilters are wrapped in brackets so that
     // only one record is loaded by the query - might need to set $word = and?
     if (trim($where) != '') {
         $where = explode(' ', $where);
         $word = array_shift($where);
         $sql .= $word . ' (' . implode(' ', $where) . ')';
     }
     if (!$random && FArrayHelper::getValue($opts, 'ignoreOrder', false) === false) {
         // $$$ rob if showing joined repeat groups we want to be able to order them as defined in the table
         $sql .= $listModel->buildQueryOrder();
     }
//.........这里部分代码省略.........
开发者ID:glauberm,项目名称:cinevi,代码行数:101,代码来源:form.php

示例6: render

 /**
  * 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)
 {
     $name = $this->getHTMLName($repeatCounter);
     $id = $this->getHTMLId($repeatCounter);
     $params = $this->getParams();
     $bits = $this->inputProperties($repeatCounter);
     $value = $this->getValue($data, $repeatCounter);
     $opts = array();
     if ($value == '') {
         $value = array('label' => '', 'link' => '');
     } else {
         if (!is_array($value)) {
             $value = FabrikWorker::JSONtoData($value, true);
             /**
              * In some legacy case, data is like ...
              * [{"label":"foo","link":"bar"}]
              * ... I think if it came from 2.1.  So lets check to see if we need
              * to massage that into the right format
              */
             if (array_key_exists(0, $value) && is_object($value[0])) {
                 $value = JArrayHelper::fromObject($value[0]);
             } elseif (array_key_exists(0, $value)) {
                 $value['label'] = $value[0];
             }
         }
     }
     if (count($value) == 0) {
         $value = array('label' => '', 'link' => '');
     }
     if (FabrikWorker::getMenuOrRequestVar('rowid') == 0 && FArrayHelper::getValue($value, 'link', '') === '') {
         $value['link'] = $params->get('link_default_url');
     }
     if (!$this->isEditable()) {
         $lbl = trim(FArrayHelper::getValue($value, 'label'));
         $href = trim(FArrayHelper::getValue($value, 'link'));
         $w = new FabrikWorker();
         $href = is_array($data) ? $w->parseMessageForPlaceHolder($href, $data) : $w->parseMessageForPlaceHolder($href);
         $opts['target'] = trim($params->get('link_target', ''));
         $opts['smart_link'] = $params->get('link_smart_link', false);
         $opts['rel'] = $params->get('rel', '');
         $title = $params->get('link_title', '');
         if ($title !== '') {
             $opts['title'] = strip_tags($w->parseMessageForPlaceHolder($title, $data));
         }
         return FabrikHelperHTML::a($href, $lbl, $opts);
     }
     $labelname = FabrikString::rtrimword($name, '[]') . '[label]';
     $linkname = FabrikString::rtrimword($name, '[]') . '[link]';
     $bits['name'] = $labelname;
     $bits['placeholder'] = FText::_('PLG_ELEMENT_LINK_LABEL');
     $bits['value'] = $value['label'];
     $bits['class'] .= ' fabrikSubElement';
     unset($bits['id']);
     $layout = $this->getLayout('form');
     $layoutData = new stdClass();
     $layoutData->id = $id;
     $layoutData->name = $name;
     $layoutData->linkAttributes = $bits;
     $bits['placeholder'] = FText::_('PLG_ELEMENT_LINK_URL');
     $bits['name'] = $linkname;
     $bits['value'] = FArrayHelper::getValue($value, 'link');
     if (is_a($bits['value'], 'stdClass')) {
         $bits['value'] = $bits['value']->{0};
     }
     $layoutData->labelAttributes = $bits;
     return $layout->render($layoutData);
 }
开发者ID:LGBGit,项目名称:tierno,代码行数:75,代码来源:link.php

示例7: display

 /**
  * Execute and display a template script.
  *
  * @param   string  $tpl  The name of the template file to parse; automatically searches through the template paths.
  *
  * @return  mixed  A string if successful, otherwise a JError object.
  */
 public function display($tpl = 'default')
 {
     $app = JFactory::getApplication();
     $Itemid = (int) @$app->getMenu('site')->getActive()->id;
     $pluginManager = FabrikWorker::getPluginManager();
     // Needed to load the language file!
     $plugin = $pluginManager->getPlugIn('calendar', 'visualization');
     $model = $this->getModel();
     $usersConfig = JComponentHelper::getParams('com_fabrik');
     $id = JRequest::getVar('id', $usersConfig->get('visualizationid', JRequest::getInt('visualizationid', 0)));
     $model->setId($id);
     $this->row = $model->getVisualization();
     $params = $model->getParams();
     $this->assign('params', $params);
     $this->assign('containerId', $model->getJSRenderContext());
     $this->assignRef('filters', $this->get('Filters'));
     $this->assign('showFilters', JRequest::getInt('showfilters', $params->get('show_filters')) === 1 ? 1 : 0);
     $this->assign('showTitle', JRequest::getInt('show-title', 1));
     $this->assign('filterFormURL', $this->get('FilterFormURL'));
     $calendar = $model->_row;
     $fbConfig = JComponentHelper::getParams('com_fabrik');
     JHTML::stylesheet('media/com_fabrik/css/list.css');
     $params = $model->getParams();
     $canAdd = $params->get('calendar-read-only', 0) == 1 ? 0 : $this->get('CanAdd');
     $this->assign('requiredFiltersFound', $this->get('RequiredFiltersFound'));
     if ($canAdd && $this->requiredFiltersFound) {
         $app->enqueueMessage(JText::_('PLG_VISUALIZATION_CALENDAR_DOUBLE_CLICK_TO_ADD'));
     }
     $this->assign('canAdd', $canAdd);
     $fbConfig = JComponentHelper::getParams('com_fabrik');
     JHTML::stylesheet('media/com_fabrik/css/list.css');
     $params = $model->getParams();
     // Get the active menu item
     $urlfilters = JRequest::get('get');
     unset($urlfilters['option']);
     unset($urlfilters['view']);
     unset($urlfilters['controller']);
     unset($urlfilters['Itemid']);
     unset($urlfilters['visualizationid']);
     unset($urlfilters['format']);
     if (empty($urlfilters)) {
         $urlfilters = new stdClass();
     }
     $urls = new stdClass();
     // Don't JRoute as its wont load with sef?
     $urls->del = 'index.php?option=com_fabrik&controller=visualization.calendar&view=visualization&task=deleteEvent&format=raw&Itemid=' . $Itemid . '&id=' . $id;
     $urls->add = 'index.php?option=com_fabrik&view=visualization&format=raw&Itemid=' . $Itemid . '&id=' . $id;
     $user = JFactory::getUser();
     $legend = $params->get('show_calendar_legend', 0) ? $model->getLegend() : '';
     $tpl = $params->get('calendar_layout', 'default');
     $options = new stdClass();
     $options->url = $urls;
     $options->deleteables = $this->get('DeleteAccess');
     $options->eventLists = $this->get('eventLists');
     $options->calendarId = $calendar->id;
     $options->popwiny = $params->get('yoffset', 0);
     $options->urlfilters = $urlfilters;
     $options->canAdd = $canAdd;
     $options->restFilterStart = FabrikWorker::getMenuOrRequestVar('resetfilters', 0, false, 'request');
     $options->tmpl = $tpl;
     $o = $model->getAddStandardEventFormInfo();
     if ($o != null) {
         $options->listid = $o->id;
     }
     // $$$rob @TODO not sure this is need - it isnt in the timeline viz
     $model->setRequestFilters();
     $options->filters = $model->filters;
     // End not sure
     $options->Itemid = $Itemid;
     $options->show_day = (bool) $params->get('show_day', true);
     $options->show_week = (bool) $params->get('show_week', true);
     $options->days = array(JText::_('SUNDAY'), JText::_('MONDAY'), JText::_('TUESDAY'), JText::_('WEDNESDAY'), JText::_('THURSDAY'), JText::_('FRIDAY'), JText::_('SATURDAY'));
     $options->shortDays = array(JText::_('SUN'), JText::_('MON'), JText::_('TUE'), JText::_('WED'), JText::_('THU'), JText::_('FRI'), JText::_('SAT'));
     $options->months = array(JText::_('JANUARY'), JText::_('FEBRUARY'), JText::_('MARCH'), JText::_('APRIL'), JText::_('MAY'), JText::_('JUNE'), JText::_('JULY'), JText::_('AUGUST'), JText::_('SEPTEMBER'), JText::_('OCTOBER'), JText::_('NOVEMBER'), JText::_('DECEMBER'));
     $options->shortMonths = array(JText::_('JANUARY_SHORT'), JText::_('FEBRUARY_SHORT'), JText::_('MARCH_SHORT'), JText::_('APRIL_SHORT'), JText::_('MAY_SHORT'), JText::_('JUNE_SHORT'), JText::_('JULY_SHORT'), JText::_('AUGUST_SHORT'), JText::_('SEPTEMBER_SHORT'), JText::_('OCTOBER_SHORT'), JText::_('NOVEMBER_SHORT'), JText::_('DECEMBER_SHORT'));
     $options->first_week_day = (int) $params->get('first_week_day', 0);
     $options->monthday = new stdClass();
     $options->monthday->width = (int) $params->get('calendar-monthday-width', 90);
     $options->monthday->height = (int) $params->get('calendar-monthday-height', 80);
     $options->greyscaledweekend = $params->get('greyscaled-week-end', 0);
     $options->viewType = $params->get('calendar_default_view', 'monthView');
     $options->weekday = new stdClass();
     $options->weekday->width = (int) $params->get('calendar-weekday-width', 90);
     $options->weekday->height = (int) $params->get('calendar-weekday-height', 10);
     $options->open = (int) $params->get('open-hour', 0);
     $options->close = (int) $params->get('close-hour', 24);
     $options->showweekends = (bool) $params->get('calendar-show-weekends', true);
     $options->readonly = (bool) $params->get('calendar-read-only', false);
     $json = json_encode($options);
     JText::script('PLG_VISUALIZATION_CALENDAR_NEXT');
     JText::script('PLG_VISUALIZATION_CALENDAR_PREVIOUS');
     JText::script('PLG_VISUALIZATION_CALENDAR_DAY');
     JText::script('PLG_VISUALIZATION_CALENDAR_WEEK');
//.........这里部分代码省略.........
开发者ID:rogeriocc,项目名称:fabrik,代码行数:101,代码来源:view.html.php

示例8: jsOptions

 /**
  * Get Js Options
  *
  * @return stdClass
  * @throws Exception
  */
 private function jsOptions()
 {
     $model = $this->getModel();
     $app = JFactory::getApplication();
     $package = $app->getUserState('com_fabrik.package', 'fabrik');
     $params = $model->getParams();
     $Itemid = FabrikWorker::itemId();
     $urls = new stdClass();
     $calendar = $this->row;
     $j3 = FabrikWorker::j3();
     $tpl = $params->get('fullcalendar_layout', $j3);
     // Get all list where statements - which are then included in the ajax call to ensure we get the correct data set loaded
     $urlFilters = new stdClass();
     $urlFilters->where = $model->buildQueryWhere();
     // Don't JRoute as its wont load with sef?
     $urls->del = 'index.php?option=com_' . $package . '&controller=visualization.fullcalendar&view=visualization&task=deleteEvent&format=raw&Itemid=' . $Itemid . '&id=' . $model->getId();
     $urls->add = 'index.php?option=com_' . $package . '&view=visualization&format=raw&Itemid=' . $Itemid . '&id=' . $model->getId();
     $options = new stdClass();
     $options->url = $urls;
     $options->dateLimits = $model->getDateLimits();
     $options->deleteables = $model->getDeleteAccess();
     $options->eventLists = $model->getEventLists();
     $options->calendarId = $calendar->id;
     $options->popwiny = $params->get('yoffset', 0);
     $options->urlfilters = $urlFilters;
     $options->canAdd = $this->canAdd;
     $options->showFullDetails = (bool) $params->get('show_full_details', false);
     $options->restFilterStart = FabrikWorker::getMenuOrRequestVar('resetfilters', 0, false, 'request');
     $options->tmpl = $tpl;
     // $$$rob @TODO not sure this is need - it isn't in the timeline viz
     $model->setRequestFilters();
     $options->filters = $model->filters;
     // End not sure
     $options->Itemid = $Itemid;
     $options->show_day = (bool) $params->get('show_day', true);
     $options->show_week = (bool) $params->get('show_week', true);
     $options->default_view = $params->get('fullcalendar_default_view', 'month');
     $options->add_type = $params->get('add_type', 'both');
     $options->time_format = $params->get('time_format', 'H(:mm)');
     $options->first_week_day = (int) $params->get('first_week_day', 0);
     $options->minDuration = $params->get('minimum_duration', "00:30:00");
     $options->open = $params->get('open-hour', "00:00:00");
     $options->close = $params->get('close-hour', "23:59:59");
     $options->lang = FabrikWorker::getShortLang();
     $options->showweekends = (bool) $params->get('show-weekends', true);
     $options->greyscaledweekend = (bool) $params->get('greyscaled-weekend', false);
     $options->readonly = (bool) $params->get('calendar-read-only', false);
     $options->timeFormat = $params->get('time_format', '%X');
     $options->readonlyMonth = (bool) $params->get('readonly_monthview', false);
     $options->j3 = FabrikWorker::j3();
     $options->calOptions = $params->get('calOptions', '{}');
     $options->startOffset = (int) $params->get('startdate_hour_offset', '0');
     return $options;
 }
开发者ID:jfquestiaux,项目名称:fabrik,代码行数:60,代码来源:view.html.php

示例9: onLoad

 /**
  * Synchronize J! users with F! table if empty
  *
  * @return  void
  */
 public function onLoad()
 {
     $params = $this->getParams();
     $formModel = $this->getModel();
     // don't do anything if this is a details view
     if ($this->app->input->get('view') === 'details') {
         return;
     }
     if ($params->get('synchro_users') == 1) {
         $listModel = $formModel->getlistModel();
         $fabrikDb = $listModel->getDb();
         $tableName = $listModel->getTable()->db_table_name;
         $query = $fabrikDb->getQuery(true);
         $query->select('COUNT(*)')->from($tableName);
         // Is there already any record in our F! table Users
         $fabrikDb->setQuery($query);
         $count = (int) $fabrikDb->loadResult();
         if ($count === 0) {
             try {
                 // Load the list of users from #__users
                 $query->clear();
                 $query->select('DISTINCT u.*, ug.group_id')->from($fabrikDb->quoteName('#__users') . 'AS u')->join('LEFT', '#__user_usergroup_map AS ug ON ug.user_id = u.id')->group('u.id')->order('u.id ASC');
                 $fabrikDb->setQuery($query);
                 $origUsers = $fabrikDb->loadObjectList();
                 $count = 0;
                 // @TODO really should batch this stuff up, maybe 100 at a time, rather than an insert for every user!
                 foreach ($origUsers as $o_user) {
                     // Insert into our F! table
                     $query->clear();
                     $fields = array($this->getFieldName('juser_field_userid', true) => $o_user->id, $this->getFieldName('juser_field_block', true) => $o_user->block, $this->getFieldName('juser_field_email', true) => $o_user->email, $this->getFieldName('juser_field_password', true) => $o_user->password, $this->getFieldName('juser_field_name', true) => $o_user->name, $this->getFieldName('juser_field_username', true) => $o_user->username);
                     if (!FabrikWorker::j3()) {
                         $fields[$this->getFieldName('juser_field_usertype', true)] = $o_user->group_id;
                     }
                     $query->insert($tableName);
                     foreach ($fields as $key => $val) {
                         $query->set($fabrikDb->quoteName($key) . ' = ' . $fabrikDb->quote($val));
                     }
                     $fabrikDb->setQuery($query);
                     $fabrikDb->execute();
                     $count++;
                 }
                 $this->app->enqueueMessage(JText::sprintf('PLG_FABRIK_FORM_JUSER_MSG_SYNC_OK', $count, $tableName));
             } catch (Exception $e) {
                 $this->app->enqueueMessage(FText::_('PLG_FABRIK_FORM_JUSER_MSG_SYNC_ERROR'));
             }
         }
     }
     // If we are editing a user, we need to make sure the password field is cleared
     if (FabrikWorker::getMenuOrRequestVar('rowid')) {
         $this->passwordfield = $this->getFieldName('juser_field_password');
         $formModel->data[$this->passwordfield] = '';
         $formModel->data[$this->passwordfield . '_raw'] = '';
         // $$$$ hugh - testing 'sync on edit'
         if ($params->get('juser_sync_on_edit', 0) == 1) {
             $this->useridfield = $this->getFieldName('juser_field_userid');
             $userId = (int) FArrayHelper::getValue($formModel->data, $this->useridfield . '_raw');
             /**
              * $$$ hugh - after a validation failure, userid _raw is an array.
              * Trying to work out why, and fix that, but need a bandaid for now.
              */
             if (is_array($userId)) {
                 $userId = (int) FArrayHelper::getValue($userId, 0, 0);
             }
             if ($userId > 0) {
                 // See https://github.com/Fabrik/fabrik/issues/1026 - don't use JFactory as this loads in session stored user
                 $user = new JUser($userId);
                 if ($user->get('id') == $userId) {
                     $this->namefield = $this->getFieldName('juser_field_name');
                     $formModel->data[$this->namefield] = $user->get('name');
                     $formModel->data[$this->namefield . '_raw'] = $user->get('name');
                     $this->usernamefield = $this->getFieldName('juser_field_username');
                     $formModel->data[$this->usernamefield] = $user->get('username');
                     $formModel->data[$this->usernamefield . '_raw'] = $user->get('username');
                     $this->emailfield = $this->getFieldName('juser_field_email');
                     $formModel->data[$this->emailfield] = $user->get('email');
                     $formModel->data[$this->emailfield . '_raw'] = $user->get('email');
                     // @FIXME this is out of date for J1.7 - no gid field
                     if ($params->get('juser_field_usertype') != '') {
                         $groupElement = FabrikWorker::getPluginManager()->getElementPlugin($params->get('juser_field_usertype'));
                         $groupElementClass = get_class($groupElement);
                         $gid = $user->groups;
                         if ($groupElementClass !== 'PlgFabrik_ElementUsergroup') {
                             $gid = array_shift($gid);
                         }
                         $this->gidfield = $this->getFieldName('juser_field_usertype');
                         $formModel->data[$this->gidfield] = $gid;
                         $formModel->data[$this->gidfield . '_raw'] = $gid;
                     }
                     if ($params->get('juser_field_block') != '') {
                         $this->blockfield = $this->getFieldName('juser_field_block');
                         $formModel->data[$this->blockfield] = $user->get('block');
                         $formModel->data[$this->blockfield . '_raw'] = $user->get('block');
                     }
                 }
             }
//.........这里部分代码省略.........
开发者ID:jfquestiaux,项目名称:fabrik,代码行数:101,代码来源:juser.php

示例10: getFilters

 /**
  * This merges session data for the fromForm with any request data
  * allowing us to filter data results from both search forms and filters
  *
  * @return array
  */
 public function getFilters()
 {
     $input = $this->app->input;
     // Form or detailed views should not apply filters? what about querystrings to set up the default values?
     if ($input->get('view') == 'details' || $input->get('view') == 'form') {
         $this->request = array();
         return $this->request;
     }
     if (isset($this->request)) {
         return $this->request;
     }
     $profiler = JProfiler::getInstance('Application');
     $filters = array();
     // $$$ rob clears all list filters, and does NOT apply any
     // other filters to the table, even if in querystring
     if ($input->getInt('clearfilters') === 1 && $this->activeTable()) {
         $this->clearFilters();
         $this->request = array();
         return $this->request;
     }
     if ($input->get('replacefilters') == 1) {
         $this->clearFilters();
     }
     /**
      * $$$ fehers The filter is cleared and applied at once without having to clear it first and then apply it (would have to be two clicks).
      * useful in querystring filters if you want to clear old filters and apply new filters
      */
     // $$$ rob 20/03/2011 - request resetfilters should overwrite menu option - otherwise filter then nav will remove filter.
     if (($input->get('filterclear') == 1 || FabrikWorker::getMenuOrRequestVar('resetfilters', 0, false, 'request') == 1) && $this->activeTable()) {
         $this->clearFilters();
     }
     JDEBUG ? $profiler->mark('listfilter:cleared') : null;
     // Overwrite filters with querystring filter
     $this->getQuerystringFilters($filters);
     JDEBUG ? $profiler->mark('listfilter:querystring filters got') : null;
     FabrikHelperHTML::debug($filters, 'filter array: after querystring filters');
     $request = $this->getPostFilterArray();
     JDEBUG ? $profiler->mark('listfilter:request got') : null;
     $this->counter = count(FArrayHelper::getValue($request, 'key', array()));
     // Overwrite filters with session filters (fabrik_incsessionfilters set to false in listModel::getRecordCounts / for faceted data counts
     if ($input->get('fabrik_incsessionfilters', true)) {
         $this->getSessionFilters($filters);
     }
     FabrikHelperHTML::debug($filters, 'filter array: after session filters');
     JDEBUG ? $profiler->mark('listfilter:session filters got') : null;
     // The search form search all has lower priority than the filter search all and search form filters
     $this->getSearchFormSearchAllFilters($filters);
     // Overwrite session filters with search form filters
     $this->getSearchFormFilters($filters);
     FabrikHelperHTML::debug($filters, 'filter array: search form');
     // Overwrite filters with 'search all' filter
     $this->getSearchAllFilters($filters);
     JDEBUG ? $profiler->mark('listfilter:search all done') : null;
     // Finally overwrite filters with post filters
     $this->getPostFilters($filters);
     JDEBUG ? $profiler->mark('listfilter:post filters got') : null;
     FabrikHelperHTML::debug($filters, 'filter array: after getpostfilters');
     $this->request = $filters;
     FabrikHelperHTML::debug($this->request, 'filter array');
     $this->checkAccess($filters);
     $this->normalizeKeys($filters);
     return $filters;
 }
开发者ID:LGBGit,项目名称:tierno,代码行数:69,代码来源:listfilter.php

示例11: onLoad

 function onLoad(&$params, &$formModel)
 {
     if ($params->get('synchro_users') == 1) {
         $listModel = $formModel->getlistModel();
         $fabrikDb = $listModel->getDb();
         $tableName = $listModel->getTable()->db_table_name;
         // Is there already any record in our F! table Users
         $fabrikDb->setQuery("SELECT * FROM {$tableName}");
         $notempty = $fabrikDb->loadResult();
         if (!$notempty) {
             // Load the list of users from #__users
             $old_users = "SELECT * FROM " . $fabrikDb->nameQuote('#__users') . " ORDER BY id ASC";
             $fabrikDb->setQuery($old_users);
             $o_users = $fabrikDb->loadObjectList();
             $count = 0;
             // @TODO really should batch this stuff up, maybe 100 at a time, rather than an insert for every user!
             foreach ($o_users as $o_user) {
                 // Insert into our F! table
                 $sync = "INSERT INTO " . $tableName . " (`" . preg_replace('/^(' . $tableName . '___)/', '', $this->getFieldName($params, 'juser_field_userid')) . "`, `" . preg_replace('/^(' . $tableName . '___)/', '', $this->getFieldName($params, 'juser_field_block')) . "`, `" . preg_replace('/^(' . $tableName . '___)/', '', $this->getFieldName($params, 'juser_field_usertype')) . "`, `" . preg_replace('/^(' . $tableName . '___)/', '', $this->getFieldName($params, 'juser_field_email')) . "`, `" . preg_replace('/^(' . $tableName . '___)/', '', $this->getFieldName($params, 'juser_field_password')) . "`, `" . preg_replace('/^(' . $tableName . '___)/', '', $this->getFieldName($params, 'juser_field_username')) . "`, `" . preg_replace('/^(' . $tableName . '___)/', '', $this->getFieldName($params, 'juser_field_name')) . "`) VALUES ('" . $o_user->id . "', '" . $o_user->block . "', '" . $o_user->gid . "', '" . $o_user->email . "', '" . $o_user->password . "', '" . $o_user->username . "', '" . $o_user->name . "');";
                 $fabrikDb->setQuery($sync);
                 $import = $fabrikDb->query();
                 $count = $count + 1;
             }
             //@TODO - $$$rob - the $import test below only checks if the LAST query ran ok - should check ALL
             // Display synchonization result
             $app = JFactory::getApplication();
             if ($import) {
                 $app->enqueueMessage(JText::sprintf('%s user(s) successfully synchronized from #__users to %s', $count, $tableName));
             } else {
                 $app->enqueueMessage(JText::_('An error occured while Synchronizing users. Please verify that all fields are correctly set in your Fabrik table and selected in fabrikjuser form plugin'));
             }
         }
     }
     // if we are editing a user, we need to make sure the password field is cleared
     //if (JRequest::getInt('rowid')) {
     if (FabrikWorker::getMenuOrRequestVar('rowid')) {
         $this->passwordfield = $this->getFieldName($params, 'juser_field_password');
         $formModel->_data[$this->passwordfield] = '';
         $formModel->_data[$this->passwordfield . '_raw'] = '';
         // $$$$ hugh - testing 'sync on edit'
         if ($params->get('juser_sync_on_edit', 0) == 1) {
             $this->useridfield = $this->getFieldName($params, 'juser_field_userid');
             $userid = (int) JArrayHelper::getValue($formModel->_data, $this->useridfield . '_raw');
             if ($userid > 0) {
                 $user = JFactory::getUser($userid);
                 if ($user->get('id') == $userid) {
                     $this->namefield = $this->getFieldName($params, 'juser_field_name');
                     $formModel->_data[$this->namefield] = $user->get('name');
                     $formModel->_data[$this->namefield . '_raw'] = $user->get('name');
                     $this->usernamefield = $this->getFieldName($params, 'juser_field_username');
                     $formModel->_data[$this->usernamefield] = $user->get('username');
                     $formModel->_data[$this->usernamefield . '_raw'] = $user->get('username');
                     $this->emailfield = $this->getFieldName($params, 'juser_field_email');
                     $formModel->_data[$this->emailfield] = $user->get('email');
                     $formModel->_data[$this->emailfield . '_raw'] = $user->get('email');
                     //@FIXME this is out of date for J1.7 - no gid field
                     if ($params->get('juser_field_usertype') != '') {
                         $gid = $user->get('gid');
                         $this->gidfield = $this->getFieldName($params, 'juser_field_usertype');
                         $formModel->_data[$this->gidfield] = $gid;
                         $formModel->_data[$this->gidfield . '_raw'] = $gid;
                     }
                     if ($params->get('juser_field_block') != '') {
                         $this->blockfield = $this->getFieldName($params, 'juser_field_block');
                         $formModel->_data[$this->blockfield] = $user->get('block');
                         $formModel->_data[$this->blockfield . '_raw'] = $user->get('block');
                     }
                 }
             }
         }
     }
 }
开发者ID:rw1,项目名称:fabrik,代码行数:72,代码来源:juser.php

示例12: _loadTmplBottom

 /**
  * Create the fom bottom hidden fields
  *
  * @param   object  &$form  object containg form view properties
  *
  * @return  void
  */
 protected function _loadTmplBottom(&$form)
 {
     $app = JFactory::getApplication();
     $menuItem = $app->getMenu('site')->getActive();
     $Itemid = $menuItem ? $menuItem->id : 0;
     $model = $this->getModel();
     $listModel = $model->getListModel();
     $canDelete = $listModel->canDelete($model->_data);
     $params = $model->getParams();
     $task = 'form.process';
     $reffer = JRequest::getVar('HTTP_REFERER', '', 'server');
     // $$$rob - if returning from a failed validation then we should use the fabrik_referrer post var
     $reffer = str_replace('&', '&amp;', JRequest::getVar('fabrik_referrer', $reffer));
     $this_rowid = is_array($model->_rowId) ? implode('|', $model->_rowId) : $model->_rowId;
     $fields = array('<input type="hidden" name="listid" value="' . $listModel->getId() . '" />', '<input type="hidden" name="listref" value="' . $listModel->getId() . '" />', '<input type="hidden" name="rowid" value="' . $this_rowid . '" />', '<input type="hidden" name="Itemid" value="' . $Itemid . '" />', '<input type="hidden" name="option" value="com_fabrik" />', '<input type="hidden" name="task" value="' . $task . '" />', '<input type="hidden" name="isMambot" value="' . $this->isMambot . '" />', '<input type="hidden" name="formid" value="' . $model->get('id') . '" />', '<input type="hidden" name="returntoform" value="0" />', '<input type="hidden" name="fabrik_referrer" value="' . $reffer . '" />', '<input type="hidden" name="fabrik_ajax" value="' . (int) $model->isAjax() . '" />');
     $fields[] = '<input type="hidden" name="_packageId" value="' . $model->packageId . '" />';
     if ($usekey = FabrikWorker::getMenuOrRequestVar('usekey', '')) {
         // $$$rob v's been set from -1 to the actual row id - so ignore usekyey not sure if we should comment this out
         // see http://fabrikar.com/forums/showthread.php?t=10297&page=5
         $fields[] = '<input type="hidden" name="usekey" value="' . $usekey . '" />';
         $pk_val = JArrayHelper::getValue($model->_data, FabrikString::safeColNameToArrayKey($listModel->getTable()->db_primary_key));
         if (empty($pk_val)) {
             $fields[] = '<input type="hidden" name="usekey_newrecord" value="1" />';
         }
     }
     /* $$$ hugh - testing a fix for pagination issue when submitting a 'search form'.
      * If this is a search form, we need to clear 'limitstart', otherwise ... say we
      * were last on page 4 of the (unfiltered) target table, and the search yields less than 4 pages,
      * we end up with a blank table 'cos the wrong LIMIT's are applied to the query
      */
     $save_insessions = $params->get('save_insession', '');
     if (is_array($save_insessions)) {
         foreach ($save_insessions as $save_insession) {
             if ($save_insession == '1') {
                 $fields[] = '<input type="hidden" name="limitstart" value="0" />';
                 break;
             }
         }
     }
     $fields[] = JHTML::_('form.token');
     $form->resetButton = $params->get('reset_button', 0) && $this->editable == "1" ? '<input type="reset" class="button btn" name="Reset" value="' . $params->get('reset_button_label') . '" />' : '';
     $form->copyButton = $params->get('copy_button', 0) && $this->editable && $model->_rowId != '' ? '<input type="submit" class="button btn" name="Copy" value="' . $params->get('copy_button_label') . '" />' : '';
     $applyButtonType = $model->isAjax() ? 'button' : 'submit';
     $form->applyButton = $params->get('apply_button', 0) && $this->editable ? '<input type="' . $applyButtonType . '" class="button btn" name="apply" value="' . $params->get('apply_button_label') . '" />' : '';
     $form->deleteButton = $params->get('delete_button', 0) && $canDelete && $this->editable && $this_rowid != 0 ? '<input type="submit" value="' . $params->get('delete_button_label', 'Delete') . '" class="button btn" name="delete" />' : '';
     $form->gobackButton = $params->get('goback_button', 0) == "1" ? '<input type="button" class="button btn" name="Goback" ' . FabrikWorker::goBackAction() . ' value="' . $params->get('goback_button_label') . '" />' : '';
     if ($model->isEditable() && $params->get('submit_button', 1)) {
         $button = $model->isAjax() ? "button" : "submit";
         $submitClass = FabrikString::clean($form->submit_button_label);
         $form->submitButton = '<input type="' . $button . '" class="button ' . $submitClass . ' btn" name="submit" value="' . $form->submit_button_label . '" />';
     } else {
         $form->submitButton = '';
     }
     if ($this->isMultiPage) {
         $form->prevButton = '<input type="button" class="fabrikPagePrevious button" name="fabrikPagePrevious" value="' . JText::_('COM_FABRIK_PREVIOUS') . '" />';
         $form->nextButton = '<input type="button" class="fabrikPageNext button" name="fabrikPageNext" value="' . JText::_('COM_FABRIK_NEXT') . '" />';
     } else {
         $form->nextButton = '';
         $form->prevButton = '';
     }
     // $$$ hugh - hide actions section is we're printing, or if not actions selected
     $noButtons = empty($form->nextButton) && empty($form->prevButton) && empty($form->submitButton) && empty($form->gobackButton) && empty($form->deleteButton) && empty($form->applyButton) && empty($form->copyButton) && empty($form->resetButton);
     if (JRequest::getVar('print', '0') == '1' || $noButtons) {
         $this->hasActions = false;
     } else {
         $this->hasActions = true;
     }
     $format = $model->isAjax() ? 'raw' : 'html';
     $fields[] = '<input type="hidden" name="format" value="' . $format . '" />';
     $groups = $model->getGroupsHiarachy();
     foreach ($groups as $groupModel) {
         $group = $groupModel->getGroup();
         $c = $groupModel->repeatTotal;
         // Used for validations
         $fields[] = '<input type="hidden" name="fabrik_repeat_group[' . $group->id . ']" value="' . $c . '" id="fabrik_repeat_group_' . $group->id . '_counter" />';
     }
     // $$$ hugh - testing social_profile_hash stuff
     if (JRequest::getVar('fabrik_social_profile_hash', '') != '') {
         $fields[] = '<input type="hidden" name="fabrik_social_profile_hash" value="' . JRequest::getCmd('fabrik_social_profile_hash', '') . '" id="fabrik_social_profile_hash" />';
     }
     $this->_cryptQueryString($fields);
     $this->_cryptViewOnlyElements($fields);
     $this->hiddenFields = implode("\n", $fields);
 }
开发者ID:rogeriocc,项目名称:fabrik,代码行数:91,代码来源:view.base.php

示例13: getRowId

 /**
  * get the current records row id
  *  setting a rowid of -1 will load in the current users record (used in
  *  conjunction wth usekey variable
  *
  *  setting a rowid of -2 will load in the last created record
  *
  * @return string rowid
  */
 function getRowId($useMenu = false)
 {
     if (!$useMenu && isset($this->_rowId)) {
         return $this->_rowId;
     }
     $usersConfig =& JComponentHelper::getParams('com_fabrik');
     $user =& JFactory::getUser();
     $pluginManager =& $this->getPluginManager();
     // $$$rob if we show a form module when in a fabrik form component view - we shouldn't use
     // the request rowid for the mambot as that value is destinded for the component
     if ($this->_isMambot && JRequest::getCmd('option') == 'com_fabrik') {
         $this->_rowId = $usersConfig->get('rowid');
     } else {
         if ($useMenu) {
             $this->_rowId = FabrikWorker::getMenuOrRequestVar('rowid', '', $this->_isMambot, 'menu');
         } else {
             $this->_rowId = JRequest::getVar('rowid', $usersConfig->get('rowid'));
         }
     }
     if ($this->getListModel()->getParams()->get('sef-slug') !== '') {
         $this->_rowId = explode(":", $this->_rowId);
         $this->_rowId = array_shift($this->_rowId);
     }
     // $$$ hugh - for some screwed up reason, when using SEF, rowid=-1 ends up as :1
     // $$$ rob === compare as otherwise 0 == ":1" which menat that the users record was  loaded
     if ((string) $this->_rowId === ":1") {
         $this->_rowId = "-1";
     }
     // set rowid to -1 to load in the current users record
     switch ($this->_rowId) {
         case '-1':
             $this->_rowId = $user->get('id');
             break;
         case '-2':
             //set rowid to -2 to load in the last recorded record
             $this->_rowId = $this->getMaxRowId();
             break;
     }
     $pluginManager->runPlugins('onSetRowId', $this);
     return $this->_rowId;
 }
开发者ID:nikshade,项目名称:fabrik21,代码行数:50,代码来源:form.php

示例14: onLoad

 /**
  * Synchronize J! users with F! table if empty
  * @param	object	plugin parameters
  * @param	object	form model
  */
 function onLoad(&$params, &$formModel)
 {
     if ($params->get('synchro_users') == 1) {
         $listModel = $formModel->getlistModel();
         $fabrikDb = $listModel->getDb();
         $tableName = $listModel->getTable()->db_table_name;
         $query = $fabrikDb->getQuery(true);
         $query->select('COUNT(*)')->from($tableName);
         // Is there already any record in our F! table Users
         $fabrikDb->setQuery($query);
         $count = (int) $fabrikDb->loadResult();
         if ($count === 0) {
             // Load the list of users from #__users
             $query->clear();
             $query->select('*')->from($fabrikDb->quoteName('#__users'))->order('iD ASC');
             $fabrikDb->setQuery($query);
             $origUsers = $fabrikDb->loadObjectList();
             $count = 0;
             // @TODO really should batch this stuff up, maybe 100 at a time, rather than an insert for every user!
             foreach ($origUsers as $o_user) {
                 // Insert into our F! table
                 $query->clear();
                 $fields = array($this->getFieldName($params, 'juser_field_userid', true) => $o_user->id, $this->getFieldName($params, 'juser_field_block', true) => $o_user->block, $this->getFieldName($params, 'juser_field_email', true) => $o_user->email, $this->getFieldName($params, 'juser_field_password', true) => $o_user->password, $this->getFieldName($params, 'juser_field_name', true) => $o_user->username, $this->getFieldName($params, 'juser_field_username', true) => $o_user->username);
                 $query->insert($tableName);
                 foreach ($fields as $key => $val) {
                     $query->set($fabrikDb->quoteName($key) . ' = ' . $fabrikDb->quote($val));
                 }
                 $fabrikDb->setQuery($query);
                 if (!$fabrikDb->query()) {
                     JError::raiseNotice(400, $fabrikDb->getErrorMsg());
                 }
                 $import = $fabrikDb->query();
                 $count = $count + 1;
             }
             //@TODO - $$$rob - the $import test below only checks if the LAST query ran ok - should check ALL
             // Display synchonization result
             $app = JFactory::getApplication();
             if ($import) {
                 $app->enqueueMessage(JText::sprintf('PLG_FABRIK_FORM_JUSER_MSG_SYNC_OK', $count, $tableName));
             } else {
                 $app->enqueueMessage(JText::_('PLG_FABRIK_FORM_JUSER_MSG_SYNC_ERROR'));
             }
         }
     }
     // if we are editing a user, we need to make sure the password field is cleared
     if (FabrikWorker::getMenuOrRequestVar('rowid')) {
         $this->passwordfield = $this->getFieldName($params, 'juser_field_password');
         $formModel->_data[$this->passwordfield] = '';
         $formModel->_data[$this->passwordfield . '_raw'] = '';
         // $$$$ hugh - testing 'sync on edit'
         if ($params->get('juser_sync_on_edit', 0) == 1) {
             $this->useridfield = $this->getFieldName($params, 'juser_field_userid');
             $userid = (int) JArrayHelper::getValue($formModel->_data, $this->useridfield . '_raw');
             if ($userid > 0) {
                 $user = JFactory::getUser($userid);
                 if ($user->get('id') == $userid) {
                     $this->namefield = $this->getFieldName($params, 'juser_field_name');
                     $formModel->_data[$this->namefield] = $user->get('name');
                     $formModel->_data[$this->namefield . '_raw'] = $user->get('name');
                     $this->usernamefield = $this->getFieldName($params, 'juser_field_username');
                     $formModel->_data[$this->usernamefield] = $user->get('username');
                     $formModel->_data[$this->usernamefield . '_raw'] = $user->get('username');
                     $this->emailfield = $this->getFieldName($params, 'juser_field_email');
                     $formModel->_data[$this->emailfield] = $user->get('email');
                     $formModel->_data[$this->emailfield . '_raw'] = $user->get('email');
                     //@FIXME this is out of date for J1.7 - no gid field
                     if ($params->get('juser_field_usertype') != '') {
                         $gid = $user->get('gid');
                         $this->gidfield = $this->getFieldName($params, 'juser_field_usertype');
                         $formModel->_data[$this->gidfield] = $gid;
                         $formModel->_data[$this->gidfield . '_raw'] = $gid;
                     }
                     if ($params->get('juser_field_block') != '') {
                         $this->blockfield = $this->getFieldName($params, 'juser_field_block');
                         $formModel->_data[$this->blockfield] = $user->get('block');
                         $formModel->_data[$this->blockfield . '_raw'] = $user->get('block');
                     }
                 }
             }
         }
     }
 }
开发者ID:rhotog,项目名称:fabrik,代码行数:87,代码来源:juser.php

示例15: getPlaylist

 /**
  * Get Playlist
  *
  * @return string
  */
 protected function getPlaylist()
 {
     $app = JFactory::getApplication();
     $package = $app->getUserState('com_fabrik.package', 'fabrik');
     $params = $this->getParams();
     $mediaElement = $params->get('media_media_elementList');
     $mediaElement .= '_raw';
     $titleElement = $params->get('media_title_elementList', '');
     $imageElement = $params->get('media_image_elementList', '');
     if (!empty($imageElement)) {
         $imageElement .= '_raw';
     }
     $infoElement = $params->get('media_info_elementList', '');
     $noteElement = $params->get('media_note_elementList', '');
     $dateElement = $params->get('media_published_elementList', '');
     $listid = $params->get('media_table');
     $listModel = JModelLegacy::getInstance('list', 'FabrikFEModel');
     $listModel->setId($listid);
     $list = $listModel->getTable();
     $form = $listModel->getFormModel();
     /*
      * remove filters?
      * $$$ hugh - remove pagination BEFORE calling render().  Otherwise render() applies
      * session state/defaults when it calls getPagination, which is then returned as a cached
      * object if we call getPagination after render().  So call it first, then render() will
      * get our cached pagination, rather than vice versa.
      * Changes in f3 seem to mean that we'll have to poke around in the user state,
      * rather than just call getPagination().  So we need to remember previous state of
      * limitstart and limitlength, set them to 0, render the list, then reset to original
      * values (so we don't mess with any instances of the list user may load).  This code
      * seems to kinda work.  Once I've tested it further, will probably move it into to
      * a generic viz model method, so all viz's can call it.
      */
     $context = 'com_' . $package . '.list' . $listModel->getRenderContext() . '.';
     $item = $listModel->getTable();
     $rowsPerPage = FabrikWorker::getMenuOrRequestVar('rows_per_page', $item->rows_per_page);
     $orig_limitstart = $app->getUserState('limitstart', 0);
     $orig_limitlength = $app->getUserState('limitlength', $rowsPerPage);
     $app->setUserState($context . 'limitstart', 0);
     $app->setUserState($context . 'limitlength', 0);
     $nav = $listModel->getPagination(0, 0, 0);
     $listModel->render();
     $alldata = $listModel->getData();
     $app->setUserState($context . 'limitstart', $orig_limitstart);
     $app->setUserState($context . 'limitlength', $orig_limitlength);
     $document = JFactory::getDocument();
     if ($params->get('media_which_player', 'jw') == 'xspf') {
         $retstr = "<?xml version=\"1.0\" encoding=\"" . $document->_charset . "\"?>\n";
         $retstr .= "<playlist version=\"1\" xmlns = \"http://xspf.org/ns/0/\">\n";
         $retstr .= "\t<title>" . $list->label . "</title>\n";
         $retstr .= "\t<trackList>\n";
         foreach ($alldata as $data) {
             foreach ($data as $row) {
                 if (!isset($row->{$mediaElement})) {
                     continue;
                 }
                 $location = $row->{$mediaElement};
                 if (empty($location)) {
                     continue;
                 }
                 $location = str_replace('\\', '/', $location);
                 $location = JString::ltrim($location, '/');
                 $location = COM_FABRIK_LIVESITE . $location;
                 $retstr .= "\t\t<track>\n";
                 $retstr .= "\t\t\t<location>" . $location . "</location>\n";
                 if (!empty($titleElement)) {
                     $title = $row->{$titleElement};
                     $retstr .= "\t\t\t<title>" . $title . "</title>\n";
                 }
                 if (!empty($imageElement)) {
                     $image = $row->{$imageElement};
                     if (!empty($image)) {
                         $image = str_replace('\\', '/', $image);
                         $image = JString::ltrim($image, '/');
                         $image = COM_FABRIK_LIVESITE . $image;
                         $retstr .= "\t\t\t<image>" . $image . "</image>\n";
                     }
                 }
                 if (!empty($noteElement)) {
                     $note = $row->{$noteElement};
                     $retstr .= "\t\t\t<annotation>" . $note . "</annotation>\n";
                 }
                 if (!empty($infoElement)) {
                     $link = $row->{$titleElement};
                     $retstr .= "\t\t\t<info>" . $link . "</info>\n";
                 } else {
                     $link = JRoute::_('index.php?option=com_' . $package . '&view=form&formid=' . $form->getId() . '&rowid=' . $row->__pk_val);
                     $retstr .= "\t\t\t<info>" . $link . "</info>\n";
                 }
                 $retstr .= "\t\t</track>\n";
             }
         }
         $retstr .= "\t</trackList>\n";
         $retstr .= "</playlist>\n";
     } else {
//.........这里部分代码省略.........
开发者ID:ppantilla,项目名称:bbninja,代码行数:101,代码来源:media.php


注:本文中的FabrikWorker::getMenuOrRequestVar方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。