/** * @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

马里士他校区

占地面积超过 17,500 平方米 ,建筑面积111,000平方米,4层连接楼,2个附楼.

可容纳4000多名在校学生

校园与马里士他路食街、便利店和ATM取款机等近咫尺,与繁华的诺维娜(Novena)广场也是举步之遥

交通方便,步行2分钟即可到达巴士站,步行至大巴窑(Toa Payoh)与诺维娜(Novena)地铁站仅只有10-15分钟的距离。


学生能够享受最先进的设施和基础设施,其中包括:。

设备齐全的教室和设施
 
- 19间教室
- 2个演讲厅,配备多媒体教学设备
- 计算机实验室
- 语言实验室
- 物理实验室
- 礼堂
- 酒店和培训中心
- 酒店和培训研讨室
- 学习中心
- 图书馆
- 功能厅
- 多用途礼堂
- 健身房
- 便利店
- 食堂
- 操场
- 篮球/篮球/五人制足球场
- 停车场

 



 

先进的物理实验室配有最新的设备和实验仪器。 它是由政府当局批准并符合所有安全标准 。 O水准预备课程的学生将能够在舒适安全的环境中试验并享受我们内部实验室的便利。

  

 
  
 

校园实体设施

1.  教室
东亚管理学院总共有 20 个不同大小的教室 。所有教室都配备了桌椅,空调,投影仪和投影仪屏幕,白板,扬声器和电脑。

S/No 教室数量 容量
(座位数)
面积
(平方米)
1 4 20 34.41 – 35.33
2 10 40 60.27 – 71.69
3 5 60 93.24 – 94.34

2. 演讲厅 (Lecture Hall)

S/No 教室数量 容量
(座位数)
面积
(平方米)
1 2 80 - 100 158.26 – 162.39

3. 电脑实验室

S/No

教室数量 容量
(座位数)
面积
(平方米)

1

1

48

121.23

EASB的计算机实验室配备 48台电脑以满足学生的学习需求。 所有电脑都连接互联网使用。

计算机实验室还配备了桌椅,空调,2台投影仪和2台投影仪屏幕,白板,扬声器和计算机供讲师使用。

 4. 语言实验室

S/No 教室数量 容量
(座位数)
面积
(平方米)
1 1 80 126.01

语言实验室配备 有80台带有耳机和扬声器的电脑 ,可用于听和说。 它还配备了桌椅,空调,投影仪和投影仪屏幕,扬声器和白板。

所有的电脑都安装了数字语言实验室和X-ClasX-Class软件

5. 物理实验室

S/No 教室数量 容量
(座位数)
面积
(平方米)
1 1 18 70.63

物理实验室位于二楼,配备了相关设备供预科学校的“O”水准学生在他们的实用物理课程中使用。

6. 阶梯礼堂
286个座位的阶梯礼堂位于培训中心旁边。 礼堂装有空调,并具有良好的音响效果。 它还配备了音频和投影系统。

S/No 教室数量 容量
(座位数)
面积
(平方米)
1 1 286 320

7. 酒店旅游培训中心
酒店与旅游(H&T)培训中心位于附楼。 它有一个类似于酒店的环境,包括(i)前厅,大堂和商务中心,(ii)餐饮区,餐厅,吧台和厨房(iii)套房和(iv) 一个培训室,让学生在H&T的实践方面接受培训。

S/No

教室数量 容量
(座位数)
面积
(平方米)

1

商务中心,休息室,卧室,厨房,酒吧,咖啡厅和卫生间。

60

425

8. 酒店和旅游研讨室
在阶梯礼堂和H&T培训中心之间是全空调和铺有地毯的培训中心,配有3个投影仪和投影屏幕,可容纳多达60人的研讨会。

S/No

教室数量 容量
(座位数)
面积
(平方米)

1

1

60

169



学生服务设施

学习中心
东亚管理学院设有一个学习中心,全部装有空调,并配有78台互联网连接的电脑。 简而言之,学生可以轻松地使用计算机进行学习和研究,并配有影印和打印设备。

图书馆
图书馆收藏了来自商业管理,酒店与旅游,会计学等诸多学科的3000多本书籍和参考书。
图书馆还提供连接到互联网的电脑供学生使用。

多功能礼堂
EASB的多功能礼堂(MPH)可容纳600多人,可用于在空调环境中举办大型活动。
在大厅外面有两个羽毛球场,一个可容纳两个乒乓球桌的空调门厅。

便利店
便利店提供印刷和复印服务以及固定的销售。

食堂
校园有自己的食堂,内有四个大排档和一家饮料店。 它的座位容量为200。

多功能厅
位于食堂旁边; 多功能厅有空调,可用于学生活动,会议和午餐和晚餐聚会。

 

体育和休闲设施

操场
我们的场地比标准足球场略小,可用于户外运动。

篮球场
篮球场是多用途的,它可以用于各种运动,即篮球,篮网球和五人制足球。

健身房
健身房装有空调,并配备了与一些商业健身中心相媲美的健身器材。.

校园的基础设施

停车场
校内校园内有两个停车场,一个停放普通汽车,另一个停放大型汽车,如巴士,货车或运送车辆。 有37辆汽车停车场,1个残疾人停车场和6辆公共汽车停车场等。

电力系统
我们的校园在所有电力分配都有自己的开关室。 校园内的所有电器均由专业人员安装和认证,并获得PUB和EMA的许可和许可。

消防安全设备
按照消防安全和住房部(FSSD)的要求,消防安全设备如火灾报警板,灭火器,消防软管卷盘,呼叫点和出口标志安装在适当位置。
所有的消防安全设备都会定期检查,以确保它们能够正常工作,灭火器更新以确保它们的有效性。

安全保卫设施
校舍的建筑物被围起来,只能通过安全人员每周7天,每天24小时进入的正门进入。 还有在关键地点放置的闭路电视,以确保校舍安全。

 

营业时间:

周一 至 周五: 9am to 6pm
周六: 9am to 1pm
周日 &
公共假日
关闭
地址: 9 Ah Hood Road Singapore 329975

马里士他校区

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