public function saveModule(RokCommon_Event $event, array $arguments = array())
 {
     $data = $arguments['data'];
     require_once JPATH_ADMINISTRATOR . '/components/com_advancedmodules/models/module.php';
     $model = new AdvancedModulesModelModule();
     $arguments['save_result'] = $model->save($data);
     $event->setProcessed(true);
     return $arguments;
 }
 public function onPrepareModuleList(&$modules)
 {
     // return if is not frontend
     if (!JFactory::getApplication()->isSite()) {
         return;
     }
     jimport('joomla.filesystem.file');
     require_once JPATH_PLUGINS . '/system/nnframework/helpers/parameters.php';
     $parameters = NNParameters::getInstance();
     require_once JPATH_PLUGINS . '/system/nnframework/helpers/assignments.php';
     $assignments_helper = new NNFrameworkAssignmentsHelper();
     require_once JPATH_ADMINISTRATOR . '/components/com_advancedmodules/models/module.php';
     $model = new AdvancedModulesModelModule();
     $xmlfile_assignments = JPATH_ADMINISTRATOR . '/components/com_advancedmodules/assignments.xml';
     $modules = is_null($modules) ? $this->getModuleList() : $modules;
     if (is_array($modules) && empty($modules)) {
         return;
     }
     $filtered_modules = array();
     foreach ($modules as $module) {
         $module->name = substr($module->module, 4);
         if (!isset($module->advancedparams)) {
             $module->advancedparams = $this->getAdvancedParamsById($module->id);
         }
         $module->advancedparams = json_decode($module->advancedparams);
         if (is_null($module->advancedparams)) {
             $module->advancedparams = new stdClass();
         }
         if (!isset($module->advancedparams->assignto_menuitems) || isset($module->advancedparams->assignto_urls_selection_sef) || !is_array($module->advancedparams->assignto_menuitems) && strpos($module->advancedparams->assignto_menuitems, '|') !== false) {
             $module->advancedparams = (object) $model->initAssignments($module->id, $module);
         }
         $module->advancedparams = $parameters->getParams($module->advancedparams, $xmlfile_assignments);
         if ($module->advancedparams === 0) {
             if (isset($module->published) && !$module->published) {
                 continue;
             }
             $filtered_modules[] = $module;
             continue;
         }
         $module->reverse = 0;
         $this->setMirrorParams($module, $xmlfile_assignments);
         $this->removeDisabledAssignments($module->advancedparams);
         $assignments = $assignments_helper->getAssignmentsFromParams($module->advancedparams);
         $module->published = $assignments_helper->passAll($assignments, $module->advancedparams->match_method);
         if ($module->reverse) {
             $module->published = !$module->published;
         }
         if (isset($module->published) && !$module->published) {
             continue;
         }
         $filtered_modules[] = $module;
     }
     $modules = array_values($filtered_modules);
     unset($filtered_modules);
 }
Example #3
0
 /**
  * Method to get and save the module core menu assignments
  *
  * @param    int $id The module id.
  *
  * @return    boolean    True on success.
  * @since    1.6
  */
 public function initAssignments($id, &$module)
 {
     if (!$id) {
         $id = JFactory::getApplication()->input->getInt('id');
     }
     if (empty($id)) {
         $module->advancedparams = array('assignto_menuitems' => $this->config->default_menu_assignment, 'assignto_menuitems_selection' => array());
         AdvancedModulesModelModule::saveAdvancedParams($module->advancedparams, $id);
         return $module->advancedparams;
     }
     if (is_object($module->advancedparams)) {
         $module->advancedparams = (array) $module->advancedparams;
     }
     if (!isset($module->advancedparams['assignto_menuitems'])) {
         $db = $this->getDbo();
         $query = $db->getQuery(true)->select('m.menuid')->from('#__modules_menu as m')->where('m.moduleid = ' . (int) $id);
         $db->setQuery($query);
         $module->advancedparams['assignto_menuitems_selection'] = $db->loadColumn();
         $module->advancedparams['assignto_menuitems'] = 0;
         if (!empty($module->advancedparams['assignto_menuitems_selection'])) {
             if ($module->advancedparams['assignto_menuitems_selection']['0'] == 0) {
                 $module->advancedparams['assignto_menuitems'] = 0;
                 $module->advancedparams['assignto_menuitems_selection'] = array();
             } else {
                 if ($module->advancedparams['assignto_menuitems_selection']['0'] < 0) {
                     $module->advancedparams['assignto_menuitems'] = 2;
                 } else {
                     $module->advancedparams['assignto_menuitems'] = 1;
                 }
             }
             foreach ($module->advancedparams['assignto_menuitems_selection'] as $i => $menuitem) {
                 if ($menuitem < 0) {
                     $module->advancedparams['assignto_menuitems_selection'][$i] = $menuitem * -1;
                 }
             }
         }
     } else {
         if (isset($module->advancedparams['assignto_menuitems_selection']['0']) && strpos($module->advancedparams['assignto_menuitems_selection']['0'], ',') !== false) {
             $module->advancedparams['assignto_menuitems_selection'] = explode(',', $module->advancedparams['assignto_menuitems_selection']['0']);
         }
     }
     if (!isset($module->advancedparams['assignto_date']) || !$module->advancedparams['assignto_date']) {
         if (isset($module->publish_up) && (int) $module->publish_up || isset($module->publish_down) && (int) $module->publish_down) {
             $module->advancedparams['assignto_date'] = 1;
             $module->advancedparams['assignto_date_publish_up'] = isset($module->publish_up) ? $module->publish_up : '';
             $module->advancedparams['assignto_date_publish_down'] = isset($module->publish_down) ? $module->publish_down : '';
         }
     }
     if (!isset($module->advancedparams['assignto_languages']) || !$module->advancedparams['assignto_languages']) {
         if (isset($module->language) && $module->language && $module->language != '*') {
             $module->advancedparams['assignto_languages'] = 1;
             $module->advancedparams['assignto_languages_selection'] = array($module->language);
         }
     }
     AdvancedModulesModelModule::saveAdvancedParams($module->advancedparams, $id);
     return $module->advancedparams;
 }
Example #4
0
 public function __construct($config = array())
 {
     parent::__construct($config);
 }
 public function onPrepareModuleList(&$modules)
 {
     // return if is not frontend
     if (!JFactory::getApplication()->isSite() || empty($modules)) {
         return;
     }
     jimport('joomla.filesystem.file');
     require_once JPATH_PLUGINS . '/system/nnframework/helpers/parameters.php';
     $parameters = NNParameters::getInstance();
     require_once JPATH_PLUGINS . '/system/nnframework/helpers/assignments.php';
     $assignments = new NNFrameworkAssignmentsHelper();
     $xmlfile_assignments = JPATH_ADMINISTRATOR . '/components/com_advancedmodules/assignments.xml';
     // set params for all loaded modules first
     // and make it an associated array (array id = module id)
     $new_modules = array();
     require_once JPATH_ADMINISTRATOR . '/components/com_advancedmodules/models/module.php';
     $model = new AdvancedModulesModelModule();
     foreach ($modules as $id => $module) {
         if (!isset($module->mirror_id)) {
             $module->mirror_id = $this->getMirrorModuleIdById($id);
         }
         if (!isset($module->advancedparams)) {
             $module->advancedparams = $this->getAdvancedParamsById($id);
         }
         $module->advancedparams = json_decode($module->advancedparams);
         if (is_null($module->advancedparams)) {
             $module->advancedparams = new stdClass();
         }
         if (!isset($module->advancedparams->assignto_menuitems) || isset($module->advancedparams->assignto_urls_selection_sef) || !is_array($module->advancedparams->assignto_menuitems) && strpos($module->advancedparams->assignto_menuitems, '|') !== false) {
             $module->advancedparams = (object) $model->initAssignments($module->id, $module);
         }
         $module->advancedparams = $parameters->getParams($module->advancedparams, $xmlfile_assignments);
         $new_modules[$module->id] = $module;
     }
     $modules = $new_modules;
     unset($new_modules);
     foreach ($modules as $id => $module) {
         if ($module->advancedparams === 0) {
             continue;
         }
         $module->reverse = 0;
         if (!isset($module->published)) {
             $module->published = 0;
         }
         if ($module->published) {
             $this->setMirrorParams($module, $xmlfile_assignments);
             $this->removeDisabledAssignments($module->advancedparams);
             $ass = $assignments->getAssignmentsFromParams($module->advancedparams);
             $pass = $assignments->passAll($ass, $module->advancedparams->match_method);
             if (!$pass) {
                 $module->published = 0;
             }
             if ($module->reverse) {
                 $module->published = $module->published ? 0 : 1;
             }
         }
         $modules[$id] = $module;
     }
 }
Example #6
0
 /**
  * Method to get and save the module core menu assignments
  *
  * @param	int	$id	The module id.
  *
  * @return	boolean	True on success.
  * @since	1.6
  */
 public function initAssignments($id, &$module, $params = array())
 {
     if (!$id) {
         $id = JRequest::getInt('id');
     }
     $params = array();
     $assign = 0;
     $menuitems = array();
     if (!empty($id)) {
         $db = $this->getDbo();
         // Determine the page assignment mode.
         $db->setQuery('SELECT menuid' . ' FROM #__modules_menu' . ' WHERE moduleid = ' . $id);
         $menuitems = $db->loadResultArray();
         if (!empty($menuitems)) {
             $assign = 1;
             if ($menuitems['0'] == 0) {
                 $assign = 0;
                 $menuitems = array();
             } else {
                 if ($menuitems['0'] < 0) {
                     $assign = 2;
                 }
             }
             foreach ($menuitems as $i => $menuitem) {
                 if ($menuitem < 0) {
                     $menuitems[$i] = $menuitem * -1;
                 }
             }
         }
         if (isset($module->publish_up) && (int) $module->publish_up || isset($module->publish_down) && (int) $module->publish_down) {
             $params['assignto_date'] = 1;
             $params['assignto_date_publish_up'] = isset($module->publish_up) ? $module->publish_up : '';
             $params['assignto_date_publish_down'] = isset($module->publish_down) ? $module->publish_down : '';
         }
         if (isset($module->language) && $module->language && $module->language != '*') {
             $params['assignto_languages'] = 1;
             $params['assignto_languages_selection'] = array($module->language);
         }
     }
     $params['assignto_menuitems'] = $assign;
     $params['assignto_menuitems_selection'] = $menuitems;
     foreach ($params as $key => $val) {
         $params[$key] = $val;
     }
     AdvancedModulesModelModule::saveAdvancedParams($params, $id);
     return $params;
 }
 public function onPrepareModuleList(&$modules)
 {
     // return if is not frontend
     if (!JFactory::getApplication()->isSite() || empty($modules)) {
         return;
     }
     jimport('joomla.filesystem.file');
     require_once JPATH_PLUGINS . '/system/nnframework/helpers/parameters.php';
     $parameters = nnParameters::getInstance();
     require_once JPATH_PLUGINS . '/system/nnframework/helpers/assignments.php';
     $assignments = new nnFrameworkAssignmentsHelper();
     $xmlfile_assignments = JPATH_ADMINISTRATOR . '/components/com_advancedmodules/assignments.xml';
     $config = $this->getConfig();
     // set params for all loaded modules first
     // and make it an associated array (array id = module id)
     $new_modules = array();
     require_once JPATH_ADMINISTRATOR . '/components/com_advancedmodules/models/module.php';
     $model = new AdvancedModulesModelModule();
     foreach ($modules as $id => $module) {
         if (!isset($module->advancedparams)) {
             $module->advancedparams = $this->getAdvancedParams($id);
         }
         $module->advancedparams = json_decode($module->advancedparams);
         if (!isset($module->advancedparams->assignto_menuitems) || isset($module->advancedparams->assignto_urls_selection_sef) || !is_array($module->advancedparams->assignto_menuitems) && strpos($module->advancedparams->assignto_menuitems, '|') !== false) {
             $module->advancedparams = (object) $model->initAssignments($module->id, $module);
         }
         $module->advancedparams = $parameters->getParams($module->advancedparams, $xmlfile_assignments);
         $new_modules[$module->id] = $module;
     }
     $modules = $new_modules;
     unset($new_modules);
     foreach ($modules as $id => $module) {
         if ($module->advancedparams === 0) {
             continue;
         }
         $module->reverse = 0;
         if (!isset($module->published)) {
             $module->published = 0;
         }
         // Check if module should mirror another modules assignment settings
         if ($module->published) {
             $count = 0;
             while ($count++ < 10 && isset($module->advancedparams->mirror_module) && $module->advancedparams->mirror_module && isset($module->advancedparams->mirror_moduleid) && !empty($module->advancedparams->mirror_moduleid)) {
                 if (is_array($module->advancedparams->mirror_moduleid)) {
                     $module->advancedparams->mirror_moduleid = (int) $module->advancedparams->mirror_moduleid['0'];
                 }
                 $mirror_moduleid = (int) $module->advancedparams->mirror_moduleid;
                 $module->reverse = $module->advancedparams->mirror_module == 2;
                 if (!$mirror_moduleid) {
                     continue;
                 }
                 if ($mirror_moduleid == $id) {
                     $empty = new stdClass();
                     $mirror_params = $parameters->getParams($empty, $xmlfile_assignments);
                 } else {
                     if (isset($modules[$mirror_moduleid])) {
                         if (!isset($modules[$mirror_moduleid]->adv_param)) {
                             $modules[$mirror_moduleid]->adv_param = $this->getAdvancedParams($mirror_moduleid);
                             $modules[$mirror_moduleid]->adv_param = $parameters->getParams($modules[$mirror_moduleid]->adv_param, $xmlfile_assignments);
                         }
                         $mirror_params = $modules[$mirror_moduleid]->advancedparams;
                     } else {
                         $mirror_params = $this->getAdvancedParams($mirror_moduleid);
                         $mirror_params = $parameters->getParams($mirror_params, $xmlfile_assignments);
                     }
                 }
                 // Keep the advanced settings that shouldn't be mirrored
                 $settings_to_keep = array('hideempty', 'color');
                 foreach ($settings_to_keep as $key) {
                     if (!isset($module->advancedparams->{$key})) {
                         continue;
                     }
                     $mirror_params->{$key} = $module->advancedparams->{$key};
                 }
                 $module->advancedparams = $mirror_params;
             }
         }
         if ($module->published) {
             if (!$config->show_assignto_homepage) {
                 $module->advancedparams->assignto_homepage = 0;
             }
             if (!$config->show_assignto_usergrouplevels) {
                 $module->advancedparams->assignto_usergrouplevels = 0;
             }
             if (!$config->show_assignto_date) {
                 $module->advancedparams->assignto_date = 0;
             }
             if (!$config->show_assignto_languages) {
                 $module->advancedparams->assignto_languages = 0;
             }
             if (!$config->show_assignto_templates) {
                 $module->advancedparams->assignto_templates = 0;
             }
             if (!$config->show_assignto_urls) {
                 $module->advancedparams->assignto_urls = 0;
             }
             if (!$config->show_assignto_os) {
                 $module->advancedparams->assignto_os = 0;
             }
             if (!$config->show_assignto_browsers) {
                 $module->advancedparams->assignto_browsers = 0;
             }
             if (!$config->show_assignto_components) {
                 $module->advancedparams->assignto_components = 0;
             }
             if (!$config->show_assignto_tags) {
                 $module->advancedparams->show_assignto_tags = 0;
             }
             if (!$config->show_assignto_content) {
                 $module->advancedparams->assignto_contentpagetypes = 0;
                 $module->advancedparams->assignto_cats = 0;
                 $module->advancedparams->assignto_articles = 0;
             }
             $ass = $assignments->getAssignmentsFromParams($module->advancedparams);
             $pass = $assignments->passAll($ass, $module->advancedparams->match_method);
             if (!$pass) {
                 $module->published = 0;
             }
             if ($module->reverse) {
                 $module->published = $module->published ? 0 : 1;
             }
         }
         $modules[$id] = $module;
     }
 }
Example #8
0
 /**
  * Method to get and save the module core menu assignments
  *
  * @param	int	$id	The module id.
  *
  * @return	boolean	True on success.
  * @since	1.6
  */
 public function initAssignments($id, &$module, $params = array())
 {
     if (!$id) {
         $id = JFactory::getApplication()->input->getInt('id');
     }
     $params = array();
     $assign = 0;
     $menuitems = array();
     if (!empty($id)) {
         $db = $this->getDbo();
         $query = $db->getQuery(true);
         $query->select('m.menuid')->from('#__modules_menu as m')->where('m.moduleid = ' . (int) $id);
         $db->setQuery($query);
         $menuitems = $db->loadColumn();
         $assign = 1;
         if (!empty($menuitems)) {
             if ($menuitems['0'] == 0) {
                 $assign = 0;
                 $menuitems = array();
             } else {
                 if ($menuitems['0'] < 0) {
                     $assign = 2;
                 }
             }
             foreach ($menuitems as $i => $menuitem) {
                 if ($menuitem < 0) {
                     $menuitems[$i] = $menuitem * -1;
                 }
             }
         }
         if (isset($module->publish_up) && (int) $module->publish_up || isset($module->publish_down) && (int) $module->publish_down) {
             $params['assignto_date'] = 1;
             $params['assignto_date_publish_up'] = isset($module->publish_up) ? $module->publish_up : '';
             $params['assignto_date_publish_down'] = isset($module->publish_down) ? $module->publish_down : '';
         }
         if (isset($module->language) && $module->language && $module->language != '*') {
             $params['assignto_languages'] = 1;
             $params['assignto_languages_selection'] = array($module->language);
         }
     }
     $params['assignto_menuitems'] = $assign;
     $params['assignto_menuitems_selection'] = $menuitems;
     foreach ($params as $key => $val) {
         $params[$key] = $val;
     }
     AdvancedModulesModelModule::saveAdvancedParams($params, $id);
     return $params;
 }
Example #9
0
function plgSystemAdvancedModulesPrepareModuleList(&$modules)
{
    $client = JFactory::getApplication()->getClientId();
    if ($client == 0) {
        jimport('joomla.filesystem.file');
        require_once JPATH_PLUGINS . '/system/nnframework/helpers/parameters.php';
        $parameters = NNParameters::getInstance();
        require_once JPATH_PLUGINS . '/system/nnframework/helpers/assignments.php';
        $assignments = new NNFrameworkAssignmentsHelper();
        $xmlfile_assignments = JPATH_ADMINISTRATOR . '/components/com_advancedmodules/assignments.xml';
        $config = plgSystemAdvancedModulesConfig();
        // set params for all loaded modules first
        // and make it an associated array (array id = module id)
        $new_modules = array();
        require_once JPATH_ADMINISTRATOR . '/components/com_advancedmodules/models/module.php';
        $model = new AdvancedModulesModelModule();
        foreach ($modules as $id => $module) {
            if (!isset($module->adv_params)) {
                $module->adv_params = plgSystemAdvancedModulesGetAdvancedParams($id);
            }
            $registry = new JRegistry();
            if (strpos($module->adv_params, '"assignto_menuitems"') === false) {
                $module->adv_params = $model->initAssignments($module->id, $module, $module->adv_params);
                $registry->loadArray($module->adv_params);
            } else {
                $registry->loadString($module->adv_params);
            }
            $module->adv_params = $registry->toObject();
            $module->adv_params = $parameters->getParams($module->adv_params, $xmlfile_assignments);
            $new_modules[$module->id] = $module;
        }
        $modules = $new_modules;
        unset($new_modules);
        foreach ($modules as $id => $module) {
            if ($module->adv_params === 0) {
                continue;
            }
            $module->reverse = 0;
            if (!isset($module->published)) {
                $module->published = 0;
            }
            // Check if module should mirror another modules assignment settings
            if ($module->published) {
                $count = 0;
                while ($count++ < 10 && isset($module->adv_params->mirror_module) && $module->adv_params->mirror_module && isset($module->adv_params->mirror_moduleid) && $module->adv_params->mirror_moduleid) {
                    $mirror_moduleid = (int) $module->adv_params->mirror_moduleid;
                    $module->reverse = $module->adv_params->mirror_module == 2;
                    if ($mirror_moduleid) {
                        if ($mirror_moduleid == $id) {
                            $empty = new stdClass();
                            $module->adv_params = $parameters->getParams($empty, $xmlfile_assignments);
                        } else {
                            if (isset($modules[$mirror_moduleid])) {
                                if (!isset($modules[$mirror_moduleid]->adv_param)) {
                                    $modules[$mirror_moduleid]->adv_param = plgSystemAdvancedModulesGetAdvancedParams($mirror_moduleid);
                                    $modules[$mirror_moduleid]->adv_param = $parameters->getParams($module->adv_params, $xmlfile_assignments);
                                }
                                $module->adv_params = $modules[$mirror_moduleid]->adv_params;
                            } else {
                                $module->adv_params = plgSystemAdvancedModulesGetAdvancedParams($mirror_moduleid);
                                $module->adv_params = $parameters->getParams($module->adv_params, $xmlfile_assignments);
                            }
                        }
                    }
                }
            }
            if ($module->published) {
                if (!$config->show_assignto_homepage) {
                    $module->adv_params->assignto_homepage = 0;
                }
                if (!$config->show_assignto_usergrouplevels) {
                    $module->adv_params->assignto_usergrouplevels = 0;
                }
                if (!$config->show_assignto_date) {
                    $module->adv_params->assignto_date = 0;
                }
                if (!$config->show_assignto_languages) {
                    $module->adv_params->assignto_languages = 0;
                }
                if (!$config->show_assignto_templates) {
                    $module->adv_params->assignto_templates = 0;
                }
                if (!$config->show_assignto_urls) {
                    $module->adv_params->assignto_urls = 0;
                }
                if (!$config->show_assignto_os) {
                    $module->adv_params->assignto_os = 0;
                }
                if (!$config->show_assignto_browsers) {
                    $module->adv_params->assignto_browsers = 0;
                }
                if (!$config->show_assignto_components) {
                    $module->adv_params->assignto_components = 0;
                }
                if (!$config->show_assignto_content) {
                    $module->adv_params->assignto_contentpagetypes = 0;
                    $module->adv_params->assignto_cats = 0;
                    $module->adv_params->assignto_articles = 0;
                }
                $ass = $assignments->getAssignmentsFromParams($module->adv_params);
                $pass = $assignments->passAll($ass, $module->adv_params->match_method);
                if (!$pass) {
                    $module->published = 0;
                }
                if ($module->reverse) {
                    $module->published = $module->published ? 0 : 1;
                }
            }
            $modules[$id] = $module;
        }
    }
}
Example #10
0
function plgSystemAdvancedModulesPrepareModuleList(&$modules)
{
    $mainframe =& JFactory::getApplication();
    $client = $mainframe->getClientId();
    if ($client == 0) {
        $db =& JFactory::getDBO();
        jimport('joomla.filesystem.file');
        require_once JPATH_PLUGINS . DS . 'system' . DS . 'nonumberelements' . DS . 'helpers' . DS . 'parameters.php';
        $parameters =& NNParameters::getParameters();
        require_once JPATH_PLUGINS . DS . 'system' . DS . 'nonumberelements' . DS . 'helpers' . DS . 'assignments.php';
        $assignments = new NoNumberElementsAssignmentsHelper();
        $xmlfile_assignments = JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_advancedmodules' . DS . 'assignments.xml';
        $config = plgSystemAdvancedModulesConfig();
        // set params for all loaded modules first
        // and make it an associated array (array id = module id)
        $new_modules = array();
        require_once JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_advancedmodules' . DS . 'models' . DS . 'module.php';
        $model = new AdvancedModulesModelModule();
        foreach ($modules as $id => $module) {
            if (!isset($module->adv_params)) {
                $module->adv_params = '';
            }
            $registry = new JRegistry();
            if (strpos($module->adv_params, '"assignto_menuitems"') === false) {
                $module->adv_params = $model->initAssignments($module->id, $module, $module->adv_params);
                $registry->loadArray($module->adv_params);
            } else {
                $registry->loadString($module->adv_params);
            }
            $module->adv_params = $registry->toObject();
            $module->adv_params = $parameters->getParams($module->adv_params, $xmlfile_assignments);
            $new_modules[$module->id] = $module;
        }
        $modules = $new_modules;
        unset($new_modules);
        foreach ($modules as $id => $module) {
            if ($module->adv_params === 0) {
                continue;
            }
            $extraparams = array();
            for ($i = 1; $i <= 5; $i++) {
                $var = 'extra' . $i;
                $extraparams[$var] = isset($module->adv_params->{$var}) ? $module->adv_params->{$var} : '';
            }
            if (!empty($extraparams)) {
                $registry = new JRegistry();
                $registry->loadString($module->params);
                $module->params = $registry->toArray();
                $module->params = array_merge($module->params, $extraparams);
                $registry = new JRegistry();
                $registry->loadArray($module->params);
                $module->params = $registry->toString();
            }
            $module->reverse = 0;
            // Check if module should mirror another modules assignment settings
            if ($module->published && $config->show_mirror_module) {
                $count = 0;
                while ($count++ < 10 && isset($module->adv_params->mirror_module) && $module->adv_params->mirror_module && isset($module->adv_params->mirror_moduleid) && $module->adv_params->mirror_moduleid) {
                    $mirror_moduleid = $module->adv_params->mirror_moduleid;
                    $module->reverse = $module->adv_params->mirror_module == 2;
                    if ($mirror_moduleid) {
                        if ($mirror_moduleid == $id) {
                            $empty = new stdClass();
                            $module->adv_params = $parameters->getParams($empty, $xmlfile_assignments);
                        } else {
                            if (isset($modules[$mirror_moduleid])) {
                                $module->adv_params = $modules[$mirror_moduleid]->adv_params;
                            } else {
                                $query = 'SELECT params' . ' FROM #__advancedmodules' . ' WHERE moduleid = ' . (int) $mirror_moduleid . ' LIMIT 1';
                                $db->setQuery($query);
                                $registry = new JRegistry();
                                $registry->loadString($db->loadResult());
                                $module->adv_params = $parameters->getParams($registry->toObject(), $xmlfile_assignments);
                            }
                        }
                    }
                }
            }
            if ($module->published) {
                $params = array();
                if ($module->adv_params->assignto_menuitems) {
                    $params['MenuItem'] = new stdClass();
                    $params['MenuItem']->assignment = $module->adv_params->assignto_menuitems;
                    $params['MenuItem']->selection = $module->adv_params->assignto_menuitems_selection;
                    $params['MenuItem']->params = new stdClass();
                    $params['MenuItem']->params->inc_children = $module->adv_params->assignto_menuitems_inc_children;
                    $params['MenuItem']->params->inc_noItemid = $module->adv_params->assignto_menuitems_inc_noitemid;
                }
                if ($config->show_assignto_homepage && $module->adv_params->assignto_homepage) {
                    $params['HomePage'] = new stdClass();
                    $params['HomePage']->assignment = $module->adv_params->assignto_homepage;
                }
                if ($config->show_assignto_content) {
                    if ($module->adv_params->assignto_cats) {
                        $params['Cats'] = new stdClass();
                        $params['Cats']->assignment = $module->adv_params->assignto_cats;
                        $params['Cats']->selection = $module->adv_params->assignto_cats_selection;
                        $params['Cats']->params = new stdClass();
                        $incs = $assignments->makeArray($module->adv_params->assignto_cats_inc);
                        $params['Cats']->params->inc_categories = in_array('inc_cats', $incs);
                        $params['Cats']->params->inc_articles = in_array('inc_arts', $incs);
                        $params['Cats']->params->inc_others = in_array('inc_others', $incs);
                        $params['Cats']->params->inc_children = $module->adv_params->assignto_cats_inc_children;
                    }
                    if ($module->adv_params->assignto_articles) {
                        $params['Articles'] = new stdClass();
                        $params['Articles']->assignment = $module->adv_params->assignto_articles;
                        $params['Articles']->selection = $module->adv_params->assignto_articles_selection;
                        $params['Articles']->params = new stdClass();
                        $params['Articles']->params->keywords = $module->adv_params->assignto_articles_keywords;
                    }
                }
                /*
                if ( $config->show_assignto_fc && JFile::exists( JPATH_ADMINISTRATOR.DS.'components'.DS.'com_flexicontent'.DS.'admin.flexicontent.php' ) ) {
                	if ( $module->adv_params->assignto_fccats ) {
                		$params['Categories_FC'] = new stdClass();
                		$params['Categories_FC']->assignment = $module->adv_params->assignto_fccats;
                		$params['Categories_FC']->selection = $module->adv_params->assignto_fccats_selection;
                		$params['Categories_FC']->params = new stdClass();
                		$params['Categories_FC']->params->inc_children = $module->adv_params->assignto_fccats_inc_children;
                		$incs = $assignments->makeArray( $module->adv_params->assignto_fccats_inc );
                		$params['Categories_FC']->params->inc_categories = in_array( 'inc_cats', $incs );
                		$params['Categories_FC']->params->inc_items = in_array( 'inc_items', $incs );
                	}
                	if ( $module->adv_params->assignto_fctags ) {
                		$params['Tags_FC'] = new stdClass();
                		$params['Tags_FC']->assignment = $module->adv_params->assignto_fctags;
                		$params['Tags_FC']->selection = $module->adv_params->assignto_fctags_selection;
                		$params['Tags_FC']->params = new stdClass();
                		$incs = $assignments->makeArray( $module->adv_params->assignto_fctags_inc );
                		$params['Tags_FC']->params->inc_tags = in_array( 'inc_tags', $incs );
                		$params['Tags_FC']->params->inc_items = in_array( 'inc_items', $incs );
                	}
                	if ( $module->adv_params->assignto_fctypes ) {
                		$params['Types_FC'] = new stdClass();
                		$params['Types_FC']->assignment = $module->adv_params->assignto_fctypes;
                		$params['Types_FC']->selection = $module->adv_params->assignto_fctypes_selection;
                		$params['Types_FC']->params = new stdClass();
                	}
                	if ( $module->adv_params->assignto_fcitems ) {
                		$params['Items_FC'] = new stdClass();
                		$params['Items_FC']->assignment = $module->adv_params->assignto_fcitems;
                		$params['Items_FC']->selection = $module->adv_params->assignto_fcitems_selection;
                	}
                }
                if ( $config->show_assignto_k2 && JFile::exists( JPATH_ADMINISTRATOR.DS.'components'.DS.'com_k2'.DS.'admin.k2.php' ) ) {
                	if ( $module->adv_params->assignto_k2cats ) {
                		$params['Categories_K2'] = new stdClass();
                		$params['Categories_K2']->assignment = $module->adv_params->assignto_k2cats;
                		$params['Categories_K2']->selection = $module->adv_params->assignto_k2cats_selection;
                		$params['Categories_K2']->params = new stdClass();
                		$params['Categories_K2']->params->inc_children = $module->adv_params->assignto_k2cats_inc_children;
                		$incs = $assignments->makeArray( $module->adv_params->assignto_k2cats_inc );
                		$params['Categories_K2']->params->inc_categories = in_array( 'inc_cats', $incs );
                		$params['Categories_K2']->params->inc_items = in_array( 'inc_items', $incs );
                	}
                	if ( $module->adv_params->assignto_k2tags ) {
                		$params['Tags_K2'] = new stdClass();
                		$params['Tags_K2']->assignment = $module->adv_params->assignto_k2tags;
                		$params['Tags_K2']->selection = $module->adv_params->assignto_k2tags_selection;
                		$params['Tags_K2']->params = new stdClass();
                		$incs = $assignments->makeArray( $module->adv_params->assignto_k2tags_inc );
                		$params['Tags_K2']->params->inc_tags = in_array( 'inc_tags', $incs );
                		$params['Tags_K2']->params->inc_items = in_array( 'inc_items', $incs );
                	}
                	if ( $module->adv_params->assignto_k2items ) {
                		$params['Items_K2'] = new stdClass();
                		$params['Items_K2']->assignment = $module->adv_params->assignto_k2items;
                		$params['Items_K2']->selection = $module->adv_params->assignto_k2items_selection;
                	}
                }
                if ( $config->show_assignto_mr && $module->adv_params->assignto_mrcats && JFile::exists( JPATH_ADMINISTRATOR.DS.'components'.DS.'com_resource'.DS.'resource.php' ) ) {
                	$params['Categories_MR'] = new stdClass();
                	$params['Categories_MR']->assignment = $module->adv_params->assignto_mrcats;
                	$params['Categories_MR']->selection = $module->adv_params->assignto_mrcats_selection;
                	$params['Categories_MR']->params = new stdClass();
                	$params['Categories_MR']->params->inc_children = $module->adv_params->assignto_mrcats_inc_children;
                	$incs = $assignments->makeArray( $module->adv_params->assignto_mrcats_inc );
                	$params['Categories_MR']->params->inc_categories = in_array( 'inc_cats', $incs );
                	$params['Categories_MR']->params->inc_items = in_array( 'inc_items', $incs );
                }
                */
                if ($config->show_assignto_zoo && $module->adv_params->assignto_zoocats && JFile::exists(JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_zoo' . DS . 'zoo.php')) {
                    $params['Categories_ZOO'] = new stdClass();
                    $params['Categories_ZOO']->assignment = $module->adv_params->assignto_zoocats;
                    $params['Categories_ZOO']->selection = $module->adv_params->assignto_zoocats_selection;
                    $params['Categories_ZOO']->params = new stdClass();
                    $params['Categories_ZOO']->params->inc_children = $module->adv_params->assignto_zoocats_inc_children;
                    $incs = $assignments->makeArray($module->adv_params->assignto_zoocats_inc);
                    $params['Categories_ZOO']->params->inc_apps = in_array('inc_apps', $incs);
                    $params['Categories_ZOO']->params->inc_categories = in_array('inc_cats', $incs);
                    $params['Categories_ZOO']->params->inc_items = in_array('inc_items', $incs);
                }
                if ($config->show_assignto_components && $module->adv_params->assignto_components) {
                    $params['Components'] = new stdClass();
                    $params['Components']->assignment = $module->adv_params->assignto_components;
                    $params['Components']->selection = $module->adv_params->assignto_components_selection;
                }
                if ($config->show_assignto_urls && $module->adv_params->assignto_urls) {
                    $params['URL'] = new stdClass();
                    $params['URL']->assignment = $module->adv_params->assignto_urls;
                    $configuration =& JFactory::getConfig();
                    if ($config->use_sef == 1 || $config->use_sef == 2 && $configuration->getValue('config.sef') == 1) {
                        $params['URL']->selection = $module->adv_params->assignto_urls_selection_sef;
                    } else {
                        $params['URL']->selection = $module->adv_params->assignto_urls_selection;
                    }
                    $params['URL']->selection = explode("\n", $params['URL']->selection);
                }
                if ($config->show_assignto_browsers && $module->adv_params->assignto_browsers) {
                    $params['Browsers'] = new stdClass();
                    $params['Browsers']->assignment = $module->adv_params->assignto_browsers;
                    $params['Browsers']->selection = $module->adv_params->assignto_browsers_selection;
                }
                if ($config->show_assignto_date) {
                    if ($module->adv_params->assignto_date) {
                        $params['Date'] = new stdClass();
                        $params['Date']->assignment = $module->adv_params->assignto_date;
                        $params['Date']->params = new stdClass();
                        $params['Date']->params->publish_up = $module->adv_params->assignto_date_publish_up;
                        $params['Date']->params->publish_down = $module->adv_params->assignto_date_publish_down;
                    }
                    if ($module->adv_params->assignto_seasons) {
                        $params['Seasons'] = new stdClass();
                        $params['Seasons']->assignment = $module->adv_params->assignto_seasons;
                        $params['Seasons']->selection = $module->adv_params->assignto_seasons_selection;
                        $params['Seasons']->params = new stdClass();
                        $params['Seasons']->params->hemisphere = $module->adv_params->assignto_seasons_hemisphere;
                    }
                    if ($module->adv_params->assignto_months) {
                        $params['Months'] = new stdClass();
                        $params['Months']->assignment = $module->adv_params->assignto_months;
                        $params['Months']->selection = $module->adv_params->assignto_months_selection;
                    }
                    if ($module->adv_params->assignto_days) {
                        $params['Days'] = new stdClass();
                        $params['Days']->assignment = $module->adv_params->assignto_days;
                        $params['Days']->selection = $module->adv_params->assignto_days_selection;
                    }
                    if ($module->adv_params->assignto_time) {
                        $params['Time'] = new stdClass();
                        $params['Time']->assignment = $module->adv_params->assignto_time;
                        $params['Time']->params = new stdClass();
                        $params['Time']->params->publish_up = $module->adv_params->assignto_time_publish_up;
                        $params['Time']->params->publish_down = $module->adv_params->assignto_time_publish_down;
                    }
                }
                if ($config->show_assignto_usergrouplevels && $module->adv_params->assignto_usergrouplevels) {
                    $params['UserGroupLevels'] = new stdClass();
                    $params['UserGroupLevels']->assignment = $module->adv_params->assignto_usergrouplevels;
                    $params['UserGroupLevels']->selection = $module->adv_params->assignto_usergrouplevels_selection;
                }
                if ($config->show_assignto_users && $module->adv_params->assignto_users) {
                    $params['Users'] = new stdClass();
                    $params['Users']->assignment = $module->adv_params->assignto_users;
                    $params['Users']->selection = $module->adv_params->assignto_users_selection;
                }
                if ($config->show_assignto_languages && $module->adv_params->assignto_languages) {
                    $params['Languages'] = new stdClass();
                    $params['Languages']->assignment = $module->adv_params->assignto_languages;
                    $params['Languages']->selection = $module->adv_params->assignto_languages_selection;
                }
                if ($config->show_assignto_templates && $module->adv_params->assignto_templates) {
                    $params['Templates'] = new stdClass();
                    $params['Templates']->assignment = $module->adv_params->assignto_templates;
                    $params['Templates']->selection = $module->adv_params->assignto_templates_selection;
                }
                if ($config->show_assignto_php && $module->adv_params->assignto_php) {
                    $params['PHP'] = new stdClass();
                    $params['PHP']->assignment = $module->adv_params->assignto_php;
                    $params['PHP']->selection = $module->adv_params->assignto_php_selection;
                }
                $pass = $assignments->passAll($params, $module->adv_params->match_method);
                if (!$pass) {
                    $module->published = 0;
                }
                if ($module->reverse) {
                    $module->published = $module->published ? 0 : 1;
                }
            }
            $modules[$id] = $module;
        }
    }
}