function executeCommand()
 {
     global $ilUser;
     // Check for incomplete profile
     if ($ilUser->getProfileIncomplete()) {
         ilUtil::redirect('ilias.php?baseClass=ilPersonalDesktopGUI');
     }
     // check whether password of user have to be changed
     // due to first login or password of user is expired
     if ($ilUser->isPasswordChangeDemanded() || $ilUser->isPasswordExpired()) {
         ilUtil::redirect('ilias.php?baseClass=ilPersonalDesktopGUI');
     }
     $next_class = $this->ctrl->getNextClass($this);
     switch ($next_class) {
         case 'ilpageobjectgui':
             $this->prepareOutput();
             $ret = $this->forwardToPageObject();
             if ($ret != '') {
                 $this->tpl->setContent($ret);
             }
             break;
         default:
             switch ($this->cmd) {
                 case 'firstpage':
                     $this->clearFilter();
                     if (!$this->genSet->get('show_general_filter') && !$this->genSet->get('show_topics_filter') && !$this->genSet->get('show_shop_explorer')) {
                         $cmd = 'performSearch';
                     } else {
                         if (ilPaymentSettings::useShopSpecials() == true) {
                             $cmd = 'showSpecialContent';
                         } else {
                             $cmd = 'performSearch';
                         }
                     }
                     break;
                 case 'resetFilter':
                     $cmd = 'resetFilter';
                     break;
                 case 'setFilter':
                     $cmd = 'setFilter';
                     break;
                 default:
                     $cmd = 'performSearch';
                     break;
             }
             if ($this->cmd != 'firstpage' && (isset($_GET['ref_id']) || $this->cmd == 'showTree')) {
                 $obj_type = ilObject::_lookupType(ilObject::_lookupObjId($this->cur_ref_id));
                 $container = array("root", "cat", 'catr', "grp", "icrs", "crs", 'crsr', 'rcrs');
                 if (in_array($obj_type, $container)) {
                     $cmd = 'showContainerContent';
                 } else {
                     $cmd = 'performSearch';
                 }
             }
             $this->prepareOutput();
             $this->{$cmd}();
             break;
     }
     return true;
 }
 function executeCommand()
 {
     $next_class = $this->ctrl->getNextClass($this);
     switch ($next_class) {
         case 'ilshoppagegui':
             $this->prepareOutput();
             $ret = $this->forwardToPageObject();
             if ($ret != '') {
                 $this->tpl->setContent($ret);
             }
             break;
         default:
             switch ($this->cmd) {
                 case 'firstpage':
                     $this->clearFilter();
                     if (!$this->genSet->get('show_general_filter') && !$this->genSet->get('show_topics_filter') && !$this->genSet->get('show_shop_explorer')) {
                         $cmd = 'performSearch';
                     } else {
                         if (ilPaymentSettings::useShopSpecials() == true) {
                             $cmd = 'showSpecialContent';
                         } else {
                             $cmd = 'performSearch';
                         }
                     }
                     break;
                 case 'resetFilter':
                     $cmd = 'resetFilter';
                     break;
                 case 'setFilter':
                     $cmd = 'setFilter';
                     break;
                 default:
                     $cmd = 'performSearch';
                     break;
             }
             if ($this->cmd != 'firstpage' && (isset($_GET['ref_id']) || $this->cmd == 'showTree')) {
                 $obj_type = ilObject::_lookupType(ilObject::_lookupObjId($this->cur_ref_id));
                 $container = array("root", "cat", 'catr', "grp", "crs", 'crsr', 'rcrs');
                 if (in_array($obj_type, $container)) {
                     $cmd = 'showContainerContent';
                 } else {
                     $cmd = 'performSearch';
                 }
             }
             $this->prepareOutput();
             $this->{$cmd}();
             break;
     }
     return true;
 }