Jump to content
SpravkaCRM.ru - Ваш справочник по CRM
  • Sign in to follow this  

    Хлебные крошки в модулях SuiteCRM


    SpravkaCRM.ru

    По умолчанию заголовок страниц с записями модулей в SuiteCRM отображается без хлебных крошек. По этому зачастую сходу сложно понять, где находишся (в каком модуле) при просмотре карточки. Плюс если хочешь уйти на список записей модуля приходится находить этот модуль в верхнем меню и нажимать на него:

    5673b24b95c3a_2015-12-1810-13-56.thumb.p

     Конечно ничего страшного, но хочется побыстрее/понагляднее. Вот что вышло:

    5673b8232e04a_2015-12-1810-39-03.thumb.p

    На мой взгляд так удобнее ориентироваться в системе: сразу видишь где ты находится в настоящий момент. Плюс с навигацией немного попроще. А достигается это очень просто: нужно найти файл include/MVC/View/SugarView.php, в нем найти функцию 

    protected function _getModuleTitleParams($browserTitle = false)

    а в ней такие строки:

     

    case 'EditView':
        if(!empty($this->bean->id) && (empty($_REQUEST['isDuplicate']) || $_REQUEST['isDuplicate'] === 'false')) {
            $params[] = "<a href='index.php?module={$this->module}&action=DetailView&record={$this->bean->id}'>".$this->bean->get_summary_text()."</a>";
            $params[] = $GLOBALS['app_strings']['LBL_EDIT_BUTTON_LABEL'];
        }
        else
            $params[] = $GLOBALS['app_strings']['LBL_CREATE_BUTTON_LABEL'];
        break;
    case 'DetailView':
        $beanName = $this->bean->get_summary_text();
        $params[] = $beanName;
        break;
    }

     

    и в них добавить

     

    $params[] = '<A href="index.php?module=' . $this->module . '&action=index">' . $GLOBALS['app_list_strings']['moduleList'][$this->module] . '</A>';
    

    чтобы получилось вот так:

      /**
       * Returns an array composing of the breadcrumbs to use for the module title
       *
       * @param bool $browserTitle true if the returned string is being used for the browser title, meaning
       *                           there should be no HTML in the string
       * @return array
       */
      protected function _getModuleTitleParams($browserTitle = false)
      {
          $params = array($this->_getModuleTitleListParam($browserTitle));
    //$params = array();
          if (isset($this->action)){
              switch ($this->action) {
              case 'EditView':
                  if(!empty($this->bean->id) && (empty($_REQUEST['isDuplicate']) || $_REQUEST['isDuplicate'] === 'false')) {
                      $params[] = '<A href="index.php?module=' . $this->module . '&action=index">' . $GLOBALS['app_list_strings']['moduleList'][$this->module] . '</A>';
                      $params[] = "<a href='index.php?module={$this->module}&action=DetailView&record={$this->bean->id}'>".$this->bean->get_summary_text()."</a>";
                      $params[] = $GLOBALS['app_strings']['LBL_EDIT_BUTTON_LABEL'];
                  }
                  else
                      $params[] = $GLOBALS['app_strings']['LBL_CREATE_BUTTON_LABEL'];
                  break;
              case 'DetailView':
                  $params[] = '<A href="index.php?module=' . $this->module . '&action=index">' . $GLOBALS['app_list_strings']['moduleList'][$this->module] . '</A>';
                  $beanName = $this->bean->get_summary_text();
                  $params[] = $beanName;
                  break;
              }
          }
    
          return $params;
      }

    В результате во всех модулях в режиме редактирования и просмотра появятся хлебные крошки с названием модуля и возможностью перейти на список его записей

    Sign in to follow this  


    User Feedback

    Recommended Comments

    There are no comments to display.



    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now

×