/**
  * used to create containers for new modules
  * @global db the exponent database object
  * @param  $iloc
  * @param  $m
  * @param bool $linked
  * @return void
  */
 private function add_container($iloc, $m, $linked = false)
 {
     global $db;
     if ($iloc->mod != 'contactmodule') {
         $iloc->mod = $this->new_modules[$iloc->mod];
         $m->internal = isset($m->internal) && strstr($m->internal, "Controller") ? $m->internal : serialize($iloc);
         $m->action = isset($m->action) ? $m->action : 'showall';
         $m->view = isset($m->view) ? $m->view : 'showall';
         if ($m->view == "Default") {
             $m->view = 'showall';
         }
     } else {
         // must be an old school contactmodule
         $iloc->mod = $this->new_modules[$iloc->mod];
         $m->internal = serialize($iloc);
     }
     if ($linked) {
         $newconfig = new expConfig();
         $config['aggregate'] = array($iloc->src);
         $newconfig->config = $config;
         $newmodule['i_mod'] = $iloc->mod;
         $newmodule['modcntrol'] = $iloc->mod;
         $newmodule['rank'] = $m->rank;
         $newmodule['views'] = $m->view;
         $newmodule['title'] = $m->title;
         $newmodule['actions'] = $m->action;
         $_POST['current_section'] = 1;
         $m = container::update($newmodule, $m, expUnserialize($m->external));
         $newmodinternal = expUnserialize($m->internal);
         $newmod = explode("Controller", $newmodinternal->mod);
         $newmodinternal->mod = $newmod[0];
         $newconfig->location_data = $newmodinternal;
         $newconfig->save();
     }
     $db->insertObject($m, 'container');
 }