function onAfterRoute() { jimport('joomla.filesystem.file'); jimport('joomla.filesystem.folder'); if (!JFile::exists(JPATH_SITE . DS . 'administrator' . DS . 'components' . DS . 'com_contentbuilder' . DS . 'classes' . DS . 'contentbuilder.php')) { return; } // register non-existent records if (in_array(JRequest::getVar('option', ''), array('com_contentbuilder', 'com_content'))) { $db = JFactory::getDBO(); require_once JPATH_SITE . DS . 'administrator' . DS . 'components' . DS . 'com_contentbuilder' . DS . 'classes' . DS . 'contentbuilder.php'; $db->setQuery("Select `type`, `reference_id` From #__contentbuilder_forms Where published = 1"); $views = $db->loadAssocList(); $typeview = array(); foreach ($views as $view) { if (!isset($typeview[$view['type'] . $view['reference_id']])) { $typeview[$view['type'] . $view['reference_id']] = true; $form = contentbuilder::getForm($view['type'], $view['reference_id']); if (is_object($form)) { $form->synchRecords(); } } } } if (JRequest::getCmd('option', '') == 'com_content' || JRequest::getCmd('option', '') == 'com_contentbuilder') { // managing published states $db = JFactory::getDBO(); $date = JFactory::getDate(); $db->setQuery("Update #__contentbuilder_records Set published = 1 Where is_future = 1 And publish_up <> '0000-00-00 00:00:00' And publish_up <= '" . CBCompat::toSql($date) . "'"); $db->query(); $db->setQuery("Update #__contentbuilder_records Set published = 0 Where publish_down <> '0000-00-00 00:00:00' And publish_down <= '" . CBCompat::toSql($date) . "'"); $db->query(); // published states END } // joomla 1.5 and following obviously has problems when logging out and being in list view and the menu item access being registered. // J! is then trying to redirect to com_content (for non-obvious reasons), using the view variable orginally used in contentbuilder and then it will // throw an error 500, view not found // this will get rid of the view parameter and pass the rest of the url to the return parameter $enc = base64_decode(JRequest::getVar('return', '', 'method', 'base64')); if (is_string($enc)) { $enc = explode('?', $enc); count($enc) > 1 ? parse_str($enc[1], $out) : ($out = array()); if (isset($out['option']) && $out['option'] == 'com_contentbuilder') { $i = 0; $length = count($out); $return = ''; foreach ($out as $key => $value) { if (strtolower($key) != 'view') { $return .= $key . '=' . $value . ($i + 1 < $length ? '&' : ''); } $i++; } JRequest::setVar('return', base64_encode('index.php' . ($return ? '?' : '') . $return)); } } if (in_array(JRequest::getVar('option'), array('com_content'))) { $pluginParams = CBCompat::getPluginParams($this, 'system', 'contentbuilder_system'); if ($pluginParams->def('nocache', 1)) { $this->caching = CBCompat::getJoomlaConfig('config.caching'); CBCompat::setJoomlaConfig('config.caching', 0); } } if (JRequest::getVar('option') == 'com_contentbuilder') { JFactory::getDBO()->setQuery("\n Update \n #__contentbuilder_records As records,\n #__contentbuilder_forms As forms,\n #__contentbuilder_registered_users As cbusers,\n #__users As users\n Set \n records.published = 0\n Where\n records.reference_id = forms.reference_id\n And\n records.published = 1\n And\n records.`type` = forms.`type`\n And\n forms.act_as_registration = 1\n And\n forms.id = cbusers.form_id\n And\n records.record_id = cbusers.record_id\n And\n (\n (\n users.id = cbusers.user_id\n And\n users.block = 1\n )\n )\n "); JFactory::getDBO()->query(); JFactory::getDBO()->setQuery("\n Update \n #__contentbuilder_records As records,\n #__contentbuilder_forms As forms,\n #__contentbuilder_registered_users As cbusers,\n #__users As users\n Set \n records.published = forms.auto_publish\n Where\n records.reference_id = forms.reference_id\n And\n records.published = 0\n And\n records.`type` = forms.`type`\n And\n forms.act_as_registration = 1\n And\n forms.id = cbusers.form_id\n And\n records.record_id = cbusers.record_id\n And\n users.id = cbusers.user_id\n And\n users.block = 0\n "); JFactory::getDBO()->query(); } }