15bbfd4a0SIkuo Obataya<?php 25bbfd4a0SIkuo Obataya/** 35bbfd4a0SIkuo Obataya * Description action plugin 45bbfd4a0SIkuo Obataya * 5917d5640Slupo49 * @lastmodified 2012-07-02 65bbfd4a0SIkuo Obataya * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) 75bbfd4a0SIkuo Obataya * @author Ikuo Obataya <I.Obataya@gmail.com> 8917d5640Slupo49 * @author Matthias Schulte <dokuwiki@lupo49.de> 9917d5640Slupo49 * @version 2012-07-02 105bbfd4a0SIkuo Obataya */ 115bbfd4a0SIkuo Obataya 125bbfd4a0SIkuo Obatayaif(!defined('DOKU_INC')) die(); 135bbfd4a0SIkuo Obatayaif(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); 14e874628fSMatthias Schulte 155bbfd4a0SIkuo Obatayarequire_once(DOKU_PLUGIN.'action.php'); 165bbfd4a0SIkuo Obataya 17e874628fSMatthias Schultedefine('KEYWORD_SOURCE_ABSTRACT', 'abstract'); 18e874628fSMatthias Schultedefine('KEYWORD_SOURCE_GLOBAL', 'global'); 19e874628fSMatthias Schultedefine('KEYWORD_SOURCE_SYNTAX', 'syntax'); 20e874628fSMatthias Schulte 215bbfd4a0SIkuo Obatayaclass action_plugin_description extends DokuWiki_Action_Plugin { 22e874628fSMatthias Schulte 23*b41b5a01SAndreas Gohr function register(Doku_Event_Handler $controller) { 245bbfd4a0SIkuo Obataya $controller->register_hook('TPL_METAHEADER_OUTPUT','BEFORE',$this,'description',array()); 255bbfd4a0SIkuo Obataya } 26e874628fSMatthias Schulte 275bbfd4a0SIkuo Obataya /** 28b78c60d0Slupo49 * Add an abstract, global value or a specified string to meta header 295bbfd4a0SIkuo Obataya */ 305bbfd4a0SIkuo Obataya function description(&$event, $param) { 315bbfd4a0SIkuo Obataya if(empty($event->data) || empty($event->data['meta'])) return; 325bbfd4a0SIkuo Obataya 335bbfd4a0SIkuo Obataya global $ID; 34e874628fSMatthias Schulte $source = $this->getConf('keyword_source'); 35e874628fSMatthias Schulte if(empty($source)) $source = 'abstract'; 36e874628fSMatthias Schulte 37e874628fSMatthias Schulte if($source == KEYWORD_SOURCE_ABSTRACT) { 385bbfd4a0SIkuo Obataya $d = p_get_metadata($ID, 'description'); 395bbfd4a0SIkuo Obataya if(empty($d)) return; 405bbfd4a0SIkuo Obataya 415bbfd4a0SIkuo Obataya $a = str_replace("\n", " ", $d['abstract']); 425bbfd4a0SIkuo Obataya if(empty($a)) return; 43e874628fSMatthias Schulte } 44e874628fSMatthias Schulte 45e874628fSMatthias Schulte if($source == KEYWORD_SOURCE_GLOBAL) { 46e874628fSMatthias Schulte $a = $this->getConf('global_description'); 47e874628fSMatthias Schulte if(empty($a)) return; 48e874628fSMatthias Schulte } 49e874628fSMatthias Schulte 50e874628fSMatthias Schulte if($source == KEYWORD_SOURCE_SYNTAX) { 51e874628fSMatthias Schulte $metadata = p_get_metadata($ID); 52917d5640Slupo49 $a = $metadata['plugin_description']['keywords']; 53b78c60d0Slupo49 if(empty($a)) return; 54e874628fSMatthias Schulte } 555bbfd4a0SIkuo Obataya 565bbfd4a0SIkuo Obataya $m = array("name" => "description", "content" => $a); 575bbfd4a0SIkuo Obataya $event->data['meta'][] = $m; 585bbfd4a0SIkuo Obataya } 595bbfd4a0SIkuo Obataya} 60