From 2d84eb7c60ba15a35196c7bb06814c3b469e3c26 Mon Sep 17 00:00:00 2001
From: satish <satish.dvnk@vtiger.com>
Date: Mon, 4 Sep 2017 11:23:35 +0530
Subject: [PATCH] Vtlib api to add settings link in CRM

---
 include/utils/VtlibUtils.php | 37 ++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

diff --git a/include/utils/VtlibUtils.php b/include/utils/VtlibUtils.php
index 197fa2520..b7adac0b3 100644
--- a/include/utils/VtlibUtils.php
+++ b/include/utils/VtlibUtils.php
@@ -764,4 +764,41 @@ function vtlib_mime_content_type($filename) {
 	return Vtiger_Functions::mime_content_type($filename);
 }
 
+function vtlib_addSettingsLink($linkName, $linkURL, $blockName = false) {
+	$success = true;
+	$db = PearDatabase::getInstance();
+
+	//Check entry name exist in DB or not
+	$result = $db->pquery('SELECT 1 FROM vtiger_settings_field WHERE name=?', array($linkName));
+	if ($result && !$db->num_rows($result)) {
+		$blockName = ($blockName) ? $blockName : 'LBL_OTHER_SETTINGS';
+		$blockId = getSettingsBlockId($blockName);//Check block name exist in DB or not
+
+		//Add block in to DB if not exists
+		if (!$blockId) {
+			$blockSeqResult = $db->pquery('SELECT MAX(sequence) AS sequence FROM vtiger_settings_blocks', array());
+			if ($db->num_rows($blockSeqResult)) {
+				$blockId = $db->getUniqueID('vtiger_settings_blocks');
+				$blockSequence = $db->query_result($blockSeqResult, 0, 'sequence');
+				$db->pquery('INSERT INTO vtiger_settings_blocks(blockid, label, sequence) VALUES(?,?,?)', array($blockId, 'LBL_OTHER_SETTINGS', $blockSequence++));
+			}
+		}
+
+		//Add settings field in to DB
+		if ($blockId) {
+			$fieldSeqResult = $db->pquery('SELECT MAX(sequence) AS sequence FROM vtiger_settings_field WHERE blockid=?', array($blockId));
+			if ($db->num_rows($fieldSeqResult)) {
+				$fieldId = $db->getUniqueID('vtiger_settings_field');
+				$linkURL = ($linkURL) ? $linkURL : '';
+				$fieldSequence = $db->query_result($fieldSeqResult, 0, 'sequence');
+
+				$db->pquery('INSERT INTO vtiger_settings_field(fieldid, blockid, name, iconpath, description, linkto, sequence, active, pinned) VALUES(?,?,?,?,?,?,?,?,?)', array($fieldId, $blockId, $entryName, '', $entryName, $linkURL, $fieldSequence++, 0, 0));
+			}
+		} else {
+			$success = false;
+		}
+	}
+	return $success;
+}
+
 ?>
-- 
GitLab