/** * @version 2.5 * @package JDownloads * @copyright (C) 2013 www.jdownloads.com * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL * * Plugin to handle some special features from jDownloads. * In v1.2 added the hide function. * In 2.5 added the new events: onJDUserGroupSettingsBeforeSave and onJDUserGroupSettingsAfterSave */ defined( '_JEXEC' ) or die( 'Restricted access' ); //Error_Reporting(E_ERROR); jimport('joomla.plugin.plugin'); jimport( 'joomla.filesystem.folder' ); jimport( 'joomla.filesystem.file' ); if (!defined('DS')){ define('DS',DIRECTORY_SEPARATOR); } class plgSystemjdownloads extends JPlugin { private $caching = 0; /** * Constructor * * @access protected * @param object $subject The object to observe * @param array $params An array that holds the plugin configuration */ public function __construct(& $subject, $params) { parent::__construct($subject, $params); $this->loadLanguage(); // get jD language admin file $language = JFactory::getLanguage(); $language->load('com_jdownloads'); } /** * This event is triggered after the framework has dispatched the application. * * @param none * @return none */ public function onAfterDispatch() { // function to deactivate partially the Joomla 'cache option' for defined sections // inspired by cacheControl plugin from www.crosstec.de if( JFactory::getApplication()->isSite() && $this->checkCacheRules()){ $plugin = JPluginHelper::getPlugin('system', 'jdownloads'); jimport( 'joomla.html.parameter' ); $pluginParams = $this->params; if($pluginParams->def('enable_again_after_dispatch', 0)){ JFactory::getConfig()->set('caching', $this->caching); } } } /** * This event is triggered after the framework has loaded and the application initialise method has been called. * * @param none * @return none */ public function onAfterInitialise() { $app = JFactory::getApplication(); $database = JFactory::getDBO(); // exist the tables? $prefix = $database->getPrefix(); $prefix2 = strtolower($prefix); $tablelist = $database->getTableList(); if ( !in_array ( $prefix.'jdownloads_files', $tablelist ) && !in_array ( $prefix2.'jdownloads_files', $tablelist ) ){ return; } $plugin = JPluginHelper::getPlugin('system', 'jdownloads'); jimport( 'joomla.utilities.utility' ); // get params $params = $this->params; //$use_hider = $params->get( 'reduce_log_data_sets_to' ); //if (!$use_hider) $return = true; // No need in admin //if( $app->isAdmin() ) return; $j = date('Y'); $m = date('m'); $d = date('d'); $h = date('H'); $min = date('i'); $sec = date('s'); $unpublish_time = date('Y-m-d H:i:s',mktime($h,$min,$sec,$m,$d-1,$j)); $now = date('Y-m-d H:i:s'); // get all published files with use the timeframe options $database->setQuery("SELECT file_id from #__jdownloads_files WHERE published = 1 AND use_timeframe = 1 AND publish_to != '0000-00-00 00:00:00' AND publish_to <= '$now'"); $files = $database->loadColumn(); if ($files){ $fileslist = implode(',', $files); $database->setQuery("UPDATE #__jdownloads_files SET published = '0', use_timeframe = '0' WHERE file_id IN ('$fileslist')"); $database->execute(); } // get all unpublished files with use the timeframe options $database->setQuery("SELECT file_id from #__jdownloads_files WHERE published = 0 AND use_timeframe = 1 AND publish_from != '0000-00-00 00:00:00' AND publish_from <= '$now'"); $files = $database->loadColumn(); if ($files){ $fileslist = implode(',', $files); $database->setQuery("UPDATE #__jdownloads_files SET published = '1' WHERE file_id IN ('$fileslist')"); $database->execute(); } return; } public function onJDUserGroupSettingsBeforeSave($type, $table) { return true; } public function onJDUserGroupSettingsAfterSave($type, $table) { global $jlistConfig; $app = JFactory::getApplication(); $db = JFactory::getDBO(); $result = array(); if ($table->use_private_area == 1) { if (is_writable($jlistConfig['files.uploaddir'].DS.$jlistConfig['private.area.folder.name'])){ // get all user IDs from this user group $query = $db->getQuery(true); $db->setQuery("SELECT a.id FROM #__users as a LEFT JOIN #__user_usergroup_map AS map ON map.user_id = a.id WHERE map.group_id = '".(int)$table->group_id."'"); $users = $db->loadObjectList(); $error = $db->getErrorMsg(); if ($error){ $this->setError($error); return false; } if (count($users) > 0){ $rootfolder = $jlistConfig['files.uploaddir'].DS.$jlistConfig['private.area.folder.name'].DS; // create the subfolder for every user when it not exist foreach ($users as $user){ if (!JFolder::exists($rootfolder.(int)$user->id)){ $result = JFolder::create($rootfolder.(int)$user->id, 0755); if ($result){ // copy index.html JFile::copy($rootfolder.'index.html',$rootfolder.(int)$user->id.DS.'index.html'); } } } } } else { // folder not writable JError::raiseWarning( 100, JText::_('COM_JDOWNLOADS_USERGROUPS_PRIVATE_FILES_AREA_ERROR') ); return false; } } return true; } /** * When we use the private area for jD users, we must add for every new user the private folder (when he has the correct usergroup) */ public function onUserAfterSave($user, $isNew, $success) { $app = JFactory::getApplication(); $db = JFactory::getDBO(); $groups = array(); $x = null; // check at first that we use the private folder option $query = $db->getQuery(true); $db->setQuery("SELECT group_id FROM #__jdownloads_usergroups_limits a WHERE use_private_area = '1'"); $groups = $db->loadRowList(); if ($groups){ // get folder path from config $db->setQuery("SELECT setting_value FROM #__jdownloads_config WHERE setting_name = 'files.uploaddir'"); $root_dir = $db->loadResult(); $db->setQuery("SELECT setting_value FROM #__jdownloads_config WHERE setting_name = 'private.area.folder.name'"); $private_dir = $db->loadResult(); // build array which usergroups are activated in jD usergroups_limits table foreach ($groups as $group){ $used_groups_for_private[] = $group[0]; } // build array which usergroups are selected for the updated or new added user foreach ($user['groups'] as $usergroup){ $user_groups[] = $usergroup[0]; } for ($i=0; $i < count($user_groups); $i++){ $x = array_search ( $user_groups[$i], $used_groups_for_private ); if ($x !== false){ $private_folder = $root_dir.DS.$private_dir.DS.$user['id']; if (!JFolder::exists($private_folder)){ if (JFolder::create($private_folder, 0755)){ JFile::copy($root_dir.DS.'index.html',$private_folder.DS.'index.html'); } } } } } } /** * When we use the private area for jD users, we must remove the users folder, when his user account is deleted */ public function onUserAfterDelete($user, $isNew, $success) { $app = JFactory::getApplication(); $db = JFactory::getDBO(); // get folder path from config $db->setQuery("SELECT setting_value FROM #__jdownloads_config WHERE setting_name = 'files.uploaddir'"); $root_dir = $db->loadResult(); $db->setQuery("SELECT setting_value FROM #__jdownloads_config WHERE setting_name = 'private.area.folder.name'"); $private_dir = $db->loadResult(); $private_folder = $root_dir.DS.$private_dir.DS.$user['id']; if (JFolder::exists($private_folder)){ if (JFolder::delete($private_folder)){ JError::raiseNotice( 100, JText::_('COM_JDOWNLOADS_USERGROUPS_PRIVATE_FILES_FOLDER_REMOVED') ); } else { JError::raiseWarning( 100, JText::_('COM_JDOWNLOADS_USERGROUPS_PRIVATE_FILES_FOLDER_REMOVED_ERROR') ); } } } /** * This event is triggered after the framework has rendered the application. * Rendering is the process of pushing the document buffers into the template placeholders, retrieving data from the document and pushing it into the JResponse buffer. * When this event is triggered the output of the application is available in the response buffer. * * @param none * @return none */ public function onAfterRender() { $app = JFactory::getApplication(); $database = JFactory::getDBO(); $return = false; // exist the tables? $prefix = strtolower($database->getPrefix()); $tablelist = $database->getTableList(); if ( !in_array ( $prefix.'jdownloads_files', $tablelist ) ){ $return = true; } $plugin = JPluginHelper::getPlugin('system', 'jdownloads'); jimport( 'joomla.utilities.utility' ); // get params $params = $this->params;; $use_hider = $params->get( 'use_hider' ); if (!$use_hider) $return = true; // No need in admin if (!$app->isAdmin()) { $body = JResponse::getBody(); if (!$return){ function _getParameter( $name, $default='' ) { $return = ""; $return = $this->params->get( $name, $default ); } // define the regular expression $regex1 = "#{jdreg}(.*?){/jdreg}#s"; $regex2 = "#{jdpub}(.*?){/jdpub}#s"; $regex3 = "#{jdauthor}(.*?){/jdauthor}#s"; $regex4 = "#{jdeditor}(.*?){/jdeditor}#s"; $regex5 = "#{jdpublisher}(.*?){/jdpublisher}#s"; $regex6 = "#{jdmanager}(.*?){/jdmanager}#s"; $regex7 = "#{jdadmin}(.*?){/jdadmin}#s"; $regex8 = "#{jdsuper}(.*?){/jdsuper}#s"; $regex9 = "#{jdspecial}(.*?){/jdspecial}#s"; // replacement for _reg $body = preg_replace_callback( $regex1, array('plgSystemjdownloads', '_reg'), $body ); // replacement for _pub $body = preg_replace_callback( $regex2, array('plgSystemjdownloads', '_pub'), $body ); // replacements for groups by name $body = preg_replace_callback( $regex9, array('plgSystemjdownloads', '_special'), $body ); $body = preg_replace_callback( $regex3, array('plgSystemjdownloads', '_author'), $body ); $body = preg_replace_callback( $regex4, array('plgSystemjdownloads', '_editor'), $body ); $body = preg_replace_callback( $regex5, array('plgSystemjdownloads', '_publisher'), $body ); $body = preg_replace_callback( $regex6, array('plgSystemjdownloads', '_manager'), $body ); $body = preg_replace_callback( $regex7, array('plgSystemjdownloads', '_admin'), $body ); $body = preg_replace_callback( $regex8, array('plgSystemjdownloads', '_super'), $body ); JResponse::setBody($body); } else { // Hide option is deactivated - so we must remove maybe the prior inserted placeholder $body = str_replace('{jdreg}', '', $body); $body = str_replace('{/jdreg}', '', $body); $body = str_replace('{jdpub}', '', $body); $body = str_replace('{/jdpub}', '', $body); $body = str_replace('{jdauthor}', '', $body); $body = str_replace('{/jdauthor}', '', $body); $body = str_replace('{jdeditor}', '', $body); $body = str_replace('{/jdeditor}', '', $body); $body = str_replace('{jdpublisher}', '', $body); $body = str_replace('{/jdpublisher}', '', $body); $body = str_replace('{jdmanager}', '', $body); $body = str_replace('{/jdmanager}', '', $body); $body = str_replace('{jdadmin}', '', $body); $body = str_replace('{/jdadmin}', '', $body); $body = str_replace('{jdsuper}', '', $body); $body = str_replace('{/jdsuper}', '', $body); $body = str_replace('{jdspecial}', '', $body); $body = str_replace('{/jdspecial}', '', $body); JResponse::setBody($body); } } } /** * This event is triggered after the framework has loaded and initialised and the router has routed the client request. * Routing is the process of examining the request environment to determine which component should receive the request. The component optional parameters are then set in the request object that will be processed when the application is being dispatched. * When this event triggers, the router has parsed the route and pushed the request parameters into JRequest to be retrieved by the application. * * @param none * @return none */ public function onAfterRoute(){ // deactivate Joomla caching when required if( JFactory::getApplication()->isSite() && $this->checkCacheRules()){ $this->caching = JFactory::getConfig()->get('caching'); JFactory::getConfig()->set('caching', 0); } // reduce download log data sets when a maximum value exists $database = JFactory::getDBO(); // exist the table? $prefix = strtolower($database->getPrefix()); $tablelist = $database->getTableList(); if ( !in_array ( $prefix.'jdownloads_logs', $tablelist ) ){ return; } $plugin = JPluginHelper::getPlugin('system', 'jdownloads'); jimport( 'joomla.utilities.utility' ); // get params $params = $this->params;; $reduce_data_to = (int)$params->get('reduce_log_data_sets_to'); if ($reduce_data_to == 0) return; // reduce data $database->setQuery("SELECT COUNT(*) FROM #__jdownloads_logs"); $sum = $database->loadResult(); $sum_delete = $sum - $reduce_data_to; if ($sum_delete > 0){ $database->setQuery("DELETE FROM #__jdownloads_logs ORDER BY id LIMIT $sum_delete"); $database->execute(); } return; } /** * * */ function checkCacheRules(){ $plugin = JPluginHelper::getPlugin('system', 'jdownloads'); jimport( 'joomla.html.parameter' ); $params = $this->params; $defs = trim(str_replace("\r","", $params->def('rules',''))); $defs = explode("\n", $defs); foreach($defs as $def){ if ($def != ''){ $result = $this->parseQueryString($def); if(is_array($result)){ $found = 0; $required = count($result); foreach($result As $key => $value){ if( JRequest::getVar($key) == $value || ( JRequest::getVar($key, null) !== null && $value == '?' ) ){ $found++; } } if($found == $required){ return true; } } } } return false; } /** * * * @param mixed $str */ function parseQueryString($str) { $op = array(); $pairs = explode("&", $str); foreach ($pairs as $pair) { list($k, $v) = array_map("urldecode", explode("=", $pair)); $op[$k] = $v; } return $op; } /** * Functions for hide elements from output for special user groups * * Inspired by the hider content plugin from Dioscouri Design * Part of this functions are copyright by Dioscouri Design - www.dioscouri.com * * */ function _reg( &$matches ) { $user = JFactory::getUser(); $return = ''; if ($user->id) { $return = $matches[1]; } return $return; } function _pub( &$matches ) { $user = JFactory::getUser(); $return = $matches[1]; if ($user->id) { $return = ''; } return $return; } function _author( &$matches ) { $user = JFactory::getUser(); $coreUserGroups = $user->getAuthorisedGroups(); $return = $matches[1]; if (!in_array(3,$coreUserGroups) && !in_array(8,$coreUserGroups)){ $return = ''; } return $return; } function _editor( &$matches ) { $user = JFactory::getUser(); $coreUserGroups = $user->getAuthorisedGroups(); $return = $matches[1]; if (!in_array(4,$coreUserGroups) && !in_array(8,$coreUserGroups)){ $return = ''; } return $return; } function _publisher( &$matches ) { $user = JFactory::getUser(); $coreUserGroups = $user->getAuthorisedGroups(); $return = $matches[1]; if (!in_array(5,$coreUserGroups) && !in_array(8,$coreUserGroups)){ $return = ''; } return $return; } function _manager( &$matches ) { $user = JFactory::getUser(); $coreUserGroups = $user->getAuthorisedGroups(); $return = $matches[1]; if (!in_array(6,$coreUserGroups) && !in_array(8,$coreUserGroups)){ $return = ''; } return $return; } function _admin( &$matches ) { $user = JFactory::getUser(); $coreUserGroups = $user->getAuthorisedGroups(); $return = $matches[1]; if (!in_array(7,$coreUserGroups) && !in_array(8,$coreUserGroups)){ $return = ''; } return $return; } function _super( &$matches ) { $user = JFactory::getUser(); $coreUserGroups = $user->getAuthorisedGroups(); $return = $matches[1]; if (!in_array(8,$coreUserGroups)){ $return = ''; } return $return; } function _special( &$matches ) { $user = JFactory::getUser(); $aid = max ($user->getAuthorisedViewLevels()); $return = $matches[1]; if ($aid != 3){ $return = ''; } return $return; } } ?> 国际酒店与旅游管理(荣誉)学士学位
Menu

国际酒店与旅游管理(荣誉)学士学位 (Top-up)

近十年来休闲旅游业的迅猛发展导致了一场必然的酒店与旅游业的全球扩张,从而为本国与全球的经济做出了重大贡献。这同时也产生了对受训精良的创新型经理人的需求。

酒店与旅游管理(荣誉)学士学位课程设置的主要目的是为学生提供一个全面的、涉及所有主要酒店与旅游管理领域的理论与实践知识

课程目标

培养拥有必要的技能和知识的毕业生,使他们可以有效的在酒店和旅游行业内就业

培养一个在酒店和旅游行业的合格管理者。

培养解决问题的能力,提高毕业生的酒店和旅游组织内的个人沟通能力。

培养分析和评价技能

事业生涯

毕业生将具备必要的技能,知识和经验,可作为旅游业住宿或餐饮行业中的见习管理人员,初级管理人员,或机构所需的监督管理职位。

在这个领域可能的职业是:
销售经理
前台经理
餐饮经理
客房主管

升学途径
国际酒店与旅游管理(荣誉)学士学位 (Top-up)
课程期限
全日制: 12 个月
业余制: 12 个月
入学日期
1月 / 5月 / 7月 / 10月
平均师生比例
1:30
课程大纲
  • 1. 创建新企业
    • 创建新企业课程介绍创建企业以及小企业发展中的计划、管理及相关 问题,使学生具有分析、严审和评估新创业企业面对的机会和威胁的 能力。同时,学生还将学会严格审视和检查自身企业家能力,为新企 业提出业务发展计划。
  • 2. 战略管理基础
    • 战略管理基础使学生对不同行业中实施策略管理和策略规划的重要性和 价值有深刻的认识。课程结束时,学生能够运用策略规划理论,评价竞 争优势的不同特点和根源,找出并联系和评估组织内部策略的层级,评 价在特定环境中做出策略选择的必要性。
  • 3. 餐旅企业旅游地可持续管理
    • 餐旅企业旅游地可持续管理课程使学生掌握从餐旅管理角度严肃评价可 持续发展的原则,并把可持续旅游地管理原则运用到实际工作中。学生 将能够就餐旅和旅游业经理们面对的各种工作挑战,做出分析和评价并 提出解决方案。
  • 4. 国际景点管理
    • 该科目的重点目标作为旅游系统的关键组成部分的概念,并探讨参与开发的核心活动,?包括来自公共和私营部门的观点一系列目标类型的管理和营销 。公营部门的做法将主要集中于DMO和DMS而私营部门的角度将采取度假村的发展前景。学生通过信息和通信技术渗透到发展景点管理和市场营销等手段来了解课程。该模块也将提供机会,以加强可持续发展的业务问题。旅游景点竞争力的学习。
  • 5. 酒店和旅游当代问题(挑战)
    • 该科目的目标,为学生提供分析和评价全球旅游及酒店当代问题和挑战的机会。让学生批判性地评价目前的想法,实践和学习有关的各种酒店及旅游业的问题和挑战,如:由于经济衰退影响,酒店和旅游业的缓慢下降;安全和保安问题的接待和旅游; 领导力;劳动力人口;社交媒体和新媒体;在酒店和旅游自然灾害的影响。
  • 6. 综合度假村管理
    • 该科目让可以评价在亚洲和全球范围内的酒店和旅游行业内的作用和综合度假村发展。有关综合度假胜地可持续性问题,并评估他们的未来发展战略。
  • 7. 荣誉项目
    • 荣誉项目是在研究分析能力进一步发展和分析能力的研究及其应用的关键评价,以基于以下研究设计: ?企业研究的理念和方式; ?研究方法和适当的研究设计; ?研究伦理及其在商业研究中的应用; ?抽样,数据采集和数据处理; ?项目规划初步研究; ?批判研究和设计,分析和解释的积极和消极方面。
课程期限
全日制: 6 个月+ 6月实习
业余制: 6 个月
入学日期
1月 / 4月 / 7月 / 10月
平均师生比例
1:30
课程大纲
1. 人力资源与跨文化管理
2. 会展营销与服务
3. 酒店房务管理
4. 饮食管理
5. 研究方法
6. 组织行为
7. 实习
学术要求:
相关EASB大专文凭

理工大专文凭

LCCI 大专4级

来自公认的高等教育机构的等同学历




英语水平要求:

最低EASB ETEDP 2级 /雅思5.5 / GCE O 水准 C6

(对于不符合上述最低学历要求但具有相关领域学历或工作经验的成人,请联系EASB咨询。)
课程期限
全日制: 6 个月
业余制: 6 个月
入学日期
1月 / 4月 / 7月 / 10月
平均师生比例
1:30
课程大纲(90学分)
1. 饮食服务业务
2. 管理学原理
3. 酒店管理与旅游市场营销
4. 酒店前台业务
5. 旅游系统和环境
6. 酒店与旅游会计
学术要求:
GCE A 水准 通过2门

EASB 预科

LCCI Diploma 等级 3

12年级毕业



英语水平要求:

最低EASB ETEDP 2级 /雅思5.0 / GCE O 水准 C6

(对于不符合上述最低学历要求但具有相关领域学历或工作经验的成人,请联系EASB咨询。)
 

马里士他校区

9 Ah Hood Road
Singapore 329975
电话: (65) 6252 5500
Email: enquiries@easb.edu.sg

办公时间

周一 至 周五 
9:00 am - 6:00 pm
周六
9:00 am - 1:00 pm
Go to top