晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
|
Server : Apache System : Linux srv.rainic.com 4.18.0-553.47.1.el8_10.x86_64 #1 SMP Wed Apr 2 05:45:37 EDT 2025 x86_64 User : rainic ( 1014) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/akaindir/public_html/crm/modules/ModComments/ |
Upload File : |
<?php
/*+**********************************************************************************
* The contents of this file are subject to the vtiger CRM Public License Version 1.0
* ("License"); You may not use this file except in compliance with the License
* The Original Code is: vtiger CRM Open Source
* The Initial Developer of the Original Code is vtiger.
* Portions created by vtiger are Copyright (C) vtiger.
* All Rights Reserved.
************************************************************************************/
include_once dirname(__FILE__) . '/ModCommentsCore.php';
include_once dirname(__FILE__) . '/models/Comments.php';
require_once 'include/utils/VtlibUtils.php';
class ModComments extends ModCommentsCore {
/**
* Invoked when special actions are performed on the module.
* @param String Module name
* @param String Event Type (module.postinstall, module.disabled, module.enabled, module.preuninstall)
*/
function vtlib_handler($modulename, $event_type) {
parent::vtlib_handler($modulename, $event_type);
if ($event_type == 'module.postinstall') {
self::addWidgetTo(array('Leads', 'Contacts', 'Accounts', 'Potentials', 'Project', 'ProjectTask'));
global $adb;
// Mark the module as Standard module
$adb->pquery('UPDATE vtiger_tab SET customized=0 WHERE name=?', array($modulename));
} elseif ($event_type == 'module.postupdate') {
self::addWidgetTo(array('Potentials'));
}
}
/**
* Transfer the comment records from one parent record to another.
* @param CRMID Source parent record id
* @param CRMID Target parent record id
*/
static function transferRecords($currentParentId, $targetParentId) {
global $adb;
$adb->pquery("UPDATE vtiger_modcomments SET related_to=? WHERE related_to=?", array($targetParentId, $currentParentId));
}
/**
* Get widget instance by name
*/
static function getWidget($name) {
if ($name == 'DetailViewBlockCommentWidget' &&
isPermitted('ModComments', 'DetailView') == 'yes') {
require_once dirname(__FILE__) . '/widgets/DetailViewBlockComment.php';
return (new ModComments_DetailViewBlockCommentWidget());
}
return false;
}
/**
* Add widget to other module.
* @param unknown_type $moduleNames
* @return unknown_type
*/
static function addWidgetTo($moduleNames, $widgetType='DETAILVIEWWIDGET', $widgetName='DetailViewBlockCommentWidget') {
if (empty($moduleNames)) return;
include_once 'vtlib/Vtiger/Module.php';
if (is_string($moduleNames)) $moduleNames = array($moduleNames);
$modCommentsModule = Vtiger_Module::getInstance('ModComments');
$commentWidgetModules = array();
foreach($moduleNames as $moduleName) {
$module = Vtiger_Module::getInstance($moduleName);
if($module) {
$module->addLink($widgetType, $widgetName, "block://ModComments:modules/ModComments/ModComments.php");
$module->setRelatedList($modCommentsModule, 'ModComments', array(''), 'get_comments');
$commentWidgetModules[] = $moduleName;
}
}
if (count($commentWidgetModules) > 0) {
$modCommentsModule->addLink('HEADERSCRIPT', 'ModCommentsCommonHeaderScript', 'modules/ModComments/ModCommentsCommon.js');
$modCommentsRelatedToField = Vtiger_Field::getInstance('related_to', $modCommentsModule);
$modCommentsRelatedToField->setRelatedModules($commentWidgetModules);
}
}
/**
* Remove widget from other modules.
* @param unknown_type $moduleNames
* @param unknown_type $widgetType
* @param unknown_type $widgetName
* @return unknown_type
*/
static function removeWidgetFrom($moduleNames, $widgetType='DETAILVIEWWIDGET', $widgetName='DetailViewBlockCommentWidget') {
if (empty($moduleNames)) return;
include_once 'vtlib/Vtiger/Module.php';
if (is_string($moduleNames)) $moduleNames = array($moduleNames);
$modCommentsModule = Vtiger_Module::getInstance('ModComments');
$commentWidgetModules = array();
foreach($moduleNames as $moduleName) {
$module = Vtiger_Module::getInstance($moduleName);
if($module) {
$module->deleteLink($widgetType, $widgetName, "block://ModComments:modules/ModComments/ModComments.php");
$module->unsetRelatedList($modCommentsModule, 'ModComments', 'get_comments');
$commentWidgetModules[] = $moduleName;
}
}
if (count($commentWidgetModules) > 0) {
$modCommentsRelatedToField = Vtiger_Field::getInstance('related_to', $modCommentsModule);
$modCommentsRelatedToField->unsetRelatedModules($commentWidgetModules);
}
}
/**
* Wrap this instance as a model
*/
function getAsCommentModel() {
return new ModComments_CommentsModel($this->column_fields);
}
function getListButtons($app_strings) {
$list_buttons = Array();
return $list_buttons;
}
/**
* Function to copy the comments from parent record to the target record.
* @param type $currentParentId
* @param type $targetParentId
*/
public static function copyCommentsToRelatedRecord($currentParentId, $targetParentId) {
$db = PearDatabase::getInstance();
$relatedIdMap = array();
$result = $db->pquery("SELECT *FROM vtiger_modcomments WHERE related_to=?", array($currentParentId));
$count = $db->num_rows($result);
for($i=0;$i<$count;$i++) {
$commentId = $db->query_result($result, $i, 'modcommentsid');
$commentContent = decode_html($db->query_result($result,$i,'commentcontent'));
$parentComments = $db->query_result($result, $i, 'parent_comments');
$customer = $db->query_result($result, $i, 'customer');
$userId = $db->query_result($result, $i, 'userid');
$reasonToEdit = $db->query_result($result, $i, 'reasontoedit');
$fromMailConverter = $db->query_result($result, $i, 'from_mailconverter');
$fromMailroom = $db->query_result($result, $i, 'from_mailroom');
$isPrivate = $db->query_result($result, $i, 'is_private');
$customer_Email = $db->query_result($result, $i, 'customer_email');
$filename = $db->query_result($result, $i, 'filename');
$related_email_id = $db->query_result($result, $i, 'related_email_id');
if(!empty($parentComments)) {
$parentComments = $relatedIdMap[$parentComments]; // should be mapped with copied comment
}
$crmEntityResult = $db->pquery('SELECT *FROM vtiger_crmentity where crmid = ?', array($commentId));
$smcreatorId = $db->query_result($crmEntityResult, 0, 'smcreatorid');
$smownerId = $db->query_result($crmEntityResult, 0, 'smownerid');
$modifiedby = $db->query_result($crmEntityResult, 0, 'modifiedby');
$setype = $db->query_result($crmEntityResult, 0, 'setype');
$description = $db->query_result($crmEntityResult, 0, 'description');
$createdTime = $db->query_result($crmEntityResult, 0, 'createdtime');
$modifiedTime = $db->query_result($crmEntityResult, 0, 'modifiedtime');
$viewedTime = $db->query_result($crmEntityResult, 0, 'viewedtime');
$status = $db->query_result($crmEntityResult, 0, 'status');
$version = $db->query_result($crmEntityResult, 0, 'version');
$presence = $db->query_result($crmEntityResult, 0, 'presence');
$deleted = $db->query_result($crmEntityResult, 0, 'deleted');
$label = $db->query_result($crmEntityResult, 0, 'label');
$source = $db->query_result($crmEntityResult, 0, 'source');
$smgroupId = $db->query_result($crmEntityResult, 0, 'smgroupid');
$commentCrmId = $db->getUniqueID('vtiger_crmentity');
$crmentityParams = array($commentCrmId, $smcreatorId,
$smownerId, $modifiedby, $setype, $description, $createdTime, $modifiedTime, $viewedTime, $status, $version, $presence,
$deleted, $label, $source, $smgroupId);
$db->pquery('INSERT INTO vtiger_crmentity values('. generateQuestionMarks($crmentityParams) .')', $crmentityParams);
$modcommentsParams = array($commentCrmId, $commentContent,
$targetParentId, $parentComments, $customer, $userId, $reasonToEdit, $fromMailConverter, $isPrivate,
$customer_Email, $fromMailroom, $filename, $related_email_id);
$db->pquery('INSERT INTO vtiger_modcomments values('. generateQuestionMarks($modcommentsParams) .')', $modcommentsParams);
$relatedIdMap[$commentId] = $commentCrmId;
}
}
}
?>