/** * * @param type $file */ public static function addScript($file) { $assetsFile = CFactory::getPath('template://js/' . $file . '.js'); if ($assetsFile) { $assetsDir = dirname($assetsFile); } else { /* This file is not located under template */ $assetsFile = CFactory::getPath('assets://' . $file . '.js'); if ($assetsFile) { $assetsDir = dirname($assetsFile); } } if (isset($assetsDir)) { /** * @todo Update CAssets */ CFactory::attach($file . '.js', 'js', CPath::getInstance()->toUrl($assetsDir) . '/'); } }
<?php /** * @copyright (C) 2013 iJoomla, Inc. - All rights reserved. * @license GNU General Public License, version 2 (http://www.gnu.org/licenses/gpl-2.0.html) * @author iJoomla.com <*****@*****.**> * @url https://www.jomsocial.com/license-agreement * The PHP code portions are distributed under the GPL license. If not otherwise stated, all images, manuals, cascading style sheets, and included JavaScript *are NOT GPL, and are released under the IJOOMLA Proprietary Use License v1.0 * More info at https://www.jomsocial.com/license-agreement */ defined('_JEXEC') or die; $viewName = JRequest::getCmd('view'); $taskName = JRequest::getCmd('task'); require_once JPATH_ROOT . '/components/com_community/libraries/core.php'; $svgPath = CFactory::getPath('template://assets/icon/joms-icon.svg'); include_once $svgPath; // call the auto refresh on specific page if ($menuParams != '' && $menuParams->get('show_page_heading') != 0) { ?> <div class="page-header"> <h3><?php echo $this->escape($menuParams->get('page_title')); ?> </h3> </div> <?php } if ($showToolbar) { ?> <div class="joms-toolbar">
/** * Execute a request */ public function execute($task) { $mainframe = JFactory::getApplication(); $jinput = $mainframe->input; $document = JFactory::getDocument(); $my = CFactory::getUser(); $pathway = $mainframe->getPathway(); $menus = $mainframe->getMenu(); $menuitem = $menus->getActive(); $userId = $jinput->get->get('userid', '', 'INT'); $tmpl = $jinput->request->get('tmpl', '', 'STRING'); $format = $jinput->request->get('format', '', 'STRING'); $nohtml = $jinput->request->get('no_html', '', 'STRING'); if ($tmpl != 'component' && $format != 'feed' && $format != 'ical' && $nohtml != 1 && $format != 'raw') { // This is to fix MSIE that has incorrect user agent because jquery doesn't detect correctly. $ieFix = "<!--[if IE 6]><script type=\"text/javascript\">var jomsIE6 = true;</script><![endif]-->"; $document->addCustomTag($ieFix); } // Add custom css for the specific view if needed. $config = CFactory::getConfig(); $viewName = JString::strtolower($jinput->request->get('view', '', 'STRING')); jimport('joomla.filesystem.file'); if ($config->get('enablecustomviewcss')) { CTemplate::addStylesheet($viewName); } $template = JFactory::getApplication()->getTemplate(); // echo var_dump(CTemplate::addStylesheet('beez2')); if ($template == 'beez_20' && JVERSION > 2 && JVERSION < 3) { CTemplate::addStylesheet('beez2'); } $env = CTemplate::getTemplateEnvironment(); $svgFile = CFactory::getPath('template://assets/icon/joms-icon.svg'); // non ajax-prefixed tasks that should avoid svg $excludeSvgList = array('changeAvatar', 'multiUpload', 'uploadvideo'); // exclude svg file from ajax response if ($svgFile && substr($task, 0, 4) != 'ajax' && !in_array($task, $excludeSvgList)) { include_once $svgFile; } $html = '<div id="community-wrap" class="jomsocial-wrapper on-' . $env->joomlaTemplate . ' ' . $document->direction . ' c' . ucfirst($viewName) . '">'; $html .= '<div class="jomsocial">'; // Build the component menu module ob_start(); $tmpl = new CTemplate(); $tmpl->renderModules('js_top'); $moduleHTML = ob_get_contents(); ob_end_clean(); $html .= $moduleHTML; // Build the content HTML //CFactory::load( 'helpers' , 'azrul' ); if (!empty($task) && method_exists($this, $task)) { ob_start(); if (method_exists($this, '_viewEnabled') && !$this->_viewEnabled()) { echo property_exists($this, '_disabledMessage') ? $this->_disabledMessage : JText::_('COM_COMMUNITY_CONTROLLER_FUNCTION_DISABLED_WARNING'); } else { $this->{$task}(); } $output = ob_get_contents(); ob_end_clean(); } else { ob_start(); $this->display(); $output = ob_get_contents(); ob_end_clean(); } // Build toolbar HTML ob_start(); $view = $this->getView(JString::strtolower($jinput->get('view', 'frontpage', 'STRING'))); // Do not rely on the toolbar to include necessary css or javascripts. $view->attachHeaders(); // Display the site's toolbar. $view->showToolbar(); // Header title will use view->title. If not specified, we will // use current page title $headerTitle = !empty($view->title) ? $view->title : $document->getTitle(); $view->showHeader($headerTitle, $this->_icon); $header = ob_get_contents(); ob_end_clean(); $html .= $header; // @rule: Super admin should always be allowed regardless of their block status // block member to access profile owner details //CFactory::load( 'helpers' , 'owner' ); //CFactory::load( 'libraries' , 'block' ); $getBlockStatus = new blockUser(); $blocked = $getBlockStatus->isUserBlocked($userId, $viewName); if ($blocked) { if (COwnerHelper::isCommunityAdmin()) { $mainframe = JFactory::getApplication(); $mainframe->enqueueMessage(JText::_('COM_COMMUNITY_YOU_ARE_BLOCKED_BY_USER', 'error')); } else { $tmpl = new CTemplate(); $view->showToolbar(); echo $tmpl->fetch('block.denied'); return; $block = true; } } // Build the component bottom module ob_start(); $tmpl = new CTemplate(); $tmpl->renderModules('js_bottom'); $moduleHTML = ob_get_contents(); ob_end_clean(); $html .= $output . $moduleHTML . '</div></div>'; //CFactory::load( 'helpers' , 'string' ); $html = CStringHelper::replaceThumbnails($html); $html = CString::str_ireplace(array('{error}', '{warning}', '{info}'), '', $html); // Trigger onModuleDisplay() //CFactory::load( 'libraries' , 'apps' ); $appsLib = CAppPlugins::getInstance(); $appsLib->loadApplications(); $moduleHTML = $appsLib->triggerEvent('onModuleRender'); $mods = array(); if (is_array($moduleHTML)) { foreach ($moduleHTML as $modules) { if (is_array($modules)) { foreach ($modules as $position => $content) { if (empty($mods[$position])) { $mods[$position] = ''; } $mods[$position] .= $content; } } } } foreach ($mods as $position => $module) { $html = str_replace('<!-- ' . $position . ' -->', $module, $html); } echo $html; // Fix UI quirks. echo PHP_EOL; echo '<script>window.joms && joms.fixUI && joms.fixUI();</script>'; echo PHP_EOL; }
public static function getDefault($key) { /* * This is where we store our own defaults * in case the template file is broken or otherwise not available */ $defaultSettings = JPATH_ROOT . '/components/com_community/templates/jomsocial/assets/default.' . $key . '.json'; /* * Attempt to read and parse template settings */ $templateSettings = CFactory::getPath('template://assets/default.' . $key . '.json'); jimport('joomla.file'); // If the file exists, and contains parseable JSON data if (strlen($templateSettings) && JFile::exists($templateSettings)) { $json = JFile::read($templateSettings); if (strlen($json)) { $settings = json_decode($json, true); } } if (!isset($settings) || !is_array($settings)) { return json_decode(JFile::read($defaultSettings), true); } return $settings; }
/** * Write compiled css into css file * @param string $fileName * @return boolean */ public function saveCSSFile($fileName) { $templateAssetsDir = CFactory::getPath('template://assets/css'); if ($templateAssetsDir) { $cssFile = $templateAssetsDir . '/' . $fileName . '.css'; return JFile::write($cssFile, $this->_css); } return false; }
/** * Init assets * @param type $name */ public function _init($name) { $document = JFactory::getDocument(); if ($document->getType() == 'html') { $document->addScriptDeclaration("joms_base_url = '" . JURI::root() . "';"); $document->addScriptDeclaration("joms_assets_url = '" . JURI::root(true) . "/components/com_community/assets/';"); // Legacy script relative path. $document->addScriptDeclaration("joms_script_url = '" . JURI::root(true) . "/components/com_community/assets/_release/js/';"); // Language translation. $this->_loadLanguageTranslation(); } // $this->attach('assets/joms.jquery-1.8.1.min.js', 'js'); // $this->attach('assets/script-1.2.js', 'js'); /* Assets init */ $assetFile = CFactory::getPath('assets://default.json'); if ($assetFile) { $assets = json_decode(file_get_contents($assetFile)); foreach ($assets->core->css as $css) { $cssFile = CFactory::getPath('assets://' . $css . '.css'); if ($cssFile) { $this->attach(JFile::getName($css) . '.css', 'css', CPath::getInstance()->toUrl(dirname($cssFile)) . '/'); } } foreach ($assets->core->js as $js) { $jsFile = CFactory::getPath('assets://' . $js . '.js'); if ($jsFile) { $this->attach(JFile::getName($js) . '.js', 'js', CPath::getInstance()->toUrl(dirname($jsFile)) . '/'); } } } if (JFactory::getApplication()->isSite()) { /* Template init */ $lang = JFactory::getLanguage(); $templateFile = CFactory::getPath('template://assets/' . $name . '.json'); if ($templateFile) { $assets = json_decode(file_get_contents($templateFile)); /* Load template core files */ foreach ($assets->core->css as $css) { $cssFile = CFactory::getPath('template://assets/css/' . $css . '.css'); if ($cssFile) { $this->attach(JFile::getName($css) . '.css', 'css', CPath::getInstance()->toUrl(dirname($cssFile)) . '/'); } } foreach ($assets->core->js as $js) { $jsFile = CFactory::getPath('template://assets/js/' . $js . '.js'); if ($jsFile) { $this->attach(JFile::getName($js) . '.js', 'js', CPath::getInstance()->toUrl(dirname($jsFile)) . '/'); } } /* Load template view files */ $view = JFactory::getApplication()->input->getWord('view'); if (isset($assets->views->{$view})) { if (isset($assets->views->{$view}->css)) { foreach ($assets->views->{$view}->css as $css) { $cssFile = CFactory::getPath('template://assets/css/view.' . $css . '.css'); if ($cssFile) { $this->attach('view.' . JFile::getName($css) . '.css', 'css', CPath::getInstance()->toUrl(dirname($cssFile)) . '/'); } } } } if (isset($assets->views->{$view})) { if (isset($assets->views->{$view}->js)) { foreach ($assets->views->{$view}->js as $js) { $jsFile = CFactory::getPath('template://assets/js/view.' . $js . '.js'); if ($jsFile) { $this->attach('view.' . JFile::getName($js) . '.js', 'js', CPath::getInstance()->toUrl(dirname($jsFile)) . '/'); } } } } } } }
/** * Displays the toolbar of JomSocial * * @since 5.0 * @access public * @param string * @return */ public function getToolbar() { if (!$this->config->get('integrations_jomsocial_toolbar')) { return; } // Allow third party to control the toolbar $displayToolbar = $this->input->get('showJomsocialToolbar', true); $format = $this->input->get('format', '', 'word'); $tmpl = $this->input->get('tmpl', '', 'word'); if ($format == 'pdf' || $format == 'phocapdf' || $tmpl == 'component' || !$displayToolbar) { return; } // Ensure that JomSocial exists if (!$this->exists()) { return; } // Ensure the library really exists on the site. if (!class_exists('CToolbarLibrary') || !method_exists('CToolbarLibrary', 'getInstance')) { return; } $svg = ''; if (method_exists('CFactory', 'getPath')) { $svg = CFactory::getPath('template://assets/icon/joms-icon.svg'); } // Load up the apps $appsLib = CAppPlugins::getInstance(); $appsLib->loadApplications(); $appsLib->triggerEvent('onSystemStart', array()); // Get the toolbar library $toolbar = CToolbarLibrary::getInstance(); $theme = EB::template(); $theme->set('svg', $svg); $theme->set('toolbar', $toolbar); $contents = $theme->output('site/toolbar/toolbar.jomsocial'); return $contents; }