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


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

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


    User Feedback

    Recommended Comments

    There are no comments to display.



    Join the conversation

    You can post now and register later. If you have an account, sign in now to post with your account.

    Guest
    Add a comment...

    ×   Pasted as rich text.   Paste as plain text instead

      Only 75 emoji are allowed.

    ×   Your link has been automatically embedded.   Display as a link instead

    ×   Your previous content has been restored.   Clear editor

    ×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...