function aSubPanel($name, $instance_properties, $parent_bean, $reload = false, $original_only = false)
 {
     $this->_instance_properties = $instance_properties;
     $this->name = $name;
     $this->parent_bean = $parent_bean;
     //set language
     global $current_language;
     if (!isset($parent_bean->mbvardefs)) {
         $mod_strings = return_module_language($current_language, $parent_bean->module_dir);
     }
     $this->mod_strings = $mod_strings;
     if ($this->isCollection()) {
         $this->load_sub_subpanels();
         //load sub-panel definition.
     } else {
         if (!is_dir('modules/' . $this->_instance_properties['module'])) {
             _pstack_trace();
         }
         $def_path = 'modules/' . $this->_instance_properties['module'] . '/metadata/subpanels/' . $this->_instance_properties['subpanel_name'] . '.php';
         require $def_path;
         if (!$original_only && isset($this->_instance_properties['override_subpanel_name']) && file_exists('custom/modules/' . $this->_instance_properties['module'] . '/metadata/subpanels/' . $this->_instance_properties['override_subpanel_name'] . '.php')) {
             $cust_def_path = 'custom/modules/' . $this->_instance_properties['module'] . '/metadata/subpanels/' . $this->_instance_properties['override_subpanel_name'] . '.php';
             require $cust_def_path;
         }
         // check that the loaded subpanel definition includes a $subpanel_layout section - some, such as projecttasks/default do not...
         $this->panel_definition = array();
         if (isset($subpanel_layout)) {
             $this->panel_definition = $subpanel_layout;
         }
         $this->load_module_info();
         //load module info from the module's bean file.
     }
 }
 function aSubPanel($name, $instance_properties, $parent_bean, $reload = false, $original_only = false)
 {
     $this->_instance_properties = $instance_properties;
     $this->name = $name;
     $this->parent_bean = $parent_bean;
     //set language
     global $current_language;
     if (!isset($parent_bean->mbvardefs)) {
         $mod_strings = return_module_language($current_language, $parent_bean->module_dir);
     }
     $this->mod_strings = $mod_strings;
     if ($this->isCollection()) {
         $this->canDisplay = $this->load_sub_subpanels();
         //load sub-panel definition.
     } else {
         if (!is_dir('modules/' . $this->_instance_properties['module'])) {
             _pstack_trace();
         }
         $def_path = 'modules/' . $this->_instance_properties['module'] . '/metadata/subpanels/' . $this->_instance_properties['subpanel_name'] . '.php';
         $orig_exists = is_file($def_path);
         $loaded = false;
         if ($orig_exists) {
             require $def_path;
             $loaded = true;
         }
         if (is_file("custom/{$def_path}") && (!$original_only || !$orig_exists)) {
             require "custom/{$def_path}";
             $loaded = true;
         }
         if (!$original_only && isset($this->_instance_properties['override_subpanel_name']) && file_exists('custom/modules/' . $this->_instance_properties['module'] . '/metadata/subpanels/' . $this->_instance_properties['override_subpanel_name'] . '.php')) {
             $cust_def_path = 'custom/modules/' . $this->_instance_properties['module'] . '/metadata/subpanels/' . $this->_instance_properties['override_subpanel_name'] . '.php';
             require $cust_def_path;
             $loaded = true;
         }
         if (!$loaded) {
             $GLOBALS['log']->fatal("Failed to load original or custom subpanel data for {$name} in {$def_path}");
             $this->canDisplay = false;
         }
         // load module info from the module's bean file
         $this->load_module_info();
         // check that the loaded subpanel definition includes a $subpanel_layout section - some, such as
         // projecttasks/default do not...
         $this->panel_definition = array();
         if (isset($subpanel_layout) && is_array($subpanel_layout)) {
             $this->set_panel_definition($subpanel_layout);
         }
     }
 }
 function __construct($name, $instance_properties, $parent_bean, $reload = false, $original_only = false, $search_query = '', $collections = array())
 {
     $this->_instance_properties = $instance_properties;
     if (isset($instance_properties['collection_list'])) {
         $this->base_collection_list = $instance_properties['collection_list'];
     }
     if (!empty($collections) && isset($instance_properties['collection_list'])) {
         foreach ($instance_properties['collection_list'] as $cname => $value) {
             if (!in_array($value['module'], $collections)) {
                 unset($instance_properties['collection_list'][$cname]);
             }
         }
     }
     if (isset($instance_properties['type']) && $instance_properties['type'] != 'collection' && !empty($collections)) {
         $instance = $this->_instance_properties;
         $BreakDownCollections = $collections;
         $newTable = strtolower($instance['module']);
         $collection = array_shift(array_values($BreakDownCollections));
         $table = strtolower($collection['module']);
         //tasks or contacts.
         $search_query = str_replace($table, $newTable, $search_query);
     }
     $this->search_query = $search_query;
     $this->name = $name;
     $this->parent_bean = $parent_bean;
     //set language
     global $current_language;
     if (!isset($parent_bean->mbvardefs)) {
         $mod_strings = return_module_language($current_language, $parent_bean->module_dir);
     }
     $this->mod_strings = $mod_strings;
     if ($this->isCollection()) {
         $this->canDisplay = $this->load_sub_subpanels();
         //load sub-panel definition.
     } else {
         if (!is_dir('modules/' . $this->_instance_properties['module'])) {
             _pstack_trace();
         }
         $def_path = 'modules/' . $this->_instance_properties['module'] . '/metadata/subpanels/' . $this->_instance_properties['subpanel_name'] . '.php';
         $orig_exists = is_file($def_path);
         $loaded = false;
         if ($orig_exists) {
             require $def_path;
             $loaded = true;
         }
         if (is_file("custom/{$def_path}") && (!$original_only || !$orig_exists)) {
             require "custom/{$def_path}";
             $loaded = true;
         }
         if (!$original_only && isset($this->_instance_properties['override_subpanel_name']) && file_exists('custom/modules/' . $this->_instance_properties['module'] . '/metadata/subpanels/' . $this->_instance_properties['override_subpanel_name'] . '.php')) {
             $cust_def_path = 'custom/modules/' . $this->_instance_properties['module'] . '/metadata/subpanels/' . $this->_instance_properties['override_subpanel_name'] . '.php';
             require $cust_def_path;
             $loaded = true;
         }
         if (!$loaded) {
             $GLOBALS['log']->fatal("Failed to load original or custom subpanel data for {$name} in {$def_path}");
             $this->canDisplay = false;
         }
         // load module info from the module's bean file
         $this->load_module_info();
         // check that the loaded subpanel definition includes a $subpanel_layout section - some, such as
         // projecttasks/default do not...
         $this->panel_definition = array();
         if (isset($subpanel_layout) && is_array($subpanel_layout)) {
             $this->set_panel_definition($subpanel_layout);
         }
     }
 }