Modul-Filter schreiben (de)

Summary
Modul-Filter schreiben (de)
Einen Filter als Teil eines Moduls installierenIst 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.

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.

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

install.php

<?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.

uninstall.php

<?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
// ...

filter.php

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);
}

precheck.php

Ü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

index.php

<?php
header('Location: ../../index.php');

info.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';
function opf_register_filter($filter,  
$serialized = FALSE)
Register a new Filter.
function opf_unregister_filter($name)
Un-Register a Filter.
function opf_move_up_before($name,  
$ref_name = "")
Upon registration move a filter up to a position before another one.
The Filter function must have an unique name, and should have a “opff_”-prefix
Close