Project

General

Profile

1 1475 Luisehahne
<?php
2
/**
3
 *
4
 * @category        modules
5
 * @package         output_filter
6 1520 darkviper
 * @author          Christian Sommer, WB-Project, Werner v.d. Decken
7 1907 Luisehahne
 * @copyright       2013, WebsiteBaker Org. e.V.
8 1898 Luisehahne
 * @link            http://www.websitebaker.org/
9 1475 Luisehahne
 * @license         http://www.gnu.org/licenses/gpl.html
10 1907 Luisehahne
 * @platform        WebsiteBaker 2.8.4
11 1475 Luisehahne
 * @requirements    PHP 5.2.2 and higher
12
 * @version         $Id$
13 1898 Luisehahne
 * @filesource      $HeadURL$
14 1475 Luisehahne
 * @lastmodified    $Date$
15
 *
16
 */
17 1626 darkviper
/* -------------------------------------------------------- */
18
// Must include code to stop this file being accessed directly
19
require_once( dirname(dirname(dirname(__FILE__))).'/framework/globalExceptionHandler.php');
20
if(!defined('WB_PATH')) { throw new IllegalFileException(); }
21
/* -------------------------------------------------------- */
22 1475 Luisehahne
23 1626 darkviper
/* ************************************************************************** */
24
/**
25
 * execute the frontend output filter to modify email addresses
26 2074 darkviper
 * @param string $sContent actual content
27 1626 darkviper
 * @return string modified content
28
 */
29 2074 darkviper
	function executeFrontendOutputFilter($sContent) {
30 1626 darkviper
		// get output filter settings from database
31
		$filter_settings = getOutputFilterSettings();
32 2074 darkviper
		$sFilterDirectory = str_replace('\\', '/', __DIR__).'/filters/';
33 1626 darkviper
		$output_filter_mode = 0;
34
		$output_filter_mode |= ($filter_settings['email_filter'] * pow(2, 0));  // n | 2^0
35
		$output_filter_mode |= ($filter_settings['mailto_filter'] * pow(2, 1)); // n | 2^1
36
		define('OUTPUT_FILTER_AT_REPLACEMENT', $filter_settings['at_replacement']);
37
		define('OUTPUT_FILTER_DOT_REPLACEMENT', $filter_settings['dot_replacement']);
38 2074 darkviper
        if (!function_exists('OutputFilterApi')) {
39
            require (__DIR__.'/OutputFilterApi.php');
40
        }
41
/* ### fixed default filters ################################################ */
42
        $sContent = OutputFilterApi('ReplaceSysvar', $sContent);
43
        $sContent = OutputFilterApi('WbLink', $sContent);
44
/* ************************************************************************** */
45
/* *** from here insert requests of individual variable filter ************** */
46 1626 darkviper
47
/* ### filter type: execute droplets filter ################################# */
48 2074 darkviper
        $sContent = OutputFilterApi('Droplets', $sContent);
49 1626 darkviper
/* ### filter type: protect email addresses ################################# */
50
		if( ($output_filter_mode & pow(2, 0)) || ($output_filter_mode & pow(2, 1)) ) {
51
			if (file_exists($sFilterDirectory.'filterEmail.php')) {
52 1905 darkviper
				require_once($sFilterDirectory.'filterEmail.php');
53 2074 darkviper
				$sContent = doFilterEmail($sContent, $output_filter_mode);
54 1626 darkviper
			}
55
		}
56 2074 darkviper
/* ### filter type: make use of Thorn's OutputFilterDashboard ############### */
57
        if($filter_settings['opf'] == 1){
58
            $sContent = OutputFilterApi('OpF', $sContent);
59
        }
60
61
/* *** end of individual variable filter ************************************ */
62
/* ************************************************************************** */
63
/* ### fixed default filters ################################################ */
64
        $sContent = OutputFilterApi('ReplaceSysvar', $sContent);
65
        $sContent = OutputFilterApi('WbLink', $sContent);
66 1626 darkviper
        if($filter_settings['sys_rel'] == 1){
67 2074 darkviper
            $sContent = OutputFilterApi('RelUrl', $sContent);
68 1626 darkviper
		}
69 2074 darkviper
        $sContent = OutputFilterApi('CssToHead', $sContent);
70 1626 darkviper
/* ### end of filters ####################################################### */
71 2074 darkviper
		return $sContent;
72 1626 darkviper
	}
73
/* ************************************************************************** */
74
/**
75
 * function to read the current filter settings
76
 * @global object $database
77
 * @global object $admin
78
 * @param void
79
 * @return array contains all settings
80
 */
81
	function getOutputFilterSettings() {
82 2074 darkviper
        $oDb = WbDatabase::getInstance();
83 1626 darkviper
	// set default values
84
		$settings = array(
85
			'sys_rel'         => 0,
86 2074 darkviper
            'opf'             => 0,
87 1626 darkviper
			'email_filter'    => 0,
88
			'mailto_filter'   => 0,
89
			'at_replacement'  => '(at)',
90
			'dot_replacement' => '(dot)'
91
		);
92
	// be sure field 'sys_rel' is in table
93 2074 darkviper
		$oDb->field_add( $oDb->TablePrefix.'mod_output_filter', 'sys_rel', 'INT NOT NULL DEFAULT \'0\' FIRST');
94 1626 darkviper
	// request settings from database
95 2074 darkviper
		$sql = 'SELECT * FROM `'.$oDb->TablePrefix.'mod_output_filter` ';
96
		if(($res = $oDb->doQuery($sql))) {
97
			if(($rec = $res->fetchRow(MYSQL_ASSOC))) {
98 1626 darkviper
				$settings = $rec;
99
			}
100
		}
101
	// return array with filter settings
102
		return $settings;
103
	}
104
/* ************************************************************************** */