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

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

Recommended Posts

По умолчанию заголовок страниц с записями модулей в 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;
  }

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


Просмотреть полную запись

  • Like 1

Share this post


Link to post
Share on other sites

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
Sign in to follow this  

×