From 1e29f9e0faf05e65afc473ca19bedc1d61291d0a Mon Sep 17 00:00:00 2001 From: Prasad <prasad@vtiger.com> Date: Sun, 3 Oct 2021 18:36:10 +0530 Subject: [PATCH] Fixed PHP warnings on List, Edit and Detail view --- include/ListView/ListViewController.php | 8 +-- .../QueryGenerator/EnhancedQueryGenerator.php | 10 ++-- include/QueryGenerator/QueryGenerator.php | 2 +- include/Webservices/PreserveGlobal.php | 3 +- include/Webservices/WebserviceField.php | 4 +- includes/runtime/Controller.php | 59 +++++++++++++++---- .../v7/modules/Vtiger/ListViewContents.tpl | 8 ++- layouts/v7/modules/Vtiger/partials/Topbar.tpl | 3 +- .../v7/modules/Vtiger/uitypes/Picklist.tpl | 10 ++-- modules/CustomView/CustomView.php | 9 +-- modules/Settings/Picklist/models/Module.php | 1 + modules/Vtiger/models/Block.php | 2 +- modules/Vtiger/models/Field.php | 21 ++++--- modules/Vtiger/models/ListView.php | 4 +- modules/Vtiger/models/Module.php | 6 +- modules/Vtiger/models/Paging.php | 4 +- modules/Vtiger/models/RelationListView.php | 2 +- modules/Vtiger/views/Detail.php | 8 ++- modules/Vtiger/views/List.php | 14 ++--- .../modules/ModTracker/ModTracker.php | 2 +- .../modules/ModTracker/models/Record.php | 2 +- vtlib/Vtiger/FieldBasic.php | 2 +- 22 files changed, 117 insertions(+), 67 deletions(-) diff --git a/include/ListView/ListViewController.php b/include/ListView/ListViewController.php index a88722332..2c5488809 100644 --- a/include/ListView/ListViewController.php +++ b/include/ListView/ListViewController.php @@ -127,7 +127,7 @@ class ListViewController { $fields = $this->queryGenerator->getFields(); $headerFields = array(); foreach($fields as $fieldName) { - if(array_key_exists($fieldName, $moduleFields)) { + if(is_array($moduleFields) && array_key_exists($fieldName, $moduleFields)) { $headerFields[$fieldName] = $moduleFields[$fieldName]; } } @@ -142,7 +142,7 @@ class ListViewController { $meta = $this->queryGenerator->getMeta($this->queryGenerator->getModule()); $baseModule = $module; $moduleFields = $this->queryGenerator->getModuleFields(); - $accessibleFieldList = array_keys($moduleFields); + $accessibleFieldList = is_array($moduleFields) ? array_keys($moduleFields) : array(); $listViewFields = array_intersect($fields, $accessibleFieldList); $referenceFieldList = $this->queryGenerator->getReferenceFieldList(); @@ -180,7 +180,7 @@ class ListViewController { } } if(count($idList) > 0) { - if(!is_array($this->ownerNameList[$fieldName])) { + if(isset($this->onwerNameList[$fieldName]) && !is_array($this->ownerNameList[$fieldName])) { $this->ownerNameList[$fieldName] = getOwnerNameList($idList); } else { //array_merge API loses key information so need to merge the arrays @@ -491,7 +491,7 @@ class ListViewController { } } elseif ( in_array($uitype,array(7,9,90)) ) { $value = "<span align='right'>".textlength_check($value)."</span>"; - } elseif($field && $field->isNameField) { + } elseif($field && isset($field->isNameField) && $field->isNameField) { $value = "<a href='?module=$field->moduleName&view=Detail&". "record=$recordId' title='".vtranslate($field->moduleName, $field->moduleName)."'>$value</a>"; } elseif($field->getUIType() == 61) { diff --git a/include/QueryGenerator/EnhancedQueryGenerator.php b/include/QueryGenerator/EnhancedQueryGenerator.php index 67c7275c4..c2411cb6c 100644 --- a/include/QueryGenerator/EnhancedQueryGenerator.php +++ b/include/QueryGenerator/EnhancedQueryGenerator.php @@ -32,7 +32,7 @@ class EnhancedQueryGenerator extends QueryGenerator { } public function getModuleFields() { - if ($this->moduleFields == null) { + if (!isset($this->moduleFields) || $this->moduleFields == null) { $moduleFields = parent::getModuleFields(); //add reference fields also in the list @@ -79,7 +79,7 @@ class EnhancedQueryGenerator extends QueryGenerator { } $this->moduleFields = $moduleFields; } - return $this->moduleFields; + return isset($this->moduleFields) ? $this->moduleFields : null; } public function parseAdvFilterList($advFilterList, $glue = '') { @@ -232,7 +232,7 @@ class EnhancedQueryGenerator extends QueryGenerator { public function getSelectClauseColumnSQL() { $columns = array(); $moduleFields = $this->getModuleFields(); - $accessibleFieldList = array_keys($moduleFields); + $accessibleFieldList = is_array($moduleFields) ? array_keys($moduleFields) : array(); $moduleFields = $this->getModuleFields(); @@ -394,7 +394,7 @@ class EnhancedQueryGenerator extends QueryGenerator { if (empty($fieldName)) continue; - $field = $moduleFields[$fieldName]; + $field = isset($moduleFields) ? $moduleFields[$fieldName] : null; if (empty($field)) continue; // not accessible field. @@ -624,7 +624,7 @@ class EnhancedQueryGenerator extends QueryGenerator { $parentReferenceField = ''; $baseFieldName = $fieldName = $conditionInfo['name']; $parentReferenceField = $referenceModule = ''; - $field = $moduleFieldList[$fieldName]; + $field = isset($moduleFieldList) ? $moduleFieldList[$fieldName] : null; // if its a reference field then we need to add the fieldname to table name preg_match('/(\w+) ; \((\w+)\) (\w+)/', $baseFieldName, $matches); diff --git a/include/QueryGenerator/QueryGenerator.php b/include/QueryGenerator/QueryGenerator.php index 148ed5317..d7db71653 100644 --- a/include/QueryGenerator/QueryGenerator.php +++ b/include/QueryGenerator/QueryGenerator.php @@ -1195,7 +1195,7 @@ class QueryGenerator { public function fixDateTimeValue($name, $value, $first = true) { $moduleFields = $this->getModuleFields(); - $field = $moduleFields[$name]; + $field = isset($moduleFieldList) ? $moduleFields[$name] : null; $type = $field ? $field->getFieldDataType() : false; if($type == 'datetime') { if(strrpos($value, ' ') === false) { diff --git a/include/Webservices/PreserveGlobal.php b/include/Webservices/PreserveGlobal.php index b0c9d7a70..d855d78a1 100644 --- a/include/Webservices/PreserveGlobal.php +++ b/include/Webservices/PreserveGlobal.php @@ -18,7 +18,8 @@ class VTWS_PreserveGlobal{ //To not push null value . Ideally we should not push null value for any name //But current user null is dangerous so we are checking for only current user if(!empty(${$name}) || $name != 'current_user') { - if(!is_array(VTWS_PreserveGlobal::$globalData[$name])){ + if(!isset(VTWS_PreserveGlobal::$globalData[$name]) || + !is_array(VTWS_PreserveGlobal::$globalData[$name])){ VTWS_PreserveGlobal::$globalData[$name] = array(); } diff --git a/include/Webservices/WebserviceField.php b/include/Webservices/WebserviceField.php index 57be736e2..e4824ef4e 100644 --- a/include/Webservices/WebserviceField.php +++ b/include/Webservices/WebserviceField.php @@ -59,7 +59,7 @@ class WebserviceField{ $this->displayType = $row['displaytype']; $this->massEditable = ($row['masseditable'] === '1')? true: false; $this->presence = $row['presence']; - $this->isunique = ($row['isunique']) ? true : false; + $this->isunique = isset($row['isunique']) && $row['isunique'] ? true : false; $typeOfData = $row['typeofdata']; $this->typeOfData = $typeOfData; $typeOfData = explode("~",$typeOfData); @@ -258,7 +258,7 @@ class WebserviceField{ $referenceTypes = array(); if($this->getUIType() != $this->genericUIType){ $sql = "select type from vtiger_ws_referencetype where fieldtypeid=?"; - $params = array($fieldTypeData['fieldtypeid']); + $params = array(isset($fieldTypeData['fieldtypeid'])? $fieldTypeData['fieldtypeid'] : 0); }else{ $sql = 'SELECT relmodule AS type FROM vtiger_fieldmodulerel WHERE fieldid=? ORDER BY sequence ASC'; $params = array($this->getFieldId()); diff --git a/includes/runtime/Controller.php b/includes/runtime/Controller.php index 41fc5a376..87e3c5551 100644 --- a/includes/runtime/Controller.php +++ b/includes/runtime/Controller.php @@ -165,6 +165,52 @@ abstract class Vtiger_View_Controller extends Vtiger_Action_Controller { $viewer->assign('VTIGER_DISPLAY_VERSION', $vtiger_display_version); $viewer->assign('ONLY_V7_INSTANCE', $onlyV7Instance); $this->viewer = $viewer; + + // Defaults to avoid warning + // General + $viewer->assign('V7_THEME_PATH', ''); + $viewer->assign('MODULE_NAME', ''); + $viewer->assign('MODULE', ''); + $viewer->assign('QUALIFIED_MODULE', ''); + $viewer->assign('VIEW', ''); + $viewer->assign('PARENT_MODULE', ''); + $viewer->assign('EXTENSION_MODULE', ''); + $viewer->assign('moduleName', ''); + + $viewer->assign('NOTIFIER_URL', ''); + $viewer->assign('GLOBAL_SEARCH_VALUE', ''); + $_REQUEST["view"] = isset($_REQUEST["view"])? $_REQUEST["view"] : ""; + + // Listview + $viewer->assign('SEARCH_MODE_RESULTS', null); + $viewer->assign('SHARED_MEMBER_COUNT', 0); + $viewer->assign('CUSTOM_VIEWS_NAMES', array()); + $viewer->assign('ACTIVE', false); // Tag + $viewer->assign('BUTTON_NAME', ''); // footer Buttom (for custom action) + $viewer->assign('BUTTON_ID', ''); + $viewer->assign('NO_EDIT', ''); + $viewer->assign('SOURCE_MODULE', ''); + $viewer->assign('OPERATOR', ''); + $viewer->assign('LISTVIEW_COUNT', 0); + $viewer->assign('FOLDER_ID', 0); + $viewer->assign('FOLDER_VALUE', ''); + $viewer->assign('VIEWTYPE', ''); + $viewer->assign('PRINT_TEMPLATE', ''); + $viewer->assign('CLASS_VIEW_ACTION', ''); + $viewer->assign('RELATED_MODULE_NAME', ''); + + // Editview + $viewer->assign('LEFTPANELHIDE', false); + $viewer->assign('RECORD_ID', ''); + $viewer->assign('RETURN_VIEW', ''); + $viewer->assign('MASS_EDITION_MODE', false); + $viewer->assign('OCCUPY_COMPLETE_WIDTH', true); + $viewer->assign('VIEW_SOURCE', false); + + // DetailView + $viewer->assign('MORE_TAB_ACTIVE', false); + $viewer->assign('NO_DELETE', false); + $viewer->assign('IS_EXTERNAL_LOCATION_TYPE', false); } return $this->viewer; } @@ -202,18 +248,7 @@ abstract class Vtiger_View_Controller extends Vtiger_Action_Controller { $viewer->assign('SKIN_PATH', Vtiger_Theme::getCurrentUserThemePath()); $viewer->assign('LANGUAGE_STRINGS', $this->getJSLanguageStrings($request)); $viewer->assign('LANGUAGE', $currentUser->get('language')); - - $viewer->assign('V7_THEME_PATH', ''); - $viewer->assign('MODULE_NAME', ''); - $viewer->assign('MODULE', ''); - $viewer->assign('VIEW', ''); - $viewer->assign('PARENT_MODULE', ''); - $viewer->assign('EXTENSION_MODULE', ''); - - $viewer->assign('NOTIFIER_URL', ''); - $viewer->assign('GLOBAL_SEARCH_VALUE', ''); - $_REQUEST["view"] = isset($_REQUEST["view"])? $_REQUEST["view"] : ""; - + if ($request->getModule() != 'Install') { $userCurrencyInfo = getCurrencySymbolandCRate($currentUser->get('currency_id')); $viewer->assign('USER_CURRENCY_SYMBOL', $userCurrencyInfo['symbol']); diff --git a/layouts/v7/modules/Vtiger/ListViewContents.tpl b/layouts/v7/modules/Vtiger/ListViewContents.tpl index 61425fe54..1a10e5168 100644 --- a/layouts/v7/modules/Vtiger/ListViewContents.tpl +++ b/layouts/v7/modules/Vtiger/ListViewContents.tpl @@ -127,8 +127,12 @@ {foreach item=LISTVIEW_HEADER from=$LISTVIEW_HEADERS} <th> {assign var=FIELD_UI_TYPE_MODEL value=$LISTVIEW_HEADER->getUITypeModel()} - {include file=vtemplate_path($FIELD_UI_TYPE_MODEL->getListSearchTemplateName(),$MODULE) FIELD_MODEL= $LISTVIEW_HEADER SEARCH_INFO=$SEARCH_DETAILS[$LISTVIEW_HEADER->getName()] USER_MODEL=$CURRENT_USER_MODEL} - <input type="hidden" class="operatorValue" value="{$SEARCH_DETAILS[$LISTVIEW_HEADER->getName()]['comparator']}"> + {assign var=SEARCH_INFO_DETAILS_FOR_FIELD value=array( 'searchValue' => '', 'comparator' => '' )} + {if isset($SEARCH_DETAILS[$LISTVIEW_HEADER->getName()])} + {assign var=SEARCH_INFO_DETAILS_FOR_FIELD value=$SEARCH_DETAILS[$LISTVIEW_HEADER->getName()]} + {/if} + {include file=vtemplate_path($FIELD_UI_TYPE_MODEL->getListSearchTemplateName(),$MODULE) FIELD_MODEL= $LISTVIEW_HEADER SEARCH_INFO=$SEARCH_INFO_DETAILS_FOR_FIELD USER_MODEL=$CURRENT_USER_MODEL} + <input type="hidden" class="operatorValue" value="{$SEARCH_INFO_DETAILS_FOR_FIELD['comparator']}"> </th> {/foreach} </tr> diff --git a/layouts/v7/modules/Vtiger/partials/Topbar.tpl b/layouts/v7/modules/Vtiger/partials/Topbar.tpl index 8ea4a0f2b..a5f4da0f9 100644 --- a/layouts/v7/modules/Vtiger/partials/Topbar.tpl +++ b/layouts/v7/modules/Vtiger/partials/Topbar.tpl @@ -65,6 +65,7 @@ {if $moduleModel->isPermitted('CreateView') || $moduleModel->isPermitted('EditView')} {assign var='quickCreateModule' value=$moduleModel->isQuickCreateSupported()} {assign var='singularLabel' value=$moduleModel->getSingularLabelKey()} + {assign var='count' value=0} {assign var=hideDiv value={!$moduleModel->isPermitted('CreateView') && $moduleModel->isPermitted('EditView')}} {if $quickCreateModule == '1'} {if $count % 3 == 0} @@ -200,4 +201,4 @@ </div> </div> </div> -{/strip} \ No newline at end of file +{/strip} diff --git a/layouts/v7/modules/Vtiger/uitypes/Picklist.tpl b/layouts/v7/modules/Vtiger/uitypes/Picklist.tpl index a508a0ed7..de5783fca 100644 --- a/layouts/v7/modules/Vtiger/uitypes/Picklist.tpl +++ b/layouts/v7/modules/Vtiger/uitypes/Picklist.tpl @@ -21,7 +21,7 @@ {if $FIELD_MODEL->isEmptyPicklistOptionAllowed()}<option value="">{vtranslate('LBL_SELECT_OPTION','Vtiger')}</option>{/if} {foreach item=PICKLIST_VALUE key=PICKLIST_NAME from=$PICKLIST_VALUES} {assign var=CLASS_NAME value="picklistColor_{$FIELD_MODEL->getFieldName()}_{$PICKLIST_NAME|replace:' ':'_'}"} - <option value="{Vtiger_Util_Helper::toSafeHTML($PICKLIST_NAME)}" {if $PICKLIST_COLORS[$PICKLIST_NAME]}class="{$CLASS_NAME}"{/if} {if trim(decode_html($FIELD_MODEL->get('fieldvalue'))) eq trim($PICKLIST_NAME)} selected {/if}>{$PICKLIST_VALUE}</option> + <option value="{Vtiger_Util_Helper::toSafeHTML($PICKLIST_NAME)}" {if isset($PICKLIST_COLORS[$PICKLIST_NAME]) && $PICKLIST_COLORS[$PICKLIST_NAME]}class="{$CLASS_NAME}"{/if} {if trim(decode_html($FIELD_MODEL->get('fieldvalue'))) eq trim($PICKLIST_NAME)} selected {/if}>{$PICKLIST_VALUE}</option> {/foreach} </select> {if $PICKLIST_COLORS} @@ -29,9 +29,11 @@ {foreach item=PICKLIST_VALUE key=PICKLIST_NAME from=$PICKLIST_VALUES} {assign var=CLASS_NAME value="{$FIELD_MODEL->getFieldName()}_{$PICKLIST_NAME|replace:' ':'_'}"} .picklistColor_{$CLASS_NAME} { - background-color: {$PICKLIST_COLORS[$PICKLIST_NAME]} !important; - {if $PICKLIST_COLORS[$PICKLIST_NAME] eq '#ffffff'} - color: #000000 !important; + {if isset($PICKLIST_COLORS[$PICKLIST_NAME])} + background-color: {$PICKLIST_COLORS[$PICKLIST_NAME]} !important; + {if $PICKLIST_COLORS[$PICKLIST_NAME] eq '#ffffff'} + color: #000000 !important; + {/if} {/if} } .picklistColor_{$CLASS_NAME}.select2-highlighted { diff --git a/modules/CustomView/CustomView.php b/modules/CustomView/CustomView.php index f329b8a7b..8b00af365 100644 --- a/modules/CustomView/CustomView.php +++ b/modules/CustomView/CustomView.php @@ -92,9 +92,9 @@ class CustomView extends CRMEntity { */ function getViewId($module) { global $adb, $current_user; - $now_action = vtlib_purify($_REQUEST['action']); + $now_action = vtlib_purify(isset($_REQUEST['action']) ? $_REQUEST['action'] : ''); if(!$now_action) { - $now_action = vtlib_purify($_REQUEST['view']); + $now_action = vtlib_purify(isset($_REQUEST['view']) ? $_REQUEST['view'] : ''); } if (empty($_REQUEST['viewname'])) { if (isset($_SESSION['lvs'][$module]["viewname"]) && $_SESSION['lvs'][$module]["viewname"] != '') { @@ -938,7 +938,7 @@ class CustomView extends CRMEntity { $advFilterColumn = $criteria['columnname']; $advFilterComparator = $criteria['comparator']; - $advFilterColumnCondition = $criteria['column_condition']; + $advFilterColumnCondition = isset($criteria['column_condition'])? $criteria['column_condition'] : null; $columnInfo = explode(":", $advFilterColumn); $fieldName = $columnInfo[2]; @@ -946,6 +946,7 @@ class CustomView extends CRMEntity { $moduleModel = Vtiger_Module_Model::getInstance($moduleName); preg_match('/(\w+) ; \((\w+)\) (\w+)/', $fieldName, $matches); + $referenceParentField = null; if (count($matches) != 0) { list($full, $referenceParentField, $referenceModule, $referenceFieldName) = $matches; } @@ -1937,7 +1938,7 @@ class CustomView extends CRMEntity { if (trim($block_label) == '') { $block_info[$pre_block_label] = $block_info[$pre_block_label] . "," . $block_result['block']; } else { - $lan_block_label = $current_mod_strings[$block_label]; + $lan_block_label = isset($current_mod_strings[$block_label])? $current_mod_strings[$block_label] : $block_label; if (isset($block_info[$lan_block_label]) && $block_info[$lan_block_label] != '') { $block_info[$lan_block_label] = $block_info[$lan_block_label] . "," . $block_result['block']; } else { diff --git a/modules/Settings/Picklist/models/Module.php b/modules/Settings/Picklist/models/Module.php index 81f5e76e9..384ada451 100644 --- a/modules/Settings/Picklist/models/Module.php +++ b/modules/Settings/Picklist/models/Module.php @@ -538,6 +538,7 @@ class Settings_Picklist_Module_Model extends Vtiger_Module_Model { public static function getPicklistColorByValue($fieldName, $fieldValue) { $db = PearDatabase::getInstance(); $tableName = "vtiger_$fieldName"; + $color = ''; if(Vtiger_Utils::CheckTable($tableName)) { $colums = $db->getColumnNames($tableName); $fieldValue = decode_html($fieldValue); diff --git a/modules/Vtiger/models/Block.php b/modules/Vtiger/models/Block.php index ea842ea92..9823253c1 100644 --- a/modules/Vtiger/models/Block.php +++ b/modules/Vtiger/models/Block.php @@ -19,7 +19,7 @@ class Vtiger_Block_Model extends Vtiger_Block { $this->fields = array(); // if block does not contains any fields - if(!is_array($moduleFields[$this->id])){ + if(!isset($moduleFields[$this->id]) || !is_array($moduleFields[$this->id])){ $moduleFields[$this->id] = array(); } diff --git a/modules/Vtiger/models/Field.php b/modules/Vtiger/models/Field.php index 455c08d67..da6d0b0bf 100644 --- a/modules/Vtiger/models/Field.php +++ b/modules/Vtiger/models/Field.php @@ -75,14 +75,14 @@ class Vtiger_Field_Model extends Vtiger_Field { } public function getModule() { - if(!$this->module) { + if(!isset($this->module) || !$this->module) { $moduleObj = $this->block->module; if(empty($moduleObj)) { return false; } $this->module = Vtiger_Module_Model::getInstanceFromModuleObject($moduleObj); } - return $this->module; + return isset($this->module) ? $this->module : null; } public function setModule($moduleInstance) { @@ -95,7 +95,7 @@ class Vtiger_Field_Model extends Vtiger_Field { * @return <String> - converted display value */ public function getDisplayValue($value, $record=false, $recordInstance = false) { - if(!$this->uitype_instance) { + if(!isset($this->uitype_instance) || !$this->uitype_instance) { $this->uitype_instance = Vtiger_Base_UIType::getInstanceFromField($this); } $uiTypeInstance = $this->uitype_instance; @@ -144,7 +144,7 @@ class Vtiger_Field_Model extends Vtiger_Field { * @return <String> Data type of the field */ public function getFieldDataType() { - if(!$this->fieldDataType) { + if(!isset($this->fieldDataType) || !$this->fieldDataType) { $uiType = $this->get('uitype'); if($uiType == '69') { $fieldDataType = 'image'; @@ -172,7 +172,7 @@ class Vtiger_Field_Model extends Vtiger_Field { } $this->fieldDataType = $fieldDataType; } - return $this->fieldDataType; + return isset($this->fieldDataType) ? $this->fieldDataType : null; } /** @@ -398,7 +398,7 @@ class Vtiger_Field_Model extends Vtiger_Field { public function isQuickCreateEnabled() { $moduleModel = $this->getModule(); $quickCreate = $this->get('quickcreate'); - if(($quickCreate == self::QUICKCREATE_MANDATORY || $quickCreate == self::QUICKCREATE_ENABLED + if($moduleModel && ($quickCreate == self::QUICKCREATE_MANDATORY || $quickCreate == self::QUICKCREATE_ENABLED || $this->isMandatory()) && $this->get('uitype') != 69) { //isQuickCreateSupported will not be there for settings if(method_exists($moduleModel,'isQuickCreateSupported') && $moduleModel->isQuickCreateSupported()) { @@ -949,7 +949,10 @@ class Vtiger_Field_Model extends Vtiger_Field { foreach($fieldObjects as $fieldObject){ $fieldModelObject= self::getInstanceFromFieldObject($fieldObject); - $fieldModelList[$fieldModelObject->get('block')->id][] = $fieldModelObject; + $block = $fieldModelObject->get('block'); + if ($block) { + $fieldModelList[$block->id][] = $fieldModelObject; + } Vtiger_Cache::set('field-'.$moduleModel->getId(),$fieldModelObject->getId(),$fieldModelObject); Vtiger_Cache::set('field-'.$moduleModel->getId(),$fieldModelObject->getName(),$fieldModelObject); } @@ -1062,7 +1065,7 @@ class Vtiger_Field_Model extends Vtiger_Field { case 'start_period' : $funcName = array('name' => 'lessThanDependentField', 'params' => array('end_period')); break; } - if ($funcName) { + if (isset($funcName) && $funcName) { array_push($validator, $funcName); } return $validator; @@ -1074,7 +1077,7 @@ class Vtiger_Field_Model extends Vtiger_Field { * @return <String> - converted display value */ public function getEditViewDisplayValue($value) { - if(!$this->uitype_instance) { + if(!isset($this->uitype_instance) || !$this->uitype_instance) { $this->uitype_instance = Vtiger_Base_UIType::getInstanceFromField($this); } $uiTypeInstance = $this->uitype_instance; diff --git a/modules/Vtiger/models/ListView.php b/modules/Vtiger/models/ListView.php index 420319a7a..0d5bf538c 100644 --- a/modules/Vtiger/models/ListView.php +++ b/modules/Vtiger/models/ListView.php @@ -144,7 +144,7 @@ class Vtiger_ListView_Model extends Vtiger_Base_Model { $headerFields = $listViewContoller->getListViewHeaderFields(); foreach($headerFields as $fieldName => $webserviceField) { if($webserviceField && !in_array($webserviceField->getPresence(), array(0,2))) continue; - if($webserviceField && $webserviceField->parentReferenceField && !in_array($webserviceField->parentReferenceField->getPresence(), array(0,2))){ + if($webserviceField && isset($webserviceField->parentReferenceField) && !in_array($webserviceField->parentReferenceField->getPresence(), array(0,2))){ continue; } if($webserviceField->getDisplayType() == '6') continue; @@ -534,7 +534,7 @@ class Vtiger_ListView_Model extends Vtiger_Base_Model { } public function getSortParamsSession($key) { - return $_SESSION[$key]; + return isset($_SESSION[$key]) ? $_SESSION[$key] : null; } public function setSortParamsSession($key, $params) { diff --git a/modules/Vtiger/models/Module.php b/modules/Vtiger/models/Module.php index 2e7d26d4c..af7b87b2e 100644 --- a/modules/Vtiger/models/Module.php +++ b/modules/Vtiger/models/Module.php @@ -1389,7 +1389,7 @@ class Vtiger_Module_Model extends Vtiger_Module { * @return <Array> list of field models <Vtiger_Field_Model> */ public function getSummaryViewFieldsList() { - if (!$this->summaryFields) { + if (!isset($this->summaryFields) || !$this->summaryFields) { $summaryFields = array(); $fields = $this->getFields(); foreach ($fields as $fieldName => $fieldModel) { @@ -1407,7 +1407,7 @@ class Vtiger_Module_Model extends Vtiger_Module { * @return <Array> list of field models <Vtiger_Field_Model> */ public function getHeaderViewFieldsList() { - if (!$this->headerFields) { + if (!isset($this->headerFields) || !$this->headerFields) { $headerFields = array(); $fields = $this->getFields(); foreach ($fields as $fieldName => $fieldModel) { @@ -1425,7 +1425,7 @@ class Vtiger_Module_Model extends Vtiger_Module { * @return <Array> list of field models <Vtiger_Field_Model> */ public function getHeaderAndSummaryViewFieldsList() { - if(!$this->relationListViewFields) { + if(!isset($this->relationListViewFields) || !$this->relationListViewFields) { $summaryViewFields = $this->getSummaryViewFieldsList(); $headerViewFields = $this->getHeaderViewFieldsList(); $allRelationListViewFields = array_merge($headerViewFields,$summaryViewFields); diff --git a/modules/Vtiger/models/Paging.php b/modules/Vtiger/models/Paging.php index f9ff37ac7..993012a00 100644 --- a/modules/Vtiger/models/Paging.php +++ b/modules/Vtiger/models/Paging.php @@ -67,7 +67,7 @@ class Vtiger_Paging_Model extends Vtiger_Base_Model { */ function getRecordStartRange() { $rangeInfo = $this->getRecordRange(); - return $rangeInfo['start']; + return isset($rangeInfo) ? $rangeInfo['start'] : 0; } /** @@ -76,7 +76,7 @@ class Vtiger_Paging_Model extends Vtiger_Base_Model { */ function getRecordEndRange() { $rangeInfo = $this->getRecordRange(); - return $rangeInfo['end']; + return isset($rangeInfo) ? $rangeInfo['end'] : 0; } /** diff --git a/modules/Vtiger/models/RelationListView.php b/modules/Vtiger/models/RelationListView.php index ebeacaa34..84b7c6d5e 100644 --- a/modules/Vtiger/models/RelationListView.php +++ b/modules/Vtiger/models/RelationListView.php @@ -331,7 +331,7 @@ class Vtiger_RelationListView_Model extends Vtiger_Base_Model { } $query = "$query ORDER BY $qualifiedOrderBy $sortOrder"; } - } else if(empty($orderBy) && empty($sortOrder) && $moduleName != "Users") { + } else if(empty($orderBy) && empty($sortOrder) && $relationModuleName != "Users") { $query .= ' ORDER BY vtiger_crmentity.modifiedtime DESC'; } diff --git a/modules/Vtiger/views/Detail.php b/modules/Vtiger/views/Detail.php index 1d8411a88..6221eb4df 100644 --- a/modules/Vtiger/views/Detail.php +++ b/modules/Vtiger/views/Detail.php @@ -495,7 +495,7 @@ class Vtiger_Detail_View extends Vtiger_Index_View { $rollupsettings = ModComments_Module_Model::getRollupSettingsForUser($currentUserModel, $moduleName); } - if($rollupsettings['rollup_status']) { + if(isset($rollupsettings['rollup_status']) && $rollupsettings['rollup_status']) { $parentRecordModel = Vtiger_Record_Model::getInstanceById($parentId, $moduleName); $recentComments = $parentRecordModel->getRollupCommentsForModule(0, 6); }else { @@ -520,8 +520,10 @@ class Vtiger_Detail_View extends Vtiger_Index_View { $viewer->assign('MAX_UPLOAD_LIMIT_MB', Vtiger_Util_Helper::getMaxUploadSize()); $viewer->assign('MAX_UPLOAD_LIMIT_BYTES', Vtiger_Util_Helper::getMaxUploadSizeInBytes()); $viewer->assign('COMMENTS_MODULE_MODEL', $modCommentsModel); - $viewer->assign('ROLLUP_STATUS', $rollupsettings['rollup_status']); - $viewer->assign('ROLLUPID', $rollupsettings['rollupid']); + $viewer->assign('ROLLUP_STATUS', isset($rollupsettings['rollup_status']) ? + $rollupsettings['rollup_status'] : false); + $viewer->assign('ROLLUPID', isset($rollupsettings['rollupid']) ? + $rollupsettings['rollupid'] : 0); $viewer->assign('PARENT_RECORD', $parentId); return $viewer->view('RecentComments.tpl', $moduleName, 'true'); diff --git a/modules/Vtiger/views/List.php b/modules/Vtiger/views/List.php index c889cb7c4..6420da053 100644 --- a/modules/Vtiger/views/List.php +++ b/modules/Vtiger/views/List.php @@ -39,7 +39,7 @@ class Vtiger_List_View extends Vtiger_Index_View { } $viewer = $this->getViewer($request); - $cvId = $this->viewName; + $cvId = isset($this->viewName) ? $this->viewName : 0; if(!$cvId) { $customView = new CustomView(); @@ -56,7 +56,7 @@ class Vtiger_List_View extends Vtiger_Index_View { $this->listViewModel = Vtiger_ListView_Model::getInstance($moduleName, $cvId, $listHeaders); $orderParams = $this->listViewModel->getSortParamsSession($listViewSessionKey); - if(empty($listHeaders)) { + if(empty($listHeaders) && is_array($orderParams)) { $listHeaders = $orderParams['list_headers']; } @@ -216,12 +216,12 @@ class Vtiger_List_View extends Vtiger_Index_View { $orderBy = ''; $sortOrder = ''; } - if(empty($listHeaders)) { + if(empty($listHeaders) && is_array($orderParams)) { $listHeaders = $orderParams['list_headers']; } - if(!empty($tag) && empty($tagParams)){ + if(!empty($tag) && empty($tagParams) && is_array($orderParams)){ $tagParams = $orderParams['tag_params']; } @@ -363,15 +363,15 @@ class Vtiger_List_View extends Vtiger_Index_View { } $viewer->assign('PAGE_NUMBER',$pageNumber); - if(!$this->moduleFieldStructure) { + if(!isset($this->moduleFieldStructure) || !$this->moduleFieldStructure) { $recordStructure = Vtiger_RecordStructure_Model::getInstanceForModule($listViewModel->getModule(), Vtiger_RecordStructure_Model::RECORD_STRUCTURE_MODE_FILTER); $this->moduleFieldStructure = $recordStructure->getStructure(); } - if(!$this->tags) { + if(!isset($this->tags) || !$this->tags) { $this->tags = Vtiger_Tag_Model::getAllAccessible($currentUser->id, $moduleName); } - if(!$this->allUserTags) { + if(!isset($this->allUserTags) || !$this->allUserTags) { $this->allUserTags = Vtiger_Tag_Model::getAllUserTags($currentUser->getId()); } diff --git a/pkg/vtiger/modules/ModTracker/modules/ModTracker/ModTracker.php b/pkg/vtiger/modules/ModTracker/modules/ModTracker/ModTracker.php index ab9c5d957..49e4b647c 100644 --- a/pkg/vtiger/modules/ModTracker/modules/ModTracker/ModTracker.php +++ b/pkg/vtiger/modules/ModTracker/modules/ModTracker/ModTracker.php @@ -231,7 +231,7 @@ class ModTracker { */ static function getVisibilityForModule($tabid){ if (isset(self::$__cache_modtracker[$tabid])) { - return $__cache_modtracker[$tabid]['visible']; + return self::$__cache_modtracker[$tabid]['visible']; } return false; } diff --git a/pkg/vtiger/modules/ModTracker/modules/ModTracker/models/Record.php b/pkg/vtiger/modules/ModTracker/modules/ModTracker/models/Record.php index 0c7b5c229..380baa9df 100644 --- a/pkg/vtiger/modules/ModTracker/modules/ModTracker/models/Record.php +++ b/pkg/vtiger/modules/ModTracker/modules/ModTracker/models/Record.php @@ -143,7 +143,7 @@ class ModTracker_Record_Model extends Vtiger_Record_Model { return $relationInstance; } - public function getTotalRecordCount($recordId) { + public static function getTotalRecordCount($recordId) { $db = PearDatabase::getInstance(); $result = $db->pquery("SELECT COUNT(*) AS count FROM vtiger_modtracker_basic WHERE crmid = ?", array($recordId)); return $db->query_result($result, 0, 'count'); diff --git a/vtlib/Vtiger/FieldBasic.php b/vtlib/Vtiger/FieldBasic.php index a7df23891..4423a0445 100644 --- a/vtlib/Vtiger/FieldBasic.php +++ b/vtlib/Vtiger/FieldBasic.php @@ -252,7 +252,7 @@ class Vtiger_FieldBasic { * Get module name to which this field instance is associated */ function getModuleName() { - return $this->block->module->name; + return $this->block && $this->block->module ? $this->block->module->name : ""; } /** -- GitLab