From 95f7842290074465563bba70824b80366eb70a9d Mon Sep 17 00:00:00 2001
From: yogeshwar <yogeshwar.g@vtigersolutions.com>
Date: Thu, 30 May 2024 17:44:03 +0530
Subject: [PATCH] E-ALL SETTINGS->HomePage User

---
 include/QueryGenerator/QueryGenerator.php          |  4 ++--
 include/events/VTEntityData.inc                    |  2 +-
 includes/runtime/Viewer.php                        |  2 +-
 .../v7/modules/Settings/Vtiger/ModuleHeader.tpl    |  2 +-
 layouts/v7/modules/Settings/Vtiger/Sidebar.tpl     |  6 +++---
 layouts/v7/modules/Users/ListViewContents.tpl      | 14 +++++++++-----
 layouts/v7/modules/Users/UserViewHeader.tpl        |  6 ++++--
 modules/Settings/Vtiger/models/Module.php          |  2 +-
 modules/Users/models/Module.php                    |  2 +-
 modules/Users/views/List.php                       |  2 +-
 modules/com_vtiger_workflow/VTEntityCache.inc      |  4 ++--
 vtlib/Vtiger/AccessControl.php                     |  2 +-
 12 files changed, 27 insertions(+), 21 deletions(-)

diff --git a/include/QueryGenerator/QueryGenerator.php b/include/QueryGenerator/QueryGenerator.php
index 537e28096..e643d1724 100644
--- a/include/QueryGenerator/QueryGenerator.php
+++ b/include/QueryGenerator/QueryGenerator.php
@@ -1340,7 +1340,7 @@ class QueryGenerator {
 
 	public function addUserSearchConditions($input) {
 		global $log,$default_charset;
-		if($input['searchtype']=='advance') {
+		if(isset($input['searchtype']) && $input['searchtype']=='advance') {
 
 			$json = new Zend_Json();
 			$advft_criteria = $_REQUEST['advft_criteria'];
@@ -1387,7 +1387,7 @@ class QueryGenerator {
 				}
 			}
 			$this->endGroup();
-		} elseif($input['type']=='dbrd') {
+		} elseif(isset($input['type']) && $input['type']=='dbrd') {
 			if($this->conditionInstanceCount > 0) {
 				$this->startGroup(self::$AND);
 			} else {
diff --git a/include/events/VTEntityData.inc b/include/events/VTEntityData.inc
index 7d2ac0b0c..d62d4a048 100644
--- a/include/events/VTEntityData.inc
+++ b/include/events/VTEntityData.inc
@@ -85,7 +85,7 @@ class VTEntityData{
 
 		// added to compute label needed in event handlers
 		//TODO : need to make sure entity fields are cached
-		$entityFields = Vtiger_Functions::getEntityModuleInfo($crmEntity->moduleName);
+		$entityFields = isset($crmEntity->moduleName) ? Vtiger_Functions::getEntityModuleInfo($crmEntity->moduleName) : '';
 		if (!empty($entityFields['fieldname'])) {
 			$entityFieldNames = explode(',', $entityFields['fieldname']);
 			$label = '';
diff --git a/includes/runtime/Viewer.php b/includes/runtime/Viewer.php
index a6148bcc6..201b97ca2 100644
--- a/includes/runtime/Viewer.php
+++ b/includes/runtime/Viewer.php
@@ -90,7 +90,7 @@ class Vtiger_Viewer extends Smarty {
 			'array_map', 'array_key_exists', 'get_class', 'vtlib_array', 'getDuplicatesPreventionMessage', 'htmlentities', 'purifyHtmlEventAttributes',
 			'getCurrencySymbolandCRate', 'mb_substr', 'isPermitted', 'getEntityName', 'function_exists', 'php7_trim', 'php7_htmlentities',
 			'strtolower', 'strtoupper', 'str_replace', 'urlencode', 'getTranslatedCurrencyString', 'getTranslatedString', 'is_object', 'is_numeric',
-			'php7_sizeof', 'method_exists','implode','mt_rand');
+			'php7_sizeof', 'method_exists','implode','mt_rand','substr','in_array');
 		foreach ($modifiers as $modifier) {
 			if (function_exists($modifier)) {
 				$this->registerPlugin('modifier', $modifier, $modifier);
diff --git a/layouts/v7/modules/Settings/Vtiger/ModuleHeader.tpl b/layouts/v7/modules/Settings/Vtiger/ModuleHeader.tpl
index 6c9a82a0f..4a952d7da 100644
--- a/layouts/v7/modules/Settings/Vtiger/ModuleHeader.tpl
+++ b/layouts/v7/modules/Settings/Vtiger/ModuleHeader.tpl
@@ -68,7 +68,7 @@
                                                                         <a href="">
                                                                             <span class="fa fa-angle-right" aria-hidden="true"></span>&nbsp;
                                                                             {if $REQ->get('view') eq 'Edit'}
-                                                                                    {if $RECORD}
+                                                                                    {if isset($RECORD) && $RECORD}
                                                                                             {vtranslate('LBL_EDITING', $MODULE)} :&nbsp;{$RECORD->getName()}
                                                                                     {else}
                                                                                             {vtranslate('LBL_ADDING_NEW', $MODULE)}
diff --git a/layouts/v7/modules/Settings/Vtiger/Sidebar.tpl b/layouts/v7/modules/Settings/Vtiger/Sidebar.tpl
index 5a4babb06..d532a8e0b 100644
--- a/layouts/v7/modules/Settings/Vtiger/Sidebar.tpl
+++ b/layouts/v7/modules/Settings/Vtiger/Sidebar.tpl
@@ -26,13 +26,13 @@
 								<div class="app-settings-accordion">
 									<div class="settingsgroup-accordion">
 										<a data-toggle="collapse" data-parent="#accordion" class='collapsed' href="#{$BLOCK_NAME}">
-											<i class="indicator fa{if $ACTIVE_BLOCK['block'] eq $BLOCK_NAME} fa-chevron-down {else} fa-chevron-right {/if}"></i>
+											<i class="indicator fa{if isset($ACTIVE_BLOCK['block']) && $ACTIVE_BLOCK['block'] eq $BLOCK_NAME} fa-chevron-down {else} fa-chevron-right {/if}"></i>
 											&nbsp;<span>{vtranslate($BLOCK_NAME,$QUALIFIED_MODULE)}</span>
 										</a>
 									</div>
 								</div>
 							</div>
-							<div id="{$BLOCK_NAME}" class="panel-collapse collapse ulBlock {if $ACTIVE_BLOCK['block'] eq $BLOCK_NAME} in {/if}">
+							<div id="{$BLOCK_NAME}" class="panel-collapse collapse ulBlock {if isset($ACTIVE_BLOCK['block']) && $ACTIVE_BLOCK['block'] eq $BLOCK_NAME} in {/if}">
 								<ul class="list-group widgetContainer">
 									{foreach item=MENUITEM from=$BLOCK_MENU_ITEMS}
 										{assign var=MENU value= $MENUITEM->get('name')}
@@ -53,7 +53,7 @@
 											{assign var=MENU_URL value=$USER_MODEL->getCalendarSettingsDetailViewUrl()}
 										{/if}
 										<li>
-											<a data-name="{$MENU}" href="{$MENU_URL}" class="menuItemLabel {if $ACTIVE_BLOCK['menu'] eq $MENU} settingsgroup-menu-color {/if}">
+											<a data-name="{$MENU}" href="{$MENU_URL}" class="menuItemLabel {if isset($ACTIVE_BLOCK['menu']) && $ACTIVE_BLOCK['menu'] eq $MENU} settingsgroup-menu-color {/if}">
 												{vtranslate($MENU_LABEL,$QUALIFIED_MODULE)}
 												<img id="{$MENUITEM->getId()}_menuItem" data-id="{$MENUITEM->getId()}" class="pinUnpinShortCut cursorPointer pull-right"
 													 data-actionurl="{$MENUITEM->getPinUnpinActionUrl()}"
diff --git a/layouts/v7/modules/Users/ListViewContents.tpl b/layouts/v7/modules/Users/ListViewContents.tpl
index 85daa267a..be64f3155 100644
--- a/layouts/v7/modules/Users/ListViewContents.tpl
+++ b/layouts/v7/modules/Users/ListViewContents.tpl
@@ -20,14 +20,14 @@
 	<input type="hidden" id="numberOfEntries" value= "{$LISTVIEW_ENTRIES_COUNT}" />
 	<input type="hidden" id="alphabetSearchKey" value= "{$MODULE_MODEL->getAlphabetSearchField()}" />
 	<input type="hidden" id="Operator" value="{$OPERATOR}" />
-	<input type="hidden" id="alphabetValue" value="{$ALPHABET_VALUE}" />
+	<input type="hidden" id="alphabetValue" value="{(isset($ALPHABET_VALUE)) ? $ALPHABET_VALUE : ''}" />
 	<input type="hidden" id="totalCount" value="{$LISTVIEW_COUNT}" />
 	<input type="hidden" name="orderBy" value="{$ORDER_BY}" id="orderBy">
 	<input type="hidden" name="sortOrder" value="{$SORT_ORDER}" id="sortOrder">
 	<input type='hidden' value="{$PAGE_NUMBER}" id='pageNumber'>
 	<input type='hidden' value="{$PAGING_MODEL->getPageLimit()}" id='pageLimit'>
 	<input type="hidden" value="{$LISTVIEW_ENTRIES_COUNT}" id="noOfEntries">
-	<input type="hidden" value="{$NO_SEARCH_PARAMS_CACHE}" id="noFilterCache" >
+	<input type="hidden" value="{(isset($NO_SEARCH_PARAMS_CACHE)) ? $NO_SEARCH_PARAMS_CACHE : ''}" id="noFilterCache" >
 
 	<div id="table-content" class="table-container">
 		<form name='list' id='listedit' action='' onsubmit="return false;">
@@ -83,8 +83,12 @@
 								{/if}
 								<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=FIELD_SEARCH_INFO value=array("searchValue" => "","comparator" => "")}
+									{if isset($SEARCH_DETAILS[$LISTVIEW_HEADER->getName()])}
+										{assign var="FIELD_SEARCH_INFO" value=$SEARCH_DETAILS[$LISTVIEW_HEADER->getName()]}
+									{/if}
+									{include file=vtemplate_path($FIELD_UI_TYPE_MODEL->getListSearchTemplateName(),$MODULE) FIELD_MODEL= $LISTVIEW_HEADER SEARCH_INFO=$FIELD_SEARCH_INFO USER_MODEL=$CURRENT_USER_MODEL}
+									<input type="hidden" class="operatorValue" value="{$FIELD_SEARCH_INFO['comparator']}">
 								</th>
 							{/foreach}
 						</tr>
@@ -127,7 +131,7 @@
 										</span>
 									</td>
 								{elseif $LISTVIEW_HEADER->getName() neq 'last_name' and $LISTVIEW_HEADER->getName() neq 'email1' and $LISTVIEW_HEADER->getName() neq 'status'}
-									<td class="{$WIDTHTYPE}" nowrap>
+									<td class="{(isset($WIDTHTYPE)) ? $WIDTHTYPE : ''}" nowrap>
 										<span class="fieldValue">
 											<span class="value textOverflowEllipsis">
 												{$LISTVIEW_ENTRY->get($LISTVIEW_HEADERNAME)}
diff --git a/layouts/v7/modules/Users/UserViewHeader.tpl b/layouts/v7/modules/Users/UserViewHeader.tpl
index 754487eb3..5043cee92 100644
--- a/layouts/v7/modules/Users/UserViewHeader.tpl
+++ b/layouts/v7/modules/Users/UserViewHeader.tpl
@@ -38,14 +38,15 @@
                 </div>
                 <div class="pull-right col-md-7 detailViewButtoncontainer">
                     <div class="btn-group pull-right">
-                        {foreach item=DETAIL_VIEW_BASIC_LINK from=$DETAILVIEW_LINKS['DETAILVIEWBASIC']}
+                    {if isset($DETAILVIEW_LINKS)}
+                            {foreach item=DETAIL_VIEW_BASIC_LINK from=$DETAILVIEW_LINKS['DETAILVIEWBASIC']}
                             <button class="btn btn-default {if $DETAIL_VIEW_BASIC_LINK->getLabel() eq 'LBL_EDIT'}{/if}" id="{$MODULE}_detailView_basicAction_{Vtiger_Util_Helper::replaceSpaceWithUnderScores($DETAIL_VIEW_BASIC_LINK->getLabel())}"
                                     {if $DETAIL_VIEW_BASIC_LINK->isPageLoadLink()}
                                         onclick="window.location.href='{$DETAIL_VIEW_BASIC_LINK->getUrl()}'"
                                     {else}
                                         onclick="{$DETAIL_VIEW_BASIC_LINK->getUrl()}"
                                     {/if}>
-                               {vtranslate($DETAIL_VIEW_BASIC_LINK->getLabel(), $MODULE)}
+                            {vtranslate($DETAIL_VIEW_BASIC_LINK->getLabel(), $MODULE)}
                             </button>
                         {/foreach}
                         {if $DETAILVIEW_LINKS['DETAILVIEW']|@count gt 0}
@@ -67,6 +68,7 @@
                                 {/foreach}
                             </ul>
                         {/if}
+                    {/if}
                     </div>
                 </div>
             </div>
diff --git a/modules/Settings/Vtiger/models/Module.php b/modules/Settings/Vtiger/models/Module.php
index 4a9f38848..2d044513d 100644
--- a/modules/Settings/Vtiger/models/Module.php
+++ b/modules/Settings/Vtiger/models/Module.php
@@ -195,7 +195,7 @@ class Settings_Vtiger_Module_Model extends Vtiger_Base_Model {
 
 	public function getSettingsActiveBlock($viewName) {
 		$blocksList = array('OutgoingServerEdit' => array('block' => 'LBL_CONFIGURATION', 'menu' => 'LBL_MAIL_SERVER_SETTINGS'));
-		return $blocksList[$viewName];
+		return isset($blocksList[$viewName]) ? $blocksList[$viewName] : null;
 	}
 
 	public function getModuleIcon() {
diff --git a/modules/Users/models/Module.php b/modules/Users/models/Module.php
index 8d881dbf7..2f8d09cf8 100644
--- a/modules/Users/models/Module.php
+++ b/modules/Users/models/Module.php
@@ -332,7 +332,7 @@ class Users_Module_Model extends Vtiger_Module_Model {
 		$blocksList = array('Edit'			=> array('block' => 'LBL_USER_MANAGEMENT', 'menu' => 'LBL_USERS'),
 							'Calendar'		=> array('block' => 'LBL_MY_PREFERENCES', 'menu' => 'Calendar Settings'),
 							'PreferenceEdit'=> array('block' => 'LBL_MY_PREFERENCES', 'menu' => 'My Preferences'));
-		return $blocksList[$viewName];
+		return isset($blocksList[$viewName]) ? $blocksList[$viewName] : '';
 	}
 
 	/**
diff --git a/modules/Users/views/List.php b/modules/Users/views/List.php
index 1a0edc426..f2427eda1 100644
--- a/modules/Users/views/List.php
+++ b/modules/Users/views/List.php
@@ -130,7 +130,7 @@ class Users_List_View extends Settings_Vtiger_List_View {
 		}
 		$viewer->assign('LISTVIEW_LINKS', $this->listViewLinks);
 
-		$viewer->assign('LISTVIEW_MASSACTIONS', $linkModels['LISTVIEWMASSACTION']);
+		$viewer->assign('LISTVIEW_MASSACTIONS', isset($linkModels['LISTVIEWMASSACTION']) ? $linkModels['LISTVIEWMASSACTION'] : '');
 
 		$viewer->assign('PAGING_MODEL', $pagingModel);
 		$viewer->assign('PAGE_NUMBER',$pageNumber);
diff --git a/modules/com_vtiger_workflow/VTEntityCache.inc b/modules/com_vtiger_workflow/VTEntityCache.inc
index 15d24c6e9..b8e073f26 100644
--- a/modules/com_vtiger_workflow/VTEntityCache.inc
+++ b/modules/com_vtiger_workflow/VTEntityCache.inc
@@ -76,7 +76,7 @@ class VTWorkflowEntity{
 
 		if($this->moduleName==null){
 			global $adb;
-			$wsId = $this->data['id'];
+			$wsId = isset($this->data['id']) ? $this->data['id'] : '';
 			$parts = explode('x', $wsId);
 			if($cache->getModuleName($parts[0])){
 				$this->moduleName=$cache->getModuleName($parts[0]);
@@ -84,7 +84,7 @@ class VTWorkflowEntity{
 			$result = $adb->pquery('select name from vtiger_ws_entity where id=?',
 						 array($parts[0]));
 			$rowData = $adb->raw_query_result_rowdata($result, 0);
-			$this->moduleName = $rowData['name'];
+			$this->moduleName = isset($rowData['name']) ? $rowData['name'] : '';
 				$cache->setModuleName($parts[0],  $this->moduleName);
 			}
 		}
diff --git a/vtlib/Vtiger/AccessControl.php b/vtlib/Vtiger/AccessControl.php
index 6a1d013cf..7ed762751 100644
--- a/vtlib/Vtiger/AccessControl.php
+++ b/vtlib/Vtiger/AccessControl.php
@@ -49,7 +49,7 @@ class Vtiger_AccessControl {
 			self::$singleton = new self();
 		}
 
-		if (self::$singleton->privileges && self::$singleton->privileges[$id]) {
+		if (isset(self::$singleton->privileges[$id]) && self::$singleton->privileges && self::$singleton->privileges[$id]) {
 			unset(self::$singleton->privileges[$id]);
 		}
 	}
-- 
GitLab