*/ include_once(DOKU_PLUGIN . 'cite/code.php'); //this ensures the functions in code.php are always available class action_plugin_cite extends DokuWiki_Action_Plugin { /** * register the eventhandlers * * @param Doku_Event_Handler $controller */ public function register(Doku_Event_Handler $controller) { $controller->register_hook('ACTION_ACT_PREPROCESS', 'BEFORE', $this, '_handle_act', array()); $controller->register_hook('TPL_ACT_UNKNOWN', 'BEFORE', $this, '_handle_tpl_act', array()); $controller->register_hook('MENU_ITEMS_ASSEMBLY', 'AFTER', $this, 'addsvgbutton', array()); } public function _handle_act($event, $param) { if ($event->data != 'cite') { return; } $event->preventDefault(); } public function _handle_tpl_act($event, $param) { if ($event->data != 'cite') { return; } $event->preventDefault(); global $conf, $ID, $REV, $INFO; //get always a revision id $revisionId = $REV; //$REV includes converted DATE_AT as well if (!$revisionId) { $revisionId = $INFO['lastmod']; } $pagename = tpl_pagetitle($ID, true); $permanentUrl = wl($ID, ['rev' => $revisionId], true); $author = $this->getConf('cite_author'); if ($author == '') { $author = 'Anonymous Contributors'; } $publisher = $this->getConf('cite_publisher'); if ($publisher == '') { $publisher = hsc($conf['title']); } $revisionDateSummary = date('j F Y H:i T', $revisionId); $revisionDateYear = date('Y', $revisionId); $revisionDateMLA = date('j M Y, H:i T', $revisionId); $revisionDateMHRA = date('j F Y, H:i T', $revisionId); $revisionDateCBECSE = date('Y M j, H:i T', $revisionId); $revisionDateAMA = date('F j, Y, H:i T', $revisionId); $retrieveDateSummary = date('j F Y H:i T'); $retrieveDateAPA = date('H:i, j F, Y'); $retrieveDateMLA = date('j M Y, H:i'); $retrieveDateMHRA = date('j F Y'); $retrieveDateChicago = date('F j, Y'); $retrieveDateCBECSE = date('Y M j'); $retrieveDateBluebook = date('F j, Y'); $retrieveDataAMA = date('F j, Y'); $retrieveDataBibTeX = date('j-F-Y'); echo <<< EOT
Please remember to check with your standards guide or professor’s guidelines for the exact syntax to suit your needs.
$author ($revisionDateYear). $pagename. $publisher. Retrieved $retrieveDateAPA from $permanentUrl.
“$pagename.” $publisher. $revisionDateMLA. $retrieveDateMLA <$permanentUrl>.
$author, ‘$pagename’, $publisher, $revisionDateMHRA, <$permanentUrl> [accessed $retrieveDateMHRA]
$author, “$pagename,” $publisher, $permanentUrl (accessed $retrieveDateChicago).
$author. $pagename [Internet]. $publisher; $revisionDateCBECSE [cited $retrieveDateCBECSE]. Available from: $permanentUrl.
$pagename, $permanentUrl (last visited $retrieveDateBluebook).
$author. $pagename. $publisher. $revisionDateAMA. Available at: $permanentUrl. Accessed $retrieveDataAMA.
@misc{ wiki:xxx, author = "$author", title = "$pagename --- $publisher", year = "$revisionDateYear", url = "$permanentUrl", note = "[Online; accessed $retrieveDataBibTeX]" }
When using the LaTeX package url (\usepackage{url}
somewhere in the preamble), which tends to give much more nicely
formatted web addresses, the following may be preferred:
@misc{ wiki:xxx, author = "$author", title = "$pagename --- $publisher", year = "$revisionDateYear", url = "\url{{$permanentUrl}}", note = "[Online; accessed $retrieveDataBibTeX]" }