-<?php
-/**
- * Nucleus: PHP/MySQL Weblog CMS (http://nucleuscms.org/)
- * Copyright (C) 2002-2004 The Nucleus Group
- *
- * 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)
- *
- * $Id: PAGEFACTORY.php,v 1.1.1.1 2005-02-28 07:14:51 kimitake Exp $
- */
-
-/**
- * The formfactory class can be used to insert add/edit item forms into
- * admin area, bookmarklet, skins or any other places where such a form
- * might be needed
- */
-class PAGEFACTORY extends BaseActions {
-
- // ref to the blog object for which an add:edit form is created
- var $blog;
-
- // allowed actions (for parser)
- var $actions;
-
- // allowed types of forms (bookmarklet/admin)
- var $allowedTypes;
- var $type; // one of the types in $allowedTypes
-
- // 'add' or 'edit'
- var $method;
-
- // info to fill out in the form (e.g. catid, itemid, ...)
- var $variables;
-
- /**
- * creates a new PAGEFACTORY object
- */
- function PAGEFACTORY($blogid) {
- // call constructor of superclass first
- $this->BaseActions();
-
- global $manager;
- $this->blog =& $manager->getBlog($blogid);
-
- // TODO: move the definition of actions to the createXForm
- // methods
- $this->actions = Array(
- 'actionurl',
- 'title',
- 'body',
- 'more',
- 'blogid',
- 'bloglink',
- 'blogname',
- 'authorname',
- 'checkedonval',
- 'helplink',
- 'currenttime',
- 'itemtime',
- 'init',
- 'text',
- 'jsinput',
- 'jsbuttonbar',
- 'categories',
- 'contents',
- 'ifblogsetting',
- 'ifitemproperty',
- 'else',
- 'endif',
- 'pluginextras',
- 'itemoptions',
- 'extrahead',
- 'ticket'
- );
-
- // TODO: maybe add 'skin' later on?
- // TODO: maybe add other pages from admin area
- $this->allowedTypes = Array('bookmarklet','admin');
- }
-
- /**
- * creates a "add item" form for a given type of page
- *
- * @param type
- * 'admin' or 'bookmarklet'
- */
- function createAddForm($type, $contents = array()) {
- if (!in_array($type, $this->allowedTypes))
- return;
- $this->type = $type;
- $this->method = 'add';
-
- global $manager;
- $manager->notify('PreAddItemForm', array('contents' => &$contents, 'blog' => &$this->blog));
-
- $this->createForm($contents);
- }
-
- /**
- * creates a "add item" form for a given type of page
- *
- * @param type
- * 'admin' or 'bookmarklet'
- * @param contents
- * An associative array
- * 'author' => author
- * '' =>
- */
- function createEditForm($type, $contents) {
- if (!in_array($type, $this->allowedTypes))
- return;
- $this->type = $type;
- $this->method = 'edit';
- $this->createForm($contents);
- }
-
- /**
- * (private) creates a form for a given type of page
- */
- function createForm($contents) {
- // save contents
- $this->variables = $contents;
-
- // get template to use
- $template = $this->getTemplateFor($this->type);
-
- // use the PARSER engine to parse that template
- $parser =& new PARSER($this->actions, $this);
- $parser->parse($template);
- }
-
- /**
- * returns an appropriate template
- */
- function getTemplateFor($type) {
- global $DIR_LIBS;
-
- $filename = $DIR_LIBS . 'include/' . $this->type . '-' . $this->method . '.template';
-
- if (!file_exists($filename))
- return '';
-
- $fsize = filesize($filename);
- if ($fsize <= 0)
- return '';
-
- // read file and return it
- $fd = fopen ($filename, 'r');
- $contents = fread ($fd, $fsize);
- fclose ($fd);
-
- return $contents;
-
- }
-
- // create category dropdown box
- function parse_categories($startidx = 0) {
- if ($this->variables['catid'])
- $catid = $this->variables['catid']; // on edit item
- else
- $catid = $this->blog->getDefaultCategory(); // on add item
-
- ADMIN::selectBlogCategory('catid',$catid,$startidx,1,$this->blog->getID());
- }
-
- function parse_blogid() {
- echo $this->blog->getID();
- }
-
- function parse_blogname() {
- echo $this->blog->getName();
- }
-
- function parse_bloglink() {
- echo '<a href="'.htmlspecialchars($this->blog->getURL()).'">'.$this->blog->getName().'</a>';
- }
-
- function parse_authorname() {
- // don't use on add item?
- global $member;
- echo $member->getDisplayName();
- }
-
- function parse_title() {
- echo $this->contents['title'];
- }
-
- /**
- * Indicates the start of a conditional block of data. It will be added to
- * the output only if the blogsetting with the given name equals the
- * given value (default for value = 1 = true)
- *
- * the name of the blogsetting is the column name in the nucleus_blog table
- *
- * the conditional block ends with an <endif> var
- */
- function parse_ifblogsetting($name,$value=1) {
- $this->_addIfCondition(($this->blog->getSetting($name) == $value));
- }
-
- function parse_ifitemproperty($name,$value=1) {
- $this->_addIfCondition(($this->variables[$name] == $value));
- }
-
- function parse_helplink($topic) {
- help($topic);
- }
-
- // for future items
- function parse_currenttime($what) {
- $nu = getdate($this->blog->getCorrectTime());
- echo $nu[$what];
- }
-
- // date change on edit item
- function parse_itemtime($what) {
- $itemtime = getdate($this->variables['timestamp']);
- echo $itemtime[$what];
- }
-
- // some init stuff for all forms
- function parse_init() {
- $authorid = ($this->method == 'edit') ? $this->variables['authorid'] : '';
- $this->blog->insertJavaScriptInfo($authorid);
- }
-
- // on bookmarklets only: insert extra html header information (by plugins)
- function parse_extrahead() {
- global $manager;
-
- $extrahead = '';
-
- $manager->notify(
- 'BookmarkletExtraHead',
- array(
- 'extrahead' => &$extrahead
- )
- );
-
- echo $extrahead;
- }
-
- // inserts some localized text
- function parse_text($which) {
- // constant($which) only available from 4.0.4 :(
- if (defined($which)) {
- eval("echo $which;");
- } else {
- echo $which; // this way we see where definitions are missing
- }
-
- }
-
- function parse_contents($which) {
- echo htmlspecialchars($this->variables[$which]);
- }
-
- function parse_checkedonval($value, $name) {
- if ($this->variables[$name] == $value)
- echo "checked='checked'";
- }
-
- // extra javascript for input and textarea fields
- function parse_jsinput($which) {
- global $CONF;
- ?>
- name="<?php echo $which?>"
- id="input<?php echo $which?>"
- <?php
- if ($CONF['DisableJsTools'] != 1) {
- ?>
- onkeyup="storeCaret(this); updPreview('<?php echo $which?>');"
- onclick="storeCaret(this);"
- onselect="storeCaret(this);"
-
- <?php
- }
-
- if ($CONF['DisableJsTools'] == 0) {
- ?>
- onkeypress="shortCuts();"
- <?php }
- }
-
- // shows the javascript button bar
- function parse_jsbuttonbar($extrabuttons = "") {
- global $CONF;
- switch($CONF['DisableJsTools']) {
-
- case "0":
- echo '<div class="jsbuttonbar">';
-
- $this->_jsbutton('cut','cutThis()',_ADD_CUT_TT . " (Ctrl + X)");
- $this->_jsbutton('copy','copyThis()',_ADD_COPY_TT . " (Ctrl + C)");
- $this->_jsbutton('paste','pasteThis()',_ADD_PASTE_TT . " (Ctrl + V)");
- $this->_jsbuttonspacer();
- $this->_jsbutton('bold',"boldThis()",_ADD_BOLD_TT ." (Ctrl + Shift + B)");
- $this->_jsbutton('italic',"italicThis()",_ADD_ITALIC_TT ." (Ctrl + Shift + I)");
- $this->_jsbutton('link',"ahrefThis()",_ADD_HREF_TT ." (Ctrl + Shift + A)");
- $this->_jsbuttonspacer();
- $this->_jsbutton('alignleft',"alignleftThis()",_ADD_ALIGNLEFT_TT);
- $this->_jsbutton('alignright',"alignrightThis()",_ADD_ALIGNRIGHT_TT);
- $this->_jsbutton('aligncenter',"aligncenterThis()",_ADD_ALIGNCENTER_TT);
- $this->_jsbuttonspacer();
- $this->_jsbutton('left',"leftThis()",_ADD_LEFT_TT);
- $this->_jsbutton('right',"rightThis()",_ADD_RIGHT_TT);
-
-
- if ($extrabuttons) {
- $btns = explode('+',$extrabuttons);
- $this->_jsbuttonspacer();
- foreach ($btns as $button) {
- switch($button) {
- case "media":
- $this->_jsbutton('media',"addMedia()",_ADD_MEDIA_TT . " (Ctrl + Shift + M)");
- break;
- case "preview":
- $this->_jsbutton('preview',"showedit()",_ADD_PREVIEW_TT);
- break;
- }
- }
- }
-
- echo '</div>';
-
- break;
- case "2":
- echo '<div class="jsbuttonbar">';
-
- $this->_jsbutton('bold',"boldThis()",_ADD_BOLD_TT .'');
- $this->_jsbutton('italic',"italicThis()",_ADD_ITALIC_TT .'');
- $this->_jsbutton('link',"ahrefThis()",_ADD_HREF_TT .'');
- $this->_jsbuttonspacer();
- $this->_jsbutton('alignleft',"alignleftThis()",_ADD_ALIGNLEFT_TT);
- $this->_jsbutton('alignright',"alignrightThis()",_ADD_ALIGNRIGHT_TT);
- $this->_jsbutton('aligncenter',"aligncenterThis()",_ADD_ALIGNCENTER_TT);
- $this->_jsbuttonspacer();
- $this->_jsbutton('left',"leftThis()",_ADD_LEFT_TT);
- $this->_jsbutton('right',"rightThis()",_ADD_RIGHT_TT);
-
-
- if ($extrabuttons) {
- $btns = explode('+',$extrabuttons);
- $this->_jsbuttonspacer();
- foreach ($btns as $button) {
- switch($button) {
- case "media":
- $this->_jsbutton('media',"addMedia()",'');
- break;
- }
- }
- }
-
- echo '</div>';
-
- break;
- }
- }
-
- /**
- * Allows plugins to add their own custom fields
- */
- function parse_pluginextras() {
- global $manager;
-
- switch ($this->method) {
- case 'add':
- $manager->notify('AddItemFormExtras',
- array(
- 'blog' => &$this->blog
- )
- );
- break;
- case 'edit':
- $manager->notify('EditItemFormExtras',
- array(
- 'variables' => $this->variables,
- 'blog' => &$this->blog,
- 'itemid' => $this->variables['itemid']
- )
- );
- break;
- }
- }
-
- /**
- * Adds the itemOptions of a plugin to a page
- * @author TeRanEX
- */
- function parse_itemoptions() {
- global $itemid;
- ADMIN::_insertPluginOptions('item', $itemid);
- }
-
- function parse_ticket() {
- global $manager;
- $manager->addTicketHidden();
- }
-
- /**
- * convenience method
- */
- function _jsbutton($type, $code ,$tooltip) {
- ?>
- <span class="jsbutton"
- onmouseover="BtnHighlight(this);"
- onmouseout="BtnNormal(this);"
- onclick="<?php echo $code?>" >
- <img src="images/button-<?php echo $type?>.gif" alt="<?php echo $tooltip?>" width="16" height="16"/>
- </span>
- <?php }
-
- function _jsbuttonspacer() {
- echo '<span class="jsbuttonspacer"></span>';
- }
-
-}
-
- ?>
\ No newline at end of file
+<?php\r
+/*\r
+ * Nucleus: PHP/MySQL Weblog CMS (http://nucleuscms.org/)\r
+ * Copyright (C) 2002-2010 The Nucleus Group\r
+ *\r
+ * This program is free software; you can redistribute it and/or\r
+ * modify it under the terms of the GNU General Public License\r
+ * as published by the Free Software Foundation; either version 2\r
+ * of the License, or (at your option) any later version.\r
+ * (see nucleus/documentation/index.html#license for more info)\r
+ */\r
+/**\r
+ * @license http://nucleuscms.org/license.txt GNU General Public License\r
+ * @copyright Copyright (C) 2002-2010 The Nucleus Group\r
+ * @version $Id$\r
+ * $NucleusJP: PAGEFACTORY.php,v 1.8.2.2 2007/10/30 16:12:27 shizuki Exp $\r
+ */\r
+\r
+/**\r
+ * The formfactory class can be used to insert add/edit item forms into\r
+ * admin area, bookmarklet, skins or any other places where such a form\r
+ * might be needed\r
+ */\r
+class PAGEFACTORY extends BaseActions {\r
+\r
+ // ref to the blog object for which an add:edit form is created\r
+ var $blog;\r
+\r
+ // allowed actions (for parser)\r
+ var $actions;\r
+\r
+ // allowed types of forms (bookmarklet/admin)\r
+ var $allowedTypes;\r
+ var $type; // one of the types in $allowedTypes\r
+\r
+ // 'add' or 'edit'\r
+ var $method;\r
+\r
+ // info to fill out in the form (e.g. catid, itemid, ...)\r
+ var $variables;\r
+\r
+ /**\r
+ * creates a new PAGEFACTORY object\r
+ */\r
+ function PAGEFACTORY($blogid) {\r
+ // call constructor of superclass first\r
+ $this->BaseActions();\r
+\r
+ global $manager;\r
+ $this->blog =& $manager->getBlog($blogid);\r
+\r
+ // TODO: move the definition of actions to the createXForm\r
+ // methods\r
+ $this->actions = Array(\r
+ 'actionurl',\r
+ 'title',\r
+ 'body',\r
+ 'more',\r
+ 'blogid',\r
+ 'bloglink',\r
+ 'blogname',\r
+ 'authorname',\r
+ 'checkedonval',\r
+ 'helplink',\r
+ 'currenttime',\r
+ 'itemtime',\r
+ 'init',\r
+ 'text',\r
+ 'jsinput',\r
+ 'jsbuttonbar',\r
+ 'categories',\r
+ 'contents',\r
+ 'ifblogsetting',\r
+ 'ifitemproperty',\r
+ 'else',\r
+ 'endif',\r
+ 'pluginextras',\r
+ 'itemoptions',\r
+ 'extrahead',\r
+ 'ticket',\r
+ 'autosave',\r
+ 'autosaveinfo',\r
+ 'ifautosave'\r
+ );\r
+\r
+ // TODO: maybe add 'skin' later on?\r
+ // TODO: maybe add other pages from admin area\r
+ $this->allowedTypes = Array('bookmarklet','admin');\r
+ }\r
+\r
+ /**\r
+ * creates a "add item" form for a given type of page\r
+ *\r
+ * @param type\r
+ * 'admin' or 'bookmarklet'\r
+ */\r
+ function createAddForm($type, $contents = array()) {\r
+ if (!in_array($type, $this->allowedTypes))\r
+ return;\r
+ $this->type = $type;\r
+ $this->method = 'add';\r
+\r
+ global $manager;\r
+ $manager->notify('PreAddItemForm', array('contents' => &$contents, 'blog' => &$this->blog));\r
+\r
+ $this->createForm($contents);\r
+ }\r
+\r
+ /**\r
+ * creates a "add item" form for a given type of page\r
+ *\r
+ * @param type\r
+ * 'admin' or 'bookmarklet'\r
+ * @param contents\r
+ * An associative array\r
+ * 'author' => author\r
+ * '' =>\r
+ */\r
+ function createEditForm($type, $contents) {\r
+ if (!in_array($type, $this->allowedTypes))\r
+ return;\r
+ $this->type = $type;\r
+ $this->method = 'edit';\r
+ $this->createForm($contents);\r
+ }\r
+\r
+ /**\r
+ * (private) creates a form for a given type of page\r
+ */\r
+ function createForm($contents) {\r
+ // save contents\r
+ $this->variables = $contents;\r
+\r
+ // get template to use\r
+ $template = $this->getTemplateFor($this->type);\r
+\r
+ // use the PARSER engine to parse that template\r
+ $parser =& new PARSER($this->actions, $this);\r
+ $parser->parse($template);\r
+ }\r
+\r
+ /**\r
+ * returns an appropriate template\r
+ */\r
+ function getTemplateFor($type) {\r
+ global $DIR_LIBS;\r
+\r
+ $filename = $DIR_LIBS . 'include/' . $this->type . '-' . $this->method . '.template';\r
+\r
+ if (!file_exists($filename))\r
+ return '';\r
+\r
+ $fsize = filesize($filename);\r
+ if ($fsize <= 0)\r
+ return '';\r
+\r
+ // read file and return it\r
+ $fd = fopen ($filename, 'r');\r
+ $contents = fread ($fd, $fsize);\r
+ fclose ($fd);\r
+\r
+ return $contents;\r
+\r
+ }\r
+\r
+ // create category dropdown box\r
+ function parse_categories($startidx = 0) {\r
+ if ($this->variables['catid'])\r
+ $catid = $this->variables['catid']; // on edit item\r
+ else\r
+ $catid = $this->blog->getDefaultCategory(); // on add item\r
+\r
+ ADMIN::selectBlogCategory('catid',$catid,$startidx,1,$this->blog->getID());\r
+ }\r
+\r
+ function parse_blogid() {\r
+ echo $this->blog->getID();\r
+ }\r
+\r
+ function parse_blogname() {\r
+ echo $this->blog->getName();\r
+ }\r
+\r
+ function parse_bloglink() {\r
+ echo '<a href="'.htmlspecialchars($this->blog->getURL()).'">'.htmlspecialchars($this->blog->getName()).'</a>';\r
+ }\r
+\r
+ function parse_authorname() {\r
+ // don't use on add item?\r
+ global $member;\r
+ echo $member->getDisplayName();\r
+ }\r
+\r
+ function parse_title() {\r
+ echo $this->contents['title'];\r
+ }\r
+\r
+ /**\r
+ * Indicates the start of a conditional block of data. It will be added to\r
+ * the output only if the blogsetting with the given name equals the\r
+ * given value (default for value = 1 = true)\r
+ *\r
+ * the name of the blogsetting is the column name in the nucleus_blog table\r
+ *\r
+ * the conditional block ends with an <endif> var\r
+ */\r
+ function parse_ifblogsetting($name,$value=1) {\r
+ $this->_addIfCondition(($this->blog->getSetting($name) == $value));\r
+ }\r
+\r
+ function parse_ifitemproperty($name,$value=1) {\r
+ $this->_addIfCondition(($this->variables[$name] == $value));\r
+ }\r
+\r
+ function parse_ifautosave($name,$value=1) {\r
+ global $member;\r
+ $this->_addIfCondition($member->getAutosave() == $value);\r
+ }\r
+\r
+ function parse_helplink($topic) {\r
+ help($topic);\r
+ }\r
+\r
+ // for future items\r
+ function parse_currenttime($what) {\r
+ $nu = getdate($this->blog->getCorrectTime());\r
+ echo $nu[$what];\r
+ }\r
+\r
+ // date change on edit item\r
+ function parse_itemtime($what) {\r
+ $itemtime = getdate($this->variables['timestamp']);\r
+ echo $itemtime[$what];\r
+ }\r
+\r
+ // some init stuff for all forms\r
+ function parse_init() {\r
+ $authorid = ($this->method == 'edit') ? $this->variables['authorid'] : '';\r
+ $this->blog->insertJavaScriptInfo($authorid);\r
+ }\r
+\r
+ // on bookmarklets only: insert extra html header information (by plugins)\r
+ function parse_extrahead() {\r
+ global $manager;\r
+\r
+ $extrahead = '';\r
+\r
+ $manager->notify(\r
+ 'BookmarkletExtraHead',\r
+ array(\r
+ 'extrahead' => &$extrahead\r
+ )\r
+ );\r
+\r
+ echo $extrahead;\r
+ }\r
+\r
+ // inserts some localized text\r
+ function parse_text($which) {\r
+ // constant($which) only available from 4.0.4 :(\r
+ if (defined($which)) {\r
+ eval("echo $which;");\r
+ } else {\r
+ echo $which; // this way we see where definitions are missing\r
+ }\r
+\r
+ }\r
+\r
+ function parse_contents($which) {\r
+ if (!isset($this->variables[$which])) $this->variables[$which] = '';\r
+ echo htmlspecialchars($this->variables[$which],ENT_QUOTES);\r
+ }\r
+\r
+ function parse_checkedonval($value, $name) {\r
+ if (!isset($this->variables[$name])) $this->variables[$name] = '';\r
+ if ($this->variables[$name] == $value)\r
+ echo 'checked="checked"';\r
+ }\r
+\r
+ // extra javascript for input and textarea fields\r
+ function parse_jsinput($which) {\r
+ global $CONF, $member;\r
+ \r
+ $attributes = " name=\"{$which}\"";\r
+ $attributes .= " id=\"input{$which}\"";\r
+ \r
+ if ($CONF['DisableJsTools'] != 1) {\r
+ $attributes .= ' onclick="storeCaret(this);"';\r
+ $attributes .= ' onselect="storeCaret(this);"';\r
+ if ($member->getAutosave()) {\r
+ $attributes .= " onkeyup=\"storeCaret(this); updPreview('{$which}'); doMonitor();\"";\r
+ } else {\r
+ $attributes .= " onkeyup=\"storeCaret(this); updPreview('{$which}');\"";\r
+ }\r
+ }\r
+ else {\r
+ if ($CONF['DisableJsTools'] == 0) {\r
+ $attributes .= ' onkeypress="shortCuts();"';\r
+ }\r
+ if ($member->getAutosave()) {\r
+ $attributes .= ' onkeyup="doMonitor();"';\r
+ }\r
+ }\r
+ echo $attributes;\r
+ }\r
+\r
+ // shows the javascript button bar\r
+ function parse_jsbuttonbar($extrabuttons = "") {\r
+ global $CONF;\r
+ switch($CONF['DisableJsTools']) {\r
+\r
+ case "0":\r
+ echo '<div class="jsbuttonbar">';\r
+\r
+ $this->_jsbutton('cut','cutThis()',_ADD_CUT_TT . " (Ctrl + X)");\r
+ $this->_jsbutton('copy','copyThis()',_ADD_COPY_TT . " (Ctrl + C)");\r
+ $this->_jsbutton('paste','pasteThis()',_ADD_PASTE_TT . " (Ctrl + V)");\r
+ $this->_jsbuttonspacer();\r
+ $this->_jsbutton('bold',"boldThis()",_ADD_BOLD_TT ." (Ctrl + Shift + B)");\r
+ $this->_jsbutton('italic',"italicThis()",_ADD_ITALIC_TT ." (Ctrl + Shift + I)");\r
+ $this->_jsbutton('link',"ahrefThis()",_ADD_HREF_TT ." (Ctrl + Shift + A)");\r
+ $this->_jsbuttonspacer();\r
+ $this->_jsbutton('alignleft',"alignleftThis()",_ADD_ALIGNLEFT_TT);\r
+ $this->_jsbutton('alignright',"alignrightThis()",_ADD_ALIGNRIGHT_TT);\r
+ $this->_jsbutton('aligncenter',"aligncenterThis()",_ADD_ALIGNCENTER_TT);\r
+ $this->_jsbuttonspacer();\r
+ $this->_jsbutton('left',"leftThis()",_ADD_LEFT_TT);\r
+ $this->_jsbutton('right',"rightThis()",_ADD_RIGHT_TT);\r
+\r
+\r
+ if ($extrabuttons) {\r
+ $btns = explode('+',$extrabuttons);\r
+ $this->_jsbuttonspacer();\r
+ foreach ($btns as $button) {\r
+ switch($button) {\r
+ case "media":\r
+ $this->_jsbutton('media',"addMedia()",_ADD_MEDIA_TT . " (Ctrl + Shift + M)");\r
+ break;\r
+ case "preview":\r
+ $this->_jsbutton('preview',"showedit()",_ADD_PREVIEW_TT);\r
+ break;\r
+ }\r
+ }\r
+ }\r
+\r
+ echo '</div>';\r
+\r
+ break;\r
+ case "2":\r
+ echo '<div class="jsbuttonbar">';\r
+\r
+ $this->_jsbutton('bold',"boldThis()",_ADD_BOLD_TT);\r
+ $this->_jsbutton('italic',"italicThis()",_ADD_ITALIC_TT);\r
+ $this->_jsbutton('link',"ahrefThis()",_ADD_HREF_TT);\r
+ $this->_jsbuttonspacer();\r
+ $this->_jsbutton('alignleft',"alignleftThis()",_ADD_ALIGNLEFT_TT);\r
+ $this->_jsbutton('alignright',"alignrightThis()",_ADD_ALIGNRIGHT_TT);\r
+ $this->_jsbutton('aligncenter',"aligncenterThis()",_ADD_ALIGNCENTER_TT);\r
+ $this->_jsbuttonspacer();\r
+ $this->_jsbutton('left',"leftThis()",_ADD_LEFT_TT);\r
+ $this->_jsbutton('right',"rightThis()",_ADD_RIGHT_TT);\r
+\r
+\r
+ if ($extrabuttons) {\r
+ $btns = explode('+',$extrabuttons);\r
+ $this->_jsbuttonspacer();\r
+ foreach ($btns as $button) {\r
+ switch($button) {\r
+ case "media":\r
+ $this->_jsbutton('media',"addMedia()",_ADD_MEDIA_TT);\r
+ break;\r
+ }\r
+ }\r
+ }\r
+\r
+ echo '</div>';\r
+\r
+ break;\r
+ }\r
+ }\r
+\r
+ /**\r
+ * Allows plugins to add their own custom fields\r
+ */\r
+ function parse_pluginextras() {\r
+ global $manager;\r
+\r
+ switch ($this->method) {\r
+ case 'add':\r
+ $manager->notify('AddItemFormExtras',\r
+ array(\r
+ 'blog' => &$this->blog\r
+ )\r
+ );\r
+ break;\r
+ case 'edit':\r
+ $manager->notify('EditItemFormExtras',\r
+ array(\r
+ 'variables' => $this->variables,\r
+ 'blog' => &$this->blog,\r
+ 'itemid' => $this->variables['itemid']\r
+ )\r
+ );\r
+ break;\r
+ }\r
+ }\r
+\r
+ /**\r
+ * Adds the itemOptions of a plugin to a page\r
+ * @author TeRanEX\r
+ */\r
+ function parse_itemoptions() {\r
+ global $itemid;\r
+ ADMIN::_insertPluginOptions('item', $itemid);\r
+ }\r
+\r
+ function parse_ticket() {\r
+ global $manager;\r
+ $manager->addTicketHidden();\r
+ }\r
+\r
+ /**\r
+ * convenience method\r
+ */\r
+ function _jsbutton($type, $code ,$tooltip) {\r
+ ?>\r
+ <span class="jsbutton"\r
+ onmouseover="BtnHighlight(this);"\r
+ onmouseout="BtnNormal(this);"\r
+ onclick="<?php echo $code?>" >\r
+ <img src="images/button-<?php echo $type?>.gif" alt="<?php echo $tooltip?>" title="<?php echo $tooltip?>" width="16" height="16"/>\r
+ </span>\r
+ <?php }\r
+ \r
+ function _jsbuttonspacer() {\r
+ echo '<span class="jsbuttonspacer"> </span>';\r
+ }\r
+\r
+}\r
+\r
+?>
\ No newline at end of file