115 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			115 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /**
 | |
|  * @package    JEM
 | |
|  * @copyright  (C) 2013-2024 joomlaeventmanager.net
 | |
|  * @copyright  (C) 2005-2009 Christoph Lukes
 | |
|  * @license    https://www.gnu.org/licenses/gpl-3.0 GNU/GPL
 | |
|  */
 | |
| 
 | |
| defined('_JEXEC') or die;
 | |
| 
 | |
| use Joomla\CMS\HTML\HTMLHelper;
 | |
| use Joomla\CMS\Language\Text;
 | |
| use Joomla\CMS\Toolbar\ToolbarHelper;
 | |
| use Joomla\CMS\Factory;
 | |
| use Joomla\CMS\Uri\Uri;
 | |
| use Joomla\CMS\Filesystem\Folder;
 | |
| 
 | |
| jimport('joomla.html.pane');
 | |
| 
 | |
| 
 | |
| /**
 | |
|  * View class for the JEM Help screen
 | |
|  *
 | |
|  * @package JEM
 | |
|  */
 | |
| class JemViewHelp extends JemAdminView
 | |
| {
 | |
| 
 | |
| 	public function display($tpl = null)
 | |
| 	{
 | |
| 		//initialise variables
 | |
| 		$lang = Factory::getApplication()->getLanguage();
 | |
| 		$app = Factory::getApplication();
 | |
| 		$this->document = $app->getDocument();
 | |
| 
 | |
| 		//get vars
 | |
| 		$helpsearch = Factory::getApplication()->input->getString('filter_search', '');
 | |
| 
 | |
| 		// // Load css
 | |
| 		// HTMLHelper::_('stylesheet', 'com_jem/backend.css', array(), true);
 | |
| 		$wa = $app->getDocument()->getWebAssetManager();
 | |
| 	
 | |
| 		$wa->registerStyle('jem.backend', 'com_jem/backend.css')->useStyle('jem.backend');
 | |
| 		// Check for files in the actual language
 | |
| 		$langTag = $lang->getTag();
 | |
| 
 | |
| 		if (!Folder::exists(JPATH_SITE .'/administrator/components/com_jem/help/'.$langTag)) {
 | |
| 			$langTag = 'en-GB';		// use english as fallback
 | |
| 		}
 | |
| 
 | |
| 		//search the keyword in the files
 | |
| 		$toc = JemViewHelp::getHelpToc($helpsearch);
 | |
| 
 | |
| 		//assign data to template
 | |
| 		$this->langTag    = $langTag;
 | |
| 		$this->helpsearch = $helpsearch;
 | |
| 		$this->toc        = $toc;
 | |
| 
 | |
| 		// add toolbar
 | |
| 		$this->addToolbar();
 | |
| 
 | |
| 		parent::display($tpl);
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Compiles the help table of contents
 | |
| 	 * Based on the Joomla admin component
 | |
| 	 *
 | |
| 	 * @param  string A specific keyword on which to filter the resulting list
 | |
| 	 */
 | |
| 	public function getHelpTOC($helpsearch)
 | |
| 	{
 | |
| 		$lang = Factory::getApplication()->getLanguage();
 | |
| 
 | |
| 		// Check for files in the actual language
 | |
| 		$langTag = $lang->getTag();
 | |
| 
 | |
| 		if (!Folder::exists(JPATH_SITE .'/administrator/components/com_jem/help/'.$langTag)) {
 | |
| 			$langTag = 'en-GB';		// use english as fallback
 | |
| 		}
 | |
| 		$files = Folder::files(JPATH_SITE .'/administrator/components/com_jem/help/'.$langTag, '\.xml$|\.html$');
 | |
| 
 | |
| 		$toc = array();
 | |
| 		foreach ($files as $file) {
 | |
| 			$buffer = file_get_contents(JPATH_SITE .'/administrator/components/com_jem/help/'.$langTag.'/'.$file);
 | |
| 			if (preg_match('#<title>(.*?)</title>#', $buffer, $m)) {
 | |
| 				$title = trim($m[1]);
 | |
| 				if ($title) {
 | |
| 					if ($helpsearch) {
 | |
| 						if (\Joomla\String\StringHelper::strpos(strip_tags($buffer), $helpsearch) !== false) {
 | |
| 							$toc[$file] = $title;
 | |
| 						}
 | |
| 					} else {
 | |
| 						$toc[$file] = $title;
 | |
| 					}
 | |
| 				}
 | |
| 			}
 | |
| 		}
 | |
| 		asort($toc);
 | |
| 		return $toc;
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Add Toolbar
 | |
| 	 */
 | |
| 	protected function addToolbar()
 | |
| 	{
 | |
| 		//create the toolbar
 | |
| 		ToolbarHelper::title(Text::_('COM_JEM_HELP'), 'help');
 | |
| 		ToolBarHelper::divider();
 | |
| 		ToolBarHelper::help('help', true, 'https://www.joomlaeventmanager.net/documentation/manual/backend/control-panel/help');
 | |
| 	}
 | |
| }
 | |
| ?>
 |