1fdb4710bSMark Prins<?php 2fdb4710bSMark Prins/** 3fdb4710bSMark Prins * 4fdb4710bSMark Prins * 5fdb4710bSMark Prins * @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html 6fdb4710bSMark Prins * @author Mark C. Prins <mprins@users.sf.net> 7fdb4710bSMark Prins */ 8fdb4710bSMark Prins/** 9fdb4710bSMark Prins * DokuWiki Plugin socialcards (Action Component) 10fdb4710bSMark Prins * 11fdb4710bSMark Prins * Copyright (c) 2013 Mark C. Prins <mprins@users.sf.net> 12fdb4710bSMark Prins * 13fdb4710bSMark Prins * Permission to use, copy, modify, and distribute this software for any 14fdb4710bSMark Prins * purpose with or without fee is hereby granted, provided that the above 15fdb4710bSMark Prins * copyright notice and this permission notice appear in all copies. 16fdb4710bSMark Prins * 17fdb4710bSMark Prins * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 18fdb4710bSMark Prins * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 19fdb4710bSMark Prins * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 20fdb4710bSMark Prins * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 21fdb4710bSMark Prins * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 22fdb4710bSMark Prins * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 23fdb4710bSMark Prins * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 24fdb4710bSMark Prins * 25fdb4710bSMark Prins * @author Mark C. Prins <mprins@users.sf.net> 26fdb4710bSMark Prins */ 27fdb4710bSMark Prinsif (!defined('DOKU_INC')) die(); 28fdb4710bSMark Prinsif (!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); 29fdb4710bSMark Prins 30fdb4710bSMark Prinsrequire_once DOKU_PLUGIN.'action.php'; 31fdb4710bSMark Prins 32fdb4710bSMark Prinsclass action_plugin_socialcards extends DokuWiki_Action_Plugin { 33fdb4710bSMark Prins 34fdb4710bSMark Prins public function register(Doku_Event_Handler &$controller) { 35fdb4710bSMark Prins $controller->register_hook('TPL_METAHEADER_OUTPUT', 'BEFORE', $this, 'handle_tpl_metaheader_output'); 36fdb4710bSMark Prins } 37fdb4710bSMark Prins 38fdb4710bSMark Prins /** 39fdb4710bSMark Prins * retrieve metadata and add to the head of the page using appropriate meta tags. 40fdb4710bSMark Prins * @param Doku_Event $event the DokuWiki event. $event->data is a two-dimensional 41fdb4710bSMark Prins * array of all meta headers. The keys are meta, link and script. 42fdb4710bSMark Prins * @param unknown_type $param 43fdb4710bSMark Prins */ 44fdb4710bSMark Prins public function handle_tpl_metaheader_output(Doku_Event &$event, $param) { 45fdb4710bSMark Prins /* 46fdb4710bSMark Prins * see: http://www.dokuwiki.org/devel:event:tpl_metaheader_output 47fdb4710bSMark Prins * $data is a two-dimensional array of all meta headers. The keys are meta, link and script. 48fdb4710bSMark Prins */ 49fdb4710bSMark Prins global $ID; 50fdb4710bSMark Prins 51fdb4710bSMark Prins // twitter card, see https://dev.twitter.com/docs/cards 52fdb4710bSMark Prins $event->data['meta'][] = array('name' => 'twitter:card', 'content' => "summary",); 53fdb4710bSMark Prins $event->data['meta'][] = array('name' => 'twitter:url', 'content' => wl($ID,'',true),); 54fdb4710bSMark Prins $event->data['meta'][] = array('name' => 'twitter:title', 'content' => p_get_metadata($ID,'title',true),); 55*fc03d0b3SMark Prins $d = p_get_metadata($ID, 'description'); 56*fc03d0b3SMark Prins if (!empty($d)) { 57*fc03d0b3SMark Prins $event->data['meta'][] = array('name' => 'twitter:description', 58*fc03d0b3SMark Prins 'content' => p_get_metadata($ID,$d['abstract'],true),); 59*fc03d0b3SMark Prins } 60*fc03d0b3SMark Prins 61fdb4710bSMark Prins //twitter:image 62fdb4710bSMark Prins //twitter:site 63fdb4710bSMark Prins //twitter:site:id 64fdb4710bSMark Prins //twitter:creator 65fdb4710bSMark Prins //twitter:creator:id 66fdb4710bSMark Prins } 67fdb4710bSMark Prins} 68