<?php

if(!defined('DOKU_INC')) die();

class action_plugin_outdated_banner extends DokuWiki_Action_Plugin {

    /**
     * @var helper_plugin_outdated
     */
    private $hlp;

    function __construct() {
        $this->hlp = plugin_load('helper','outdated');
    }

    function register(Doku_Event_Handler $controller) {
        $controller->register_hook('TPL_ACT_RENDER', 'BEFORE', $this, 'handle_display_banner', array());
    }

    function handle_display_banner(&$event, $param) {
        global $INFO;

        if ($event->data != 'show') {
            return;
        }

        if (!$INFO['exists']) {
            return;
        }

        $meta = $INFO['meta'];
        
        if (!$this->hlp->isActive() && !isset($meta['plugin_outdated'])) {
            return;
        }

        if (!$this->hlp->isCurrentRevisionOutdated()) {
            return;
        }

        $this->showBanner();
        return;
    }

    function showBanner() {
        echo '<div class="outdated">';
        $this->showOutdatedBanner();

        echo '</div>';
    }

    function showOutdatedBanner() {
        printf('<span>%s</span>', $this->render_text($this->hlp->getOutdatedMessageForCurrentPage()));
    }
}

