You've already forked joomla_test
first commit
This commit is contained in:
86
plugins/system/highlight/highlight.php
Normal file
86
plugins/system/highlight/highlight.php
Normal file
@ -0,0 +1,86 @@
|
||||
<?php
|
||||
/**
|
||||
* @package Joomla.Plugin
|
||||
* @subpackage System.Highlight
|
||||
*
|
||||
* @copyright Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
|
||||
* @license GNU General Public License version 2 or later; see LICENSE
|
||||
*/
|
||||
|
||||
defined('JPATH_BASE') or die;
|
||||
|
||||
/**
|
||||
* System plugin to highlight terms.
|
||||
*
|
||||
* @package Joomla.Plugin
|
||||
* @subpackage System.Highlight
|
||||
* @since 2.5
|
||||
*/
|
||||
class PlgSystemHighlight extends JPlugin
|
||||
{
|
||||
/**
|
||||
* Method to catch the onAfterDispatch event.
|
||||
*
|
||||
* This is where we setup the click-through content highlighting for.
|
||||
* The highlighting is done with JavaScript so we just
|
||||
* need to check a few parameters and the JHtml behavior will do the rest.
|
||||
*
|
||||
* @return boolean True on success
|
||||
*
|
||||
* @since 2.5
|
||||
*/
|
||||
public function onAfterDispatch()
|
||||
{
|
||||
// Check that we are in the site application.
|
||||
if (JFactory::getApplication()->isAdmin())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
// Set the variables
|
||||
$input = JFactory::getApplication()->input;
|
||||
$extension = $input->get('option', '', 'cmd');
|
||||
|
||||
// Check if the highlighter is enabled.
|
||||
if (!JComponentHelper::getParams($extension)->get('highlight_terms', 1))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
// Check if the highlighter should be activated in this environment.
|
||||
if (JFactory::getDocument()->getType() !== 'html' || $input->get('tmpl', '', 'cmd') === 'component')
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
// Get the terms to highlight from the request.
|
||||
$terms = $input->request->get('highlight', null, 'base64');
|
||||
$terms = $terms ? json_decode(base64_decode($terms)) : null;
|
||||
|
||||
// Check the terms.
|
||||
if (empty($terms))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
// Clean the terms array
|
||||
$filter = JFilterInput::getInstance();
|
||||
|
||||
$cleanTerms = array();
|
||||
foreach ($terms as $term)
|
||||
{
|
||||
$cleanTerms[] = htmlspecialchars($filter->clean($term, 'string'));
|
||||
}
|
||||
|
||||
// Activate the highlighter.
|
||||
JHtml::_('behavior.highlighter', $cleanTerms);
|
||||
|
||||
// Adjust the component buffer.
|
||||
$doc = JFactory::getDocument();
|
||||
$buf = $doc->getBuffer('component');
|
||||
$buf = '<br id="highlighter-start" />' . $buf . '<br id="highlighter-end" />';
|
||||
$doc->setBuffer($buf, 'component');
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
22
plugins/system/highlight/highlight.xml
Normal file
22
plugins/system/highlight/highlight.xml
Normal file
@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<extension version="3.1" type="plugin" group="system" method="upgrade">
|
||||
<name>plg_system_highlight</name>
|
||||
<author>Joomla! Project</author>
|
||||
<creationDate>August 2011</creationDate>
|
||||
<copyright>(C) 2005 - 2013 Open Source Matters. All rights reserved.</copyright>
|
||||
<license>GNU General Public License version 2 or later; see LICENSE.txt</license>
|
||||
<authorEmail>admin@joomla.org</authorEmail>
|
||||
<authorUrl>www.joomla.org</authorUrl>
|
||||
<version>3.0.0</version>
|
||||
<description>PLG_SYSTEM_HIGHLIGHT_XML_DESCRIPTION</description>
|
||||
<scriptfile>script.php</scriptfile>
|
||||
<files>
|
||||
<file plugin="highlight">highlight.php</file>
|
||||
<filename>index.html</filename>
|
||||
<folder>media</folder>
|
||||
</files>
|
||||
<languages>
|
||||
<language tag="en-GB">language/en-GB/en-GB.plg_system_highlight.ini</language>
|
||||
<language tag="en-GB">language/en-GB/en-GB.plg_system_highlight.sys.ini</language>
|
||||
</languages>
|
||||
</extension>
|
1
plugins/system/highlight/index.html
Normal file
1
plugins/system/highlight/index.html
Normal file
@ -0,0 +1 @@
|
||||
<!DOCTYPE html><title></title>
|
Reference in New Issue
Block a user