Modul-Filter schreiben (de) | |
Einen Filter als Teil eines Moduls installieren | Ist der Filter Teil eines normalen Modules, sind lediglich die Dateien install.php und uninstall.php des Modules entsprechend um Aufrufe von opf_register_filter() und opf_unregister_filter() zu ergänzen, und eine Datei mit der Filter-Funktion hinzuzufügen. |
precheck.php | Überprüfen Sie vor der installation, ob Outputfilter-Dashboard installiert ist. |
Ist der Filter Teil eines normalen Modules, sind lediglich die Dateien install.php und uninstall.php des Modules entsprechend um Aufrufe von opf_register_filter() und opf_unregister_filter() zu ergänzen, und eine Datei mit der Filter-Funktion hinzuzufügen.
Zusätzlich können (und sollten) Sie das Precheck-System der Modulverwaltung benutzen, um zu prüfen ob Outputfilter-Dashboard installiert ist. Das Installationsskript sollte auch nach der Installation ein weiteres Mal ausführbar sein. Eventuell einzufügende Tabellen sollten daher auf ihre Existenz beprüft werden:
CREATE TABLE ... IF NOT EXISTS
<?php // normal content from install-file here // ... // check whether outputfilter-module is installed if(file_exists(WB_PATH.'/modules/outputfilter_dashboard/functions.php')) { require_once(WB_PATH.'/modules/outputfilter_dashboard/functions.php'); // install filter //---Searchengine-Highlighter-Filter------------------------------------------- //============================================================================= opf_register_filter(array( 'name' => 'Searchengine Highlighter', 'type' => OPF_TYPE_PAGE_LAST, 'file' => '{SYSVAR:WB_PATH}/modules/searchengine_highlight/filter.php', 'funcname' => 'opff_searchengine_highlight', 'desc' => "Google-Search-Highlighter", 'active' => 1, 'allowedit' => 0 )); } // rest of install-file here // ...
Standardmäßig werden neu installierte Filter ans Ende gestellt, aber Sie können die Position des Filters nachdem es registriert ist mit der Funktion opf_move_up_before beeinflussen.
<?php // normal content from uninstall-file here // ... // check whether outputfilter-module is installed { if(file_exists(WB_PATH.'/modules/outputfilter_dashboard/functions.php')) { require_once(WB_PATH.'/modules/outputfilter_dashboard/functions.php'); // un-install filter opf_unregister_filter('Searchengine Highlighter'); } // rest of uninstall-file here // ...
Diese Datei enthält die Filter-Funktion. See The Filter-Function itself.
<?php if(!defined('WB_PATH')) die(header('Location: ../../index.php')); function opff_searchengine_highlight(&$content, $page_id, $section_id, $module, $wb) { // function code here return(TRUE); }
Überprüfen Sie vor der installation, ob Outputfilter-Dashboard installiert ist. Fügen Sie dazu Ihrem Modul eine Datei precheck.php mit dem folgenden Inhalt hinzu
<?php // prevent this file from being accessed directly if(!defined('WB_PATH')) die(header('Location: ../index.php')); $PRECHECK = array(); $PRECHECK['WB_VERSION'] = array('VERSION'=>'2.8', 'OPERATOR'=>'>='); $PRECHECK['WB_ADDONS'] = array( // Outputfilter-Dashboard must be installed 'outputfilter_dashboard'=>array('VERSION'=>'1.3.2', 'OPERATOR'=>'>=') );
Passen Sie die vorausgesetzte Version von Outputfilter-Dashboard wie benötigt an.
Damit das Modul funktioniert, müssen Sie auch ein index.php und ein info.php file anlegen wie für jedes andere reguläre Modul auch
<?php header('Location: ../../index.php');
<?php $module_directory = 'searchengine_highlight'; $module_name = 'Search Engine Highlighter'; $module_function = 'filter'; $module_version = '0.1'; $module_platform = '2.8.3'; $module_author = 'your name'; $module_license = 'e.g. GPL v3'; $module_description = 'This module helps you to highlight search engine hits';
Register a new Filter.
function opf_register_filter( $filter, $serialized = FALSE )
Un-Register a Filter.
function opf_unregister_filter( $name )
Upon registration move a filter up to a position before another one.
function opf_move_up_before( $name, $ref_name = "" )