+++ /dev/null
-<?php
-/**
- *
- * FOOT NOTE PLUG-IN FOR NucleusCMS
- * PHP versions 4 and 5
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * (see nucleus/documentation/index.html#license for more info)
- *
- * @author Original Author nakahara21
- * @copyright 2005-2006 nakahara21
- * @license http://www.gnu.org/licenses/gpl.txt
- * GNU GENERAL PUBLIC LICENSE Version 2, June 1991
- * @version 0.32
- * @link http://nakahara21.com
- *
- **/
-class NP_FootNote extends NucleusPlugin
-{
-
- function getName()
- {
- return 'Foot Note Plugin.';
- }
-
- function getAuthor()
- {
- $author = 'charlie, '
- . 'nakahara21, '
- . 'shizuki';
- return $author;
- }
-
- function getURL()
- {
- $original = 'http://nakahara21.com/';
- $wikiPage = 'http://japan.nucleuscms.org/wiki/plugins:footnote';
- return $wikiPage;
- }
-
- function getVersion()
- {
- return '0.32';
- }
-
- function getDescription()
- {
- $description = _FNOTE_DESC;
- return $description;
- }
-
- function supportsFeature($what)
- {
- switch ($what) {
- case 'SqlTablePrefix':
- return 1;
- default:
- return 0;
- }
- }
-
-
- function install()
- {
- $this->createOption('CreateTitle', _CLT_TITLE, 'yesno', 'yes');
- $this->createOption('Split', _NOTE_SPLT, 'yesno', 'no');
- }
-
- function getEventList()
- {
- $events = array (
- 'PreItem',
- 'PreSkinParse'
- );
- return $events;
- }
-
- function init()
- {
- $language = ereg_replace( '[\\|/]', '', getLanguageName());
- if (file_exists($this->getDirectory() . $language . '.php')) {
- include_once($this->getDirectory() . $language . '.php');
- }else {
- include_once($this->getDirectory() . 'english.php');
- }
- }
-
- function event_PreSkinParse($data)
- {
- $this->skinType = $data['type'];
- }
-
- function event_PreItem($data)
- {
- $skinType = $this->skinType;
- $this->nodeId = 0;
- $this->noteList = array();
- $this->itemId = $data['item']->itemid;
- $cData = array(
- &$this,
- 'footnote'
- );
- $iBody =& $data['item']->body;
- $iMore =& $data['item']->more;
- $iBody = preg_replace_callback("/\(\((.*)\)\)/Us",
- $cData,
- $iBody);
- $nsplit = $this->getOption('Split');
- if ($nsplit == 'yes' && $skinType != 'item') {
- if ($footNote = implode('', $this->noteList)) {
- $iBody .= '<ul class="footnote">' . $footNote . '</ul>';
- }
- $this->noteList = array();
- }
- if ($iMore) {
- $iMore = preg_replace_callback("/\(\((.*)\)\)/Us",
- $cData,
- $iMore);
- if ($footNote = implode('', $this->noteList)) {
- $iMore .= '<ul class="footnote">' . $footNote . '</ul>';
- }
- } elseif ($footNote = implode('', $this->noteList)) {
- $iBody .= '<ul class="footnote">' . $footNote . '</ul>';
- }
- }
-
- function footnote($matches){
- global $manager;
- $this->nodeId++;
- $iid = intval($this->itemId);
- $bid = getBlogIDFromItemID($iid);
- $b =& $manager->getBlog($bid);
- $bsname = $b->getShortName();
- if ($this->getOption('CreateTitle') == 'yes') {
- $fNote = htmlspecialchars(strip_tags($matches[1]));
- $fNote = preg_replace('/\r\n/s', '', $fNote);
- $fNote = ' title="' . $fNote . '"';
- }else{
- $fNote = '';
- }
- $footNoteID = $bsname . $iid . '-' . $this->nodeId;
- $note = '<span class="footnote">'
- . '<a'
- . ' href="#' . $footNoteID . '"'
- . $fNote
- . ' name="' . $footNoteID . 'f"'
- . ' id="' . $footNoteID . 'f"'
- . '>'
- . '*' . $this->nodeid
- . '</a>'
- . '</span>';
- $this->noteList[] = '<li>'
- . '<a'
- . ' href="#' . $footNoteID . 'f"'
- . ' name="' . $footNoteID . '"'
- . ' id="' . $footNoteID . '"'
- . '>'
- . _NOTE_WORD . $this->nodeId
- . '</a>'
- . $matches[1]
- . '</li>';
- return $note;
- }
-}