[Vtigercrm-developers] DETAILVIEWWIDGET

IT-Solutions4You info at its4you.sk
Tue Oct 14 08:10:48 GMT 2014


I'm talking about vtiger CRM.



Dňa 13. 10. 2014 17:36 Pabiszczak, Błażej  wrote / napísal(a):
> Do you see "*_/Widgets/_*" module in settings in our Yetiforce?
> https://test.yetiforce.com/index.php?module=Widgets&parent=Settings&view=Index&block=2&fieldid=58
>
>
> Z poważaniem / Regards
> Błażej Pabiszczak
> M: +48.884999123
> E: b.pabiszczak at opensaas.pl
> <mailto:b.pabiszczak at opensaas.pl>
>
> 2014-10-13 15:31 GMT+02:00 IT-Solutions4You
> <info at its4you.sk
> <mailto:info at its4you.sk>>:
>
>     And what's now? How can we (community) help vtiger to implement this:
>
>     https://discussions.vtiger.__com/index.php?p=/discussion/__171186/detail-view-widgets-__implementation/p1
>     <https://discussions.vtiger.com/index.php?p=/discussion/171186/detail-view-widgets-implementation/p1>
>
>     Matus.
>
>     Dňa 13. 10. 2014 13:04 Alan Lord  wrote / napísal(a):
>
>         Ah,
>
>         I think you might be right about vtiger_links & DETALVIEWWIDGETS...
>
>         I've started looking at creating a module which allows the user
>         to add a
>         custom widget to other modules via my extension module...
>
>         But looking at the code in the standard models in
>         /modules/Vtiger/models/{__Detail.php,DetailView.php} it looks like
>         getDetailViewLinks() and getWidgets() will only *ever* return
>         specific
>         widgets and will override information in the vtiger_links table
>         such as
>         linkurl for example.
>
>         Is this really the case or am I missing something? Is there no
>         way for
>         me to add a new entry in the vtiger_links table such that, for
>         example,
>         I could add a new "Libertus" widget that gets displayed on the
>         Contacts
>         module Summary page or DetailView page?
>
>                  /**
>                   * Function to get the detail view links (links and
>             widgets)
>                   * @param <array> $linkParams - parameters which will
>             be used to
>             calicaulate the params
>                   * @return <array> - array of link models in the format
>             as below
>                   *                   array('linktype'=>list of link
>             models);
>                   */
>                  public function getDetailViewLinks($__linkParams) {
>                      $linkTypes = array('DETAILVIEWBASIC','__DETAILVIEW');
>                      $moduleModel = $this->getModule();
>                      $recordModel = $this->getRecord();
>
>                      $moduleName = $moduleModel->getName();
>                      $recordId = $recordModel->getId();
>
>                      $detailViewLink = array();
>
>                      if(Users_Privileges_Model::__isPermitted($moduleName,
>             'EditView', $recordId)) {
>                          $detailViewLinks[] = array(
>                                  'linktype' => 'DETAILVIEWBASIC',
>                                  'linklabel' => 'LBL_EDIT',
>                                  'linkurl' =>
>             $recordModel->getEditViewUrl()__,
>                                  'linkicon' => ''
>                          );
>
>                          foreach ($detailViewLinks as $detailViewLink) {
>                              $linkModelList['__DETAILVIEWBASIC'][] =
>             Vtiger_Link_Model::__getInstanceFromValues($__detailViewLink);
>                          }
>                      }
>
>                      $linkModelListDetails =
>             Vtiger_Link_Model::__getAllByType($moduleModel->__getId(),$linkTypes,$__linkParams);
>
>                      //Mark all detail view basic links as detail view
>             links.
>                      //Since ui will be look ugly if you need many basic
>             links
>                      $detailViewBasiclinks =
>             $linkModelListDetails['__DETAILVIEWBASIC'];
>                      unset($linkModelListDetails['__DETAILVIEWBASIC']);
>
>
>             if(Users_Privileges_Model::__isPermitted($moduleName, 'Delete',
>             $recordId)) {
>                          $deletelinkModel = array(
>                                  'linktype' => 'DETAILVIEW',
>                                  'linklabel' => sprintf("%s %s",
>             getTranslatedString('LBL___DELETE', $moduleName),
>             vtranslate('SINGLE_'.
>             $moduleName, $moduleName)),
>                                  'linkurl' =>
>             'javascript:Vtiger_Detail_Js.__deleteRecord("'.$recordModel->__getDeleteUrl().'")',
>
>                                  'linkicon' => ''
>                          );
>                          $linkModelList['DETAILVIEW'][] =
>             Vtiger_Link_Model::__getInstanceFromValues($__deletelinkModel);
>                      }
>
>                      if(Users_Privileges_Model::__isPermitted($moduleName,
>             'EditView', $recordId)) {
>                          $duplicateLinkModel = array(
>                                      'linktype' => 'DETAILVIEWBASIC',
>                                      'linklabel' => 'LBL_DUPLICATE',
>                                      'linkurl' =>
>             $recordModel->__getDuplicateRecordUrl(),
>                                      'linkicon' => ''
>                              );
>                          $linkModelList['DETAILVIEW'][] =
>             Vtiger_Link_Model::__getInstanceFromValues($__duplicateLinkModel);
>                      }
>
>                      if(!empty($__detailViewBasiclinks)) {
>                          foreach($detailViewBasiclinks as $linkModel) {
>                              // Remove view history, needed in vtiger5
>             to see
>             history but not in vtiger6
>                              if($linkModel->linklabel == 'View History') {
>                                  continue;
>                              }
>                              $linkModelList['DETAILVIEW'][] = $linkModel;
>                          }
>                      }
>
>                      $relatedLinks = $this->__getDetailViewRelatedLinks();
>
>                      foreach($relatedLinks as $relatedLinkEntry) {
>                          $relatedLink =
>             Vtiger_Link_Model::__getInstanceFromValues($__relatedLinkEntry);
>                          $linkModelList[$relatedLink->__getType()][] =
>             $relatedLink;
>                      }
>
>                      $widgets = $this->getWidgets();
>                      foreach($widgets as $widgetLinkModel) {
>                          $linkModelList['__DETAILVIEWWIDGET'][] =
>             $widgetLinkModel;
>                      }
>
>                      $currentUserModel =
>             Users_Record_Model::__getCurrentUserModel();
>                      if($currentUserModel->__isAdminUser()) {
>                          $settingsLinks = $moduleModel->getSettingLinks(__);
>                          foreach($settingsLinks as $settingsLink) {
>                              $linkModelList['__DETAILVIEWSETTING'][] =
>             Vtiger_Link_Model::__getInstanceFromValues($__settingsLink);
>                          }
>                      }
>
>                      return $linkModelList;
>                  }
>
>
>
>
>                  /**
>                   * Function to get the detail view widgets
>                   * @return <Array> - List of widgets , where each
>             widget is an
>             Vtiger_Link_Model
>                   */
>                  public function getWidgets() {
>                      $moduleModel = $this->getModule();
>                      $widgets = array();
>
>                      $modCommentsModel =
>             Vtiger_Module_Model::__getInstance('ModComments');
>                      if($moduleModel->__isCommentEnabled() &&
>             $modCommentsModel->__isPermitted('DetailView')) {
>                          $widgets[] = array(
>                                  'linktype' => 'DETAILVIEWWIDGET',
>                                  'linklabel' => 'ModComments',
>                                  'linkurl' =>
>             'module='.$this->__getModuleName().'&view=Detail&__record='.$this->getRecord()->__getId().
>
>
>             '&mode=showRecentComments&__page=1&limit=5'
>                          );
>                      }
>
>                      if($moduleModel->__isTrackingEnabled()) {
>                          $widgets[] = array(
>                                  'linktype' => 'DETAILVIEWWIDGET',
>                                  'linklabel' => 'LBL_UPDATES',
>                                  'linkurl' =>
>             'module='.$this->__getModuleName().'&view=Detail&__record='.$this->getRecord()->__getId().
>
>
>             '&mode=showRecentActivities&__page=1&limit=5',
>                          );
>                      }
>
>                      $widgetLinks = array();
>                      foreach ($widgets as $widgetDetails) {
>                          $widgetLinks[] =
>             Vtiger_Link_Model::__getInstanceFromValues($__widgetDetails);
>                      }
>                      return $widgetLinks;
>                  }
>
>
>         Al
>
>
>         _________________________________________________
>         http://www.vtiger.com/
>
>
>
>     _________________________________________________
>     http://www.vtiger.com/
>
>
>
>
> _______________________________________________
> http://www.vtiger.com/
>




More information about the vtigercrm-developers mailing list