/** * validate the elements data against the rule * @param string data to check * @param object element * @param int plugin sequence ref * @return bol true if validation passes, false if fails */ function validate($data, &$element, $c) { if (empty($data)) { return false; } $params = $this->getParams(); //as ornot is a radio button it gets json encoded/decoded as an object $ornot = (object) $params->get('emailexists_or_not'); $ornot = isset($ornot->{$c}) ? $ornot->{$c} : 'fail_if_exists'; jimport('joomla.user.helper'); $db = FabrikWorker::getDbo(true); $query = $db->getQuery(true); $query->select('id')->from('#__users')->where('email = ' . $db->quote($data)); $db->setQuery($query); $result = $db->loadResult(); if (!$result) { if ($ornot == 'fail_if_exists') { return true; } } else { if ($ornot == 'fail_if_not_exists') { return true; } } return false; }
/** * Method to get the field options. * * @return array The field option objects. */ protected function getOptions() { $connectionDd = $this->element['observe']; $connectionName = 'connection_id'; $connId = (int) $this->form->getValue($connectionName); $options = array(); $db = FabrikWorker::getDbo(true); // DB join element observes 'params___join_conn_id' if (strstr($connectionDd, 'params_') && $connId === 0) { $connectionName = str_replace('params_', 'params.', $connectionDd); $connId = (int) $this->form->getValue($connectionName); } if ($connectionDd == '') { // We are not monitoring a connection drop down so load in all tables $query = "SHOW TABLES"; $db->setQuery($query); $items = $db->loadColumn(); $options[] = JHTML::_('select.option', null, null); foreach ($items as $l) { $options[] = JHTML::_('select.option', $l, $l); } } else { // Delay for the connection to trigger an update via js. } return $options; }
/** * Display the view */ function display() { $document = JFactory::getDocument(); $viewName = JRequest::getVar('view', 'package', 'default', 'cmd'); $viewType = $document->getType(); // Set the default view name from the Request $view = $this->getView($viewName, $viewType); //if the view is a package create and assign the table and form views $tableView = $this->getView('list', $viewType); $listModel = $this->getModel('list', 'FabrikFEModel'); $tableView->setModel($listModel, true); $view->_tableView = $tableView; $view->_formView =& $this->getView('Form', $viewType); $formModel = $this->getModel('Form', 'FabrikFEModel'); $formModel->setDbo(FabrikWorker::getDbo()); $view->_formView->setModel($formModel, true); // Push a model into the view $model = $this->getModel($viewName, 'FabrikFEModel'); $model->setDbo(FabrikWorker::getDbo()); if (!JError::isError($model)) { $view->setModel($model, true); } // Display the view $view->assign('error', $this->getError()); $view->display(); }
function doCron(&$pluginManager) { $db = FabrikWorker::getDbo(); $cid = JRequest::getVar('element_id', array(), 'method', 'array'); $query = $db->getQuery(); $query->select('id, plugin')->from('#__{package}_cron'); if (!empty($cid)) { $query->where(" id IN (" . implode(',', $cid).")"); } $db->setQuery($query); $rows = $db->loadObjectList(); $viewModel = JModel::getInstance('view', 'FabrikFEModel'); $c = 0; foreach ($rows as $row) { //load in the plugin $plugin = $pluginManager->getPlugIn($row->plugin, 'cron'); $plugin->setId($row->id); $params = $plugin->getParams(); $thisViewModel = clone($viewModel); $thisViewModel->setId($params->get('table')); $table = $viewModel->getTable(); $total = $thisViewModel->getTotalRecords(); $nav = $thisViewModel->getPagination($total, 0, $total); $data = $thisViewModel->getData(); // $$$ hugh - added table model param, in case plugin wants to do further table processing $c = $c + $plugin->process($data, $thisViewModel); } $query = $db->getQuery(); $query->update('#__{package}_cron')->set('lastrun=NOW()')->where("id IN (".implode(',', $cid).")"); $db->setQuery($query); $db->query(); }
/** * Method to get the list of groups and elements * grouped by group and element. * * @return array The field option objects as a nested array in groups. */ protected function getGroups() { $app = JFactory::getApplication(); $input = $app->input; $db = FabrikWorker::getDbo(true); $query = $db->getQuery(true); $query->select('form_id')->from($db->quoteName('#__{package}_formgroup') . ' AS fg')->join('LEFT', '#__{package}_elements AS e ON e.group_id = fg.group_id')->where('e.id = ' . $input->getInt('elementid')); $db->setQuery($query); $formId = $db->loadResult(); $formModel = JModelLegacy::getInstance('Form', 'FabrikFEModel'); $formModel->setId($formId); $rows = array(); $rows[FText::_('COM_FABRIK_GROUPS')] = array(); $rows[FText::_('COM_FABRIK_ELEMENTS')] = array(); // Get available element types $groups = $formModel->getGroupsHiarachy(); foreach ($groups as $groupModel) { $group = $groupModel->getGroup(); $label = $group->name; $value = 'fabrik_trigger_group_group' . $group->id; $rows[FText::_('COM_FABRIK_GROUPS')][] = JHTML::_('select.option', $value, $label); $elementModels = $groupModel->getMyElements(); foreach ($elementModels as $elementModel) { $label = $elementModel->getFullName(false, false); $value = 'fabrik_trigger_element_' . $elementModel->getFullName(true, false); $rows[FText::_('COM_FABRIK_ELEMENTS')][] = JHTML::_('select.option', $value, $label); } } reset($rows); asort($rows[FText::_('COM_FABRIK_ELEMENTS')]); return $rows; }
/** * validate the elements data against the rule * @param string data to check * @param object element * @param int plugin sequence ref * @return bol true if validation passes, false if fails */ function validate($data, &$element, $c) { if (empty($data)) { return false; } $params =& $this->getParams(); $ornot = $params->get('emailexists_or_not'); $ornot = $ornot[$c]; $condition = $params->get('emailexists-validation_condition'); $condition = $condition[$c]; if ($condition !== '') { if (@eval($condition)) { return true; } } jimport('joomla.user.helper'); $db = FabrikWorker::getDbo(); $db->setQuery("SELECT id FROM #__users WHERE email = '{$data}'"); $result = $db->loadResult(); if (!$result) { if ($ornot == 'fail_if_exists') { return true; } } else { if ($ornot == 'fail_if_not_exists') { return true; } } return false; }
function getOptions() { // Initialize variables. $options = array(); $db = FabrikWorker::getDbo(); $query = $db->getQuery(true); $query->select('f.id AS value, f.label AS text, l.id AS listid'); $query->from('#__fabrik_forms AS f'); $query->join('LEFT', '#__fabrik_lists As l ON f.id = l.form_id'); $query->where('f.published = 1 AND l.db_table_name =' . $db->Quote($this->form->getValue('params.join_db_name'))); $query->order('f.label'); // Get the options. $db->setQuery($query); $options = $db->loadObjectList('value'); // Check for a database error. if ($db->getErrorNum()) { JError::raiseWarning(500, $db->getErrorMsg()); } if (empty($options)) { $options[] = JHTML::_('select.option', '', JText::_('COM_FABRIK_NO_POPUP_FORMS_AVAILABLE')); } else { array_unshift($options, JHtml::_('select.option', '', JText::_('COM_FABRIK_PLEASE_SELECT'))); } return $options; }
/** * list of items * * @return null */ public function dolist() { $app = JFactory::getApplication(); $input = $app->input; $db = FabrikWorker::getDbo(true); $query = $db->getQuery(true); $list = $input->get('list', 'form'); $selected = $input->get('selected'); $query->select('id, label')->from('#__fabrik_' . $list . 's'); if ($selected != '') { // $query->where('id NOT IN ('.$selected.')'); } $db->setQuery($query); $rows = $db->loadObjectList(); echo "<ul id=\"{$list}-additems\">"; if (empty($rows)) { echo "<li>" . JText::sprintf('COM_FABRIK_NO_FREE_ITEMS_FOUND') . "</li>"; } else { foreach ($rows as $row) { echo "<li><a href=\"#\" id=\"{$row->id}\">{$row->label}</a>"; } } echo "</ul>"; $script = "\$('{$list}-additems').getElements('a').addEvent('click', function(e){\n\t\t\tFabrik.fireEvent('fabrik.package.item.selected', [e]);\n\t\t});"; FabrikHelperHTML::addScriptDeclaration($script); }
/** * Display the package view * * @param boolean $cachable If true, the view output will be cached - NOTE not actually used to control caching!!! * @param array $urlparams An array of safe url parameters and their variable types, for valid values see {@link JFilterInput::clean()}. * * @return JController A JController object to support chaining. */ public function display($cachable = false, $urlparams = false) { $document = JFactory::getDocument(); $app = JFactory::getApplication(); $input = $app->input; $viewName = $input->get('view', 'package'); $viewType = $document->getType(); // Set the default view name from the Request $view = $this->getView($viewName, $viewType); // If the view is a package create and assign the table and form views $tableView = $this->getView('list', $viewType); $listModel = $this->getModel('list', 'FabrikFEModel'); $tableView->setModel($listModel, true); $view->tableView = $tableView; $view->formView = $this->getView('Form', $viewType); $formModel = $this->getModel('Form', 'FabrikFEModel'); $formModel->setDbo(FabrikWorker::getDbo()); $view->formView->setModel($formModel, true); // Push a model into the view if ($model = $this->getModel($viewName, 'FabrikFEModel')) { $model->setDbo(FabrikWorker::getDbo()); $view->setModel($model, true); } // Display the view $view->error = $this->getError(); $view->display(); return $this; }
function getOptions() { $connectionDd = $this->element['observe']; $options = array(); $db = FabrikWorker::getDbo(true); if ($connectionDd == '') { //we are not monitoring a connection drop down so load in all tables $query = "SHOW TABLES"; $db->setQuery($query); $items = $db->loadResultArray(); // Check for a database error. if ($db->getErrorNum()) { JError::raiseWarning(500, $db->getErrorMsg()); } foreach ($items as $l) { $options[] = JHTML::_('select.option', $l, $l); } } else { $connId = $this->form->getValue('connection_id'); $query = $db->getQuery(true); $query->select('id AS value, db_table_name AS ' . $db->Quote('text'))->from('#__{package}_lists')->where('connection_id = ' . (int) $connId); $db->setQuery($query); $items = $db->loadObjectList(); foreach ($items as $item) { $options[] = JHTML::_('select.option', $item->value, $item->text); } } return $options; }
function getOptions() { $db = FabrikWorker::getDbo(); $check = $this->element['checkexists'] ? (bool) $this->element['checkexists'] : false; if ($check) { $q = explode(" ", $this->element['query']); $i = array_search('FROM', $q); if (!$i) { $i = array_search('from', $q); } $i++; $tbl = $db->replacePrefix($q[$i]); $db->setQuery("SHOW TABLES"); $rows = $db->loadResultArray(); $found = in_array($tbl, $rows) ? true : false; if (!$found) { return array(JHTML::_('select.option', $tbl . ' not found', '')); } } $db->setQuery($this->element['query']); $key = $this->element['key_field'] ? $this->element['key_field'] : 'value'; $val = $this->element['value_field'] ? $this->element['value_field'] : $this->name; if ($this->element['add_select']) { $rows = array(JHTML::_('select.option', '')); $rows = array_merge($rows, (array) $db->loadObjectList()); } else { $rows = $db->loadObjectList(); } return $rows; }
/** * Method to get the field input markup. * * @return string The field input markup. */ protected function getInput() { $app = JFactory::getApplication(); $input = $app->input; $option = $input->get('option'); if (!in_array($option, array('com_modules', 'com_menus', 'com_advancedmodules'))) { $db = FabrikWorker::getDbo(true); $query = $db->getQuery(true); $query->select('form_id')->from('#__{package}_formgroup')->where('group_id = ' . (int) $this->form->getValue('id')); $db->setQuery($query); $this->value = $db->loadResult(); $this->form->setValue('form', null, $this->value); } if ((int) $this->form->getValue('id') == 0 || !$this->element['readonlyonedit']) { return parent::getInput(); } else { $options = (array) $this->getOptions(); $v = ''; foreach ($options as $opt) { if ($opt->value == $this->value) { $v = $opt->text; } } } return '<input type="hidden" value="' . $this->value . '" name="' . $this->name . '" />' . '<input type="text" value="' . $v . '" name="form_justalabel" class="readonly" readonly="true" />'; }
/** * process the plugin, called when form is submitted * * @param object $params * @param object form */ function onBeforeStore( &$params, &$formModel ) { global $vbulletin; define(VB_AREA, 'fabrik'); define(THIS_SCRIPT, 'fabrik'); // Initialize some variables $db = FabrikWorker::getDbo(); $data = $formModel->_formData; // Check for request forgeries JRequest::checkToken() or jexit('Invalid Token'); $elementModel = $formModel->getPluginManager()->getElementPlugin($params->get('vb_forum_field')); $element = $elementModel->getElement(true); $this->map_forum_field = $elementModel->getFullName(); $this->vb_parent_forum = $params->get('vb_parent', ''); $method = "POST"; $url = JURI::base(). "forum/mkforum.php"; $vars = array(); $vars['forum_name'] = $data[$this->map_forum_field]; $vars['forum_parent'] = $this->vb_parent_forum; $res = $this->doRequest($method, $url, $vars); }
/** * Set which fieldsets should be used * * @since 3.0.7 * * @return array fieldset names */ private function setFieldSets() { $input = $this->app->input; // From list data view in admin $id = $input->getInt('listid', 0); // From list of lists checkbox selection $cid = $input->get('cid', array(0), 'array'); $cid = ArrayHelper::toInteger($cid); if ($id === 0) { $id = $cid[0]; } if ($id !== 0) { $db = FabrikWorker::getDbo(); $query = $db->getQuery(true); $query->select('label')->from('#__{package}_lists')->where('id = ' . $id); $db->setQuery($query); $this->listName = $db->loadResult(); } $fieldsets = array('details'); if ($this->model->canEmpty()) { $fieldsets[] = 'drop'; } $fieldsets[] = $id === 0 ? 'creation' : 'append'; $fieldsets[] = 'format'; return $fieldsets; }
protected function createList($listModel, $adminListModel) { $params = $this->getParams(); $table = $params->get('create_list'); if ($table == '') { return; } $db = FabrikWorker::getDbo(); //see if we have a list that already points to the table $query = $db->getQuery(true); $query->select('id')->from('jos_{package}_lists')->where('db_table_name = ' . $db->nameQuote($table)); $db->setQuery($query); $res = (int) $db->loadResult(); $now = JFactory::getDate()->toMySQL(); $user = JFactory::getUser(); $data = array(); //fill in some default data $data['filter_action'] = 'onchange'; $data['access'] = 1; $data['id'] = $res; $data['label'] = $table; $data['connection_id'] = 1; $data['db_table_name'] = $table; $data['published'] = 1; $data['created'] = $now; $data['created_by'] = $user->get('id'); JRequest::setVar('jform', $data); $adminListModel->save($data); }
protected function getInput() { $db = FabrikWorker::getDbo(); $query = $db->getQuery(true); $query->select('form_id')->from('#__{package}_formgroup')->where('group_id = ' . (int) $this->form->getValue('id')); $db->setQuery($query); $this->value = $db->loadResult(); return parent::getInput(); }
/** * Returns a reference to the a Table object, always creating it. * * @param string $type The table type to instantiate * @param string $prefix A prefix for the table class name. Optional. * @param array $config Configuration array for model. Optional. * * @return JTable A database object */ public function getTable($type = 'List', $prefix = 'FabrikTable', $config = array()) { $sig = $type . $prefix . implode('.', $config); if (!array_key_exists($sig, $this->tables)) { $config['dbo'] = FabrikWorker::getDbo(true); $this->tables[$sig] = FabTable::getInstance($type, $prefix, $config); } return $this->tables[$sig]; }
function getOptions() { //ONLY WORKS INSIDE ELEMENT :( $group_id = $this->form->getValue('group_id'); $query = "SELECT ordering AS value, name AS text" . "\n FROM #__{package}_elements " . "\n WHERE group_id = " . (int) $group_id . "\n AND published >= 0" . "\n ORDER BY ordering"; // $$$ rob - rather than trying to override the JHTML class lets // just swap {package} for the current package. $query = FabrikWorker::getDbo()->replacePrefix($query); return JHTML::_('list.genericordering', $query); }
function userAjax() { $db = FabrikWorker::getDbo(); require_once COM_FABRIK_FRONTEND . DS . "user_ajax.php"; $method = JRequest::getVar('method', ''); $userAjax = new userAjax($db); if (method_exists($userAjax, $method)) { $userAjax->{$method}(); } }
/** * Display the view */ public function display($tpl = null) { $db = FabrikWorker::getDbo(true); $query = $db->getQuery(true); $query->select('*')->from('#__{package}_log')->where('message_type != ""')->order('timedate_created DESC'); $db->setQuery($query, 0, 10); $this->logs = $db->loadObjectList(); $this->feed = $this->get('RSSFeed'); parent::display($tpl); }
function getOptions() { $db = FabrikWorker::getDbo(true); $query = $db->getQuery(true); $query->select("id AS value, label AS " . FabrikString::safeColName('text')); $query->from("#__{package}_forms"); $query->order("value DESC"); $db->setQuery($query); $rows = $db->loadObjectList(); return $rows; }
/** * Do the plugin action * * @param array &$data Record data * @param object &$listModel List model * @return number of records updated */ public function process(&$data, &$listModel) { $db = FabrikWorker::getDbo(); $query = $db->getQuery(true); $query->select('n.*, e.event AS event, e.id AS event_id, n.user_id AS observer_id, observer_user.name AS observer_name, observer_user.email AS observer_email, e.user_id AS creator_id, creator_user.name AS creator_name, creator_user.email AS creator_email')->from('#__{package}_notification AS n')->join('LEFT', '#__{package}_notification_event AS e ON e.reference = n.reference')->join('LEFT', '#__{package}_notification_event_sent AS s ON s.notification_event_id = e.id')->join('INNER', '#__users AS observer_user ON observer_user.id = n.user_id')->join('INNER', '#__users AS creator_user ON creator_user.id = e.user_id')->where('(s.sent <> 1 OR s.sent IS NULL) AND n.user_id <> e.user_id')->order('n.reference'); $db->setQuery($query); $rows = $db->loadObjectList(); $email_from = $this->config->get('mailfrom'); $siteName = $this->config->get('sitename'); $sent = array(); $usermsgs = array(); $successMails = array(); $failedMails = array(); foreach ($rows as $row) { /* * {observer_name, creator_name, event, record url * dear %s, %s has %s on %s */ $event = FText::_($row->event); list($listId, $formId, $rowId) = explode('.', $row->reference); $url = JRoute::_('index.php?option=com_fabrik&view=details&listid=' . $listId . '&formid=' . $formId . '&rowid=' . $rowId); $msg = JText::sprintf('FABRIK_NOTIFICATION_EMAIL_PART', $row->creator_name, $url, $event); if (!array_key_exists($row->observer_id, $usermsgs)) { $usermsgs[$row->observer_email] = array(); } $usermsgs[$row->observer_email][] = $msg; $query->clear(); $query->insert('#__{package}_notification_event_sent')->set(array('notification_event_id = ' . $row->event_id, 'user_id = ' . $row->observer_id, 'sent = 1')); $sent[] = (string) $query; } $subject = $siteName . ": " . FText::_('FABRIK_NOTIFICATION_EMAIL_SUBJECT'); foreach ($usermsgs as $email => $messages) { $msg = implode(' ', $messages); $mailer = JFactory::getMailer(); if ($mailer->sendMail($email_from, $email_from, $email, $subject, $msg, true)) { $successMails[] = $email; } else { $failedMails[] = $email; } } if (!empty($sent)) { $sent = implode(';', $sent); $db->setQuery($sent); $db->execute(); } $this->log = count($sent) . ' notifications sent.<br />'; $this->log .= 'Emailed users: <ul><li>' . implode('</li><li>', $successMails) . '</li></ul>'; if (!empty($failedMails)) { $this->log .= 'Failed emails: <ul><li>' . implode('</li><li>', $failedMails) . '</li></ul>'; } return count($successMails); }
function getOptions() { $a = array(JHTML::_('select.option', '', JText::_('COM_FABRIK_PLEASE_SELECT'))); $db = FabrikWorker::getDbo(true); $query = $db->getQuery(true); $query->select("id AS value, label AS text")->from("#__{package}_visualizations")->where("published =1")->order("text"); $db->setQuery($query); $elementstypes = $db->loadObjectList(); $elementstypes = array_merge($a, $elementstypes); return $elementstypes; }
private function getRange() { $listModel = $this->getlistModel(); $fabrikdb = $listModel->getDb(); $db = FabrikWorker::getDbo(); $element = $this->getDataElement(); $elementShortName = $element->getElement()->name; $fabrikdb->setQuery("SELECT MIN(`{$elementShortName}`) AS min, MAX(`{$elementShortName}`) AS max FROM " . $listModel->getTable()->db_table_name); $range = $fabrikdb->loadObject(); $fullName = $element->getFullName(); return $range; }
/** * Custom user ajax call * * @return void */ public function userAjax() { $db = FabrikWorker::getDbo(); require_once COM_FABRIK_FRONTEND . '/user_ajax.php'; $app = JFactory::getApplication(); $input = $app->input; $method = $input->get('method', ''); $userAjax = new userAjax($db); if (method_exists($userAjax, $method)) { $userAjax->{$method}(); } }
/** * do the plugin action * @return number of records updated */ function process(&$data) { $db = FabrikWorker::getDbo(); $sql = "SELECT n.*, e.event AS event, e.id AS event_id, n.user_id AS observer_id, observer_user.name AS observer_name, observer_user.email AS observer_email, e.user_id AS creator_id, creator_user.name AS creator_name, creator_user.email AS creator_email FROM #__{package}_notification AS n". "\n LEFT JOIN #__{package}_notification_event AS e ON e.reference = n.reference". "\n LEFT JOIN #__{package}_notification_event_sent AS s ON s.notification_event_id = e.id". "\n INNER JOIN #__users AS observer_user ON observer_user.id = n.user_id". "\n INNER JOIN #__users AS creator_user ON creator_user.id = e.user_id". "\n WHERE (s.sent <> 1 OR s.sent IS NULL)". "\n AND n.user_id <> e.user_id". "\n ORDER BY n.reference"; //don't bother informing users about events that they've created themselves $db->setQuery($sql); $rows = $db->loadObjectList(); $config = JFactory::getConfig(); $email_from = $config->getValue('mailfrom'); $sitename = $config->getValue('sitename'); $sent = array(); $usermsgs = array(); foreach ($rows as $row) { /* * {observer_name, creator_name, event, record url * dear %s, %s has %s on %s */ $event = JText::_($row->event); list($listid, $formid, $rowid) = explode('.', $row->reference); $url = JRoute::_('index.php?option=com_fabrik&view=details&listid='.$listid.'&formid='.$formid.'&rowid='.$rowid); $msg = JText::sprintf('FABRIK_NOTIFICATION_EMAIL_PART', $row->creator_name, $url, $event); if (!array_key_exists($row->observer_id, $usermsgs )) { $usermsgs[$row->observer_email] = array(); } $usermsgs[$row->observer_email][] = $msg; $sent[] = 'INSERT INTO #__{package}_notification_event_sent (`notification_event_id`, `user_id`, `sent`) VALUES ('.$row->event_id.', '.$row->observer_id.', 1)'; } $subject = $sitename.": " .JText::_('FABRIK_NOTIFICATION_EMAIL_SUBJECT'); foreach ($usermsgs as $email => $messages) { $msg = implode( ' ', $messages); $res = JUtility::sendMail( $email_from, $email_from, $email, $subject, $msg, true); } if (!empty( $sent )) { $sent = implode(';', $sent); $db->setQuery($sent); $db->query(); } }
public function run() { $db = FabrikWorker::getDbo(true); $cid = JRequest::getVar('cid', array(0), 'method', 'array'); JArrayHelper::toInteger($cid); $cid = implode(',', $cid); $query = $db->getQuery(true); $query->select('*')->from('#__{package}_cron')->where('id IN (' . $cid . ')'); $db->setQuery($query); $rows = $db->loadObjectList(); $adminListModel = JModel::getInstance('List', 'FabrikModel'); //JModel::addIncludePath(JPATH_SITE.DS.'components'.DS.'com_fabrik'.DS.'models'); $pluginManager = JModel::getInstance('Pluginmanager', 'FabrikFEModel'); $listModel = JModel::getInstance('list', 'FabrikFEModel'); $c = 0; $log = FabTable::getInstance('Log', 'FabrikTable'); foreach ($rows as $row) { //load in the plugin $rowParams = json_decode($row->params); $log->message = ''; $log->id = null; $log->referring_url = ''; $log->message_type = 'plg.cron.' . $row->plugin; $plugin =& $pluginManager->getPlugIn($row->plugin, 'cron'); $table = FabTable::getInstance('cron', 'FabrikTable'); $table->load($row->id); $plugin->setRow($table); $params =& $plugin->getParams(); $thisListModel = clone $listModel; $thisAdminListModel = clone $adminListModel; $tid = (int) $rowParams->table; if ($tid !== 0) { $thisListModel->setId($tid); $log->message .= "\n\n{$row->plugin}\n listid = " . $thisListModel->getId(); //. var_export($table); if ($plugin->requiresTableData()) { $table =& $listModel->getTable(); $data = $thisListModel->getData(); $log->message .= "\n" . $thisListModel->_buildQuery(); } } else { $data = array(); } // $$$ hugh - added table model param, in case plugin wants to do further table processing $c = $c + $plugin->process($data, $thisListModel, $thisAdminListModel); if ($plugin->getParams()->get('log', 0) == 1) { $log->message = $plugin->getLog() . "\n\n" . $log->message; $log->store(); } } $this->setRedirect('index.php?option=com_fabrik&view=crons', $c . " records updated"); }
/** * Method to load and return a model object. * * @param string The name of the model. * @param string Optional model prefix. * @param array Configuration array for the model. Optional. * @return mixed Model object on success; otherwise null failure. * @since 1.6 Replaces _createModel. */ protected function createModel($name, $prefix = '', $config = array()) { // use true so that we always use the Joomla db when in admin. // otherwise if alt cnn set to default that is loaded and the fabrik tables are not found $db = FabrikWorker::getDbo(true); $config['dbo'] = $db; $r = parent::createModel($name, $prefix, $config); return $r; }
function delete() { // Check for request forgeries JRequest::checkToken() or die('Invalid Token'); $ids = JRequest::getVar('cid', array()); JArrayHelper::toInteger($ids); $db = FabrikWorker::getDbo(); $db->setQuery("DELETE FROM #__{package}_notification WHERE id IN (".implode(',', $ids).")"); $db->query(); }
/** * Get the list id from the filename * * @param string $tableName The name of the file to be loaded. Should only be file name--not a path. * * @author Kyle * * @return int listid The id frabrik gives the list that hold information about files named $tablename * returns an empty() type if no table exists with the same name as $tablename. */ protected function getListIdFromFileName($tableName) { // Get site's database $db = FabrikWorker::getDbo(true); $query = $db->getQuery(true); $query->select('id')->from('#__{package}_lists')->where('db_table_name = ' . $db->quote($tableName)); $db->setQuery($query); $id = $db->loadResult(); return $id; }