[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/modules/Reports/models/ -> RecordStructure.php (source)

   1  <?php
   2  
   3  /* +***********************************************************************************

   4   * The contents of this file are subject to the vtiger CRM Public License Version 1.0

   5   * ("License"); You may not use this file except in compliance with the License

   6   * The Original Code is:  vtiger CRM Open Source

   7   * The Initial Developer of the Original Code is vtiger.

   8   * Portions created by vtiger are Copyright (C) vtiger.

   9   * All Rights Reserved.

  10   * *********************************************************************************** */
  11  
  12  /**

  13   * Vtiger Edit View Record Structure Model

  14   */
  15  class Reports_RecordStructure_Model extends Vtiger_RecordStructure_Model {
  16  
  17      /**

  18       * Function to get the values in stuctured format

  19       * @return <array> - values in structure array('block'=>array(fieldinfo));

  20       */
  21  	public function getStructure($moduleName) {
  22          if (!empty($this->structuredValues[$moduleName])) {
  23              return $this->structuredValues[$moduleName];
  24          }
  25          $moduleModel = Vtiger_Module_Model::getInstance($moduleName);
  26          if ($moduleName === 'Emails') {
  27              $restrictedTablesList = array('vtiger_emaildetails', 'vtiger_attachments');
  28              $moduleRecordStructure = array();
  29              $blockModelList = $moduleModel->getBlocks();
  30              foreach ($blockModelList as $blockLabel => $blockModel) {
  31                  $fieldModelList = $blockModel->getFields();
  32                  if (!empty($fieldModelList)) {
  33                      $moduleRecordStructure[$blockLabel] = array();
  34                      foreach ($fieldModelList as $fieldName => $fieldModel) {
  35                          if (!in_array($fieldModel->get('table'), $restrictedTablesList) && $fieldModel->isViewable()) {
  36                              $moduleRecordStructure[$blockLabel][$fieldName] = $fieldModel;
  37                          }
  38                      }
  39                  }
  40              }
  41          } else if($moduleName === 'Calendar') { 
  42              $recordStructureInstance = Vtiger_RecordStructure_Model::getInstanceForModule($moduleModel);
  43              $moduleRecordStructure = array();
  44              $calendarRecordStructure = $recordStructureInstance->getStructure();
  45              
  46              $eventsModel = Vtiger_Module_Model::getInstance('Events');
  47              $recordStructureInstance = Vtiger_RecordStructure_Model::getInstanceForModule($eventsModel);
  48              $eventRecordStructure = $recordStructureInstance->getStructure();
  49              
  50              $blockLabel = 'LBL_CUSTOM_INFORMATION';
  51              if($eventRecordStructure[$blockLabel]) {
  52                  if($calendarRecordStructure[$blockLabel]) {
  53                      $calendarRecordStructure[$blockLabel] = array_merge($calendarRecordStructure[$blockLabel], $eventRecordStructure[$blockLabel]);
  54                  } else {
  55                      $calendarRecordStructure[$blockLabel] = $eventRecordStructure[$blockLabel];
  56                  }
  57              }
  58              $moduleRecordStructure = $calendarRecordStructure;
  59          } else {
  60              $recordStructureInstance = Vtiger_RecordStructure_Model::getInstanceForModule($moduleModel);
  61              $moduleRecordStructure = $recordStructureInstance->getStructure();
  62          }
  63          $this->structuredValues[$moduleName] = $moduleRecordStructure;
  64          return $moduleRecordStructure;
  65      }
  66  
  67      /**

  68       * Function returns the Primary Module Record Structure

  69       * @return <Vtiger_RecordStructure_Model>

  70       */
  71  	function getPrimaryModuleRecordStructure() {
  72          $primaryModule = $this->getRecord()->getPrimaryModule();
  73          $primaryModuleRecordStructure = $this->getStructure($primaryModule);
  74          return $primaryModuleRecordStructure;
  75      }
  76  
  77      /**

  78       * Function returns the Secondary Modules Record Structure

  79       * @return <Array of Vtiger_RecordSructure_Models>

  80       */
  81  	function getSecondaryModuleRecordStructure() {
  82          $recordStructureInstances = array();
  83  
  84          $secondaryModule = $this->getRecord()->getSecondaryModules();
  85          if (!empty($secondaryModule)) {
  86              $moduleList = explode(':', $secondaryModule);
  87  
  88              foreach ($moduleList as $moduleName) {
  89                  if (!empty($moduleName)) {
  90                      $recordStructureInstances[$moduleName] = $this->getStructure($moduleName);
  91                  }
  92              }
  93          }
  94          return $recordStructureInstances;
  95      }
  96  
  97  }
  98  
  99  ?>


Generated: Fri Nov 28 20:08:37 2014 Cross-referenced by PHPXref 0.7.1