<?php if (!defined('PmWiki')) exit(); /* ** GuiEdit GNU: ** guiedit, copyright ?? pmwiki ?? found on http://www.pmwiki.org/wiki/Cookbook/GuiEdit ** GuiButtons GNU: ** guibuttons.php, copyright 2007 Hans Bracker, this script is an adaptation of guiedit.php, Copyright 2004-2005 Patrick R. Michaud (pmichaud@pobox.com) This file is part of PmWiki; 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 pmwiki.php for full details. This script adds a graphical button bar to a comment text form. Place (:guibuttons:) above the textarea box. Put inside the textarea form id=text like (:input textarea id=text ... This will provide a target for the guiedit javascript. Copy smiley gif images to GUIButton directory. ** Modifications & Merging of GuiEdit & GuiButtons ** by Adam Overton, 2008-06-29 note that this is my personal setup, so several buttons have been left out, of which there are many more to be found on the GuiEdit recipe page... a new variable $Smileys, has been added - set to 'true' or '1' if you'd like the Smileys to show up... Smileys are turned off by default... */ ///////////////////////////////////////////////////////////////// // SECTION TAKEN FROM GuiEdit.php RECIPE // // http://www.pmwiki.org/wiki/Cookbook/GuiEdit // // modified 2008-06-29 by Adam Overton // ///////////////////////////////////////////////////////////////// ## The following lines make additional editing buttons appear in the ## edit page for subheadings, lists, tables, etc. ###### GUI Buttons ###### $GUIButtonDirUrlFmt = $PubDirUrl.'/MyGuiEdit'; $GUIButtonSpace1 = '$GUIButtonDirUrlFmt/space1.gif'; $GUIButtonSpace2 = '$GUIButtonDirUrlFmt/space2.gif'; $GUIButtonSpace3 = '$GUIButtonDirUrlFmt/space3.gif'; $GUIButtonSpace4 = '$GUIButtonDirUrlFmt/space4.gif'; $ArrayCount = 0; $SpaceCount = 0; $GUIButtons['strong'] = array($ArrayCount++, "'''", "'''", '$[Bold Text]', '$GUIButtonDirUrlFmt/bold.gif"$[Bold]"'); $GUIButtons['em'] = array($ArrayCount++, "''", "''", '$[Italic Text]', '$GUIButtonDirUrlFmt/italic.gif"$[Italic]"'); $GUIButtons['underline'] = array($ArrayCount++, '{+', '+}', '$[Underlined Text]', '$GUIButtonDirUrlFmt/underline.gif"$[Underline]"'); $GUIButtons['strikout'] = array($ArrayCount++, '{-', '-}', 'Crossed Out Text', '$GUIButtonDirUrlFmt/strikethrough.gif"Strike Thru"'); $GUIButtons ['sup'] = array($ArrayCount++, "'^", "^'", '$[Superscript]', '$GUIButtonDirUrlFmt/sup.gif"Superscript"'); $GUIButtons ['sub'] = array($ArrayCount++, "'_", "_'", '$[Subscript]', '$GUIButtonDirUrlFmt/sub.gif"Subscript"'); $GUIButtons [$SpaceCount++] = array($ArrayCount++, '', '', '', $GUIButtonSpace1); $GUIButtons ['left'] = array($ArrayCount++, '%25left%25', '', '', '$GUIButtonDirUrlFmt/left.gif"$[Align Left]"'); $GUIButtons ['center'] = array($ArrayCount++, '%25center%25', '', '', '$GUIButtonDirUrlFmt/center.gif"$[Align Center]"'); $GUIButtons ['right'] = array($ArrayCount++, '%25right%25', '', '', '$GUIButtonDirUrlFmt/right.gif"$[Align Right]"'); $GUIButtons ['indent'] = array($ArrayCount++, '\\n->', '\\n', '$[Indented text]', '$GUIButtonDirUrlFmt/indent.gif"$[Indented text]"'); $GUIButtons ['outdent'] = array($ArrayCount++, '\\n-<', '\\n', '$[Hanging indent]', '$GUIButtonDirUrlFmt/outdent.gif"$[Hanging indent]"'); $GUIButtons [$SpaceCount++] = array($ArrayCount++, '', '', '', $GUIButtonSpace1); $GUIButtons ['big'] = array($ArrayCount++, "[+", "+]", '$[Big Text]', '$GUIButtonDirUrlFmt/big.gif"Big Text"'); $GUIButtons ['bigger'] = array($ArrayCount++, '[++', '++]', '$[Bigger Text]', '$GUIButtonDirUrlFmt/bigger.gif"Larger Text"'); $GUIButtons ['small'] = array($ArrayCount++, "[-", "-]", '$[small text]', '$GUIButtonDirUrlFmt/small.gif"$[small text]"'); $GUIButtons ['smaller'] = array($ArrayCount++, '[--', '--]', '$[smaller text]', '$GUIButtonDirUrlFmt/smaller.gif"$[tiny text]"'); $GUIButtons [$SpaceCount++] = array($ArrayCount++, '', '', '', $GUIButtonSpace1); $GUIButtons ['h1'] = array($ArrayCount++, '\\n! ', '\\n', '$[Heading1]', '$GUIButtonDirUrlFmt/h1.gif"$[Heading1]"'); $GUIButtons ['h2'] = array($ArrayCount++, '\\n!! ', '\\n', '$[Heading2]', '$GUIButtonDirUrlFmt/h2.gif"$[Heading2]"'); $GUIButtons ['h3'] = array($ArrayCount++, '\\n!!! ', '\\n', '$[Heading3]', '$GUIButtonDirUrlFmt/h3.gif"$[Heading3]"'); $GUIButtons ['h4'] = array($ArrayCount++, '\\n!!!! ', '\\n', '$[Heading4]', '$GUIButtonDirUrlFmt/h4.gif"$[Heading4]"'); $GUIButtons [$SpaceCount++] = array($ArrayCount++, '', '', '', $GUIButtonSpace1); $GUIButtons ['table'] = array($ArrayCount++, '||border=1 width=80%25\\n||!Hdr ||!Hdr ||!Hdr ||\\n|| || || ||\\n|| || || ||\\n', '', '', '$GUIButtonDirUrlFmt/table.gif"$[Table]"'); #Must be changed to one line! $GUIButtons ['advtable'] = array($ArrayCount++, "(:table border=1 width=80%25:)\\n(:cellnr:)'''Header'''\\n(:cell:)'''Header'''\\n(:cell:)'''Header'''\\n(:cellnr:)\\n(:cell:)\\n(:cell:)\\n(:tableend:)\\n",'', '','$GUIButtonDirUrlFmt/tableadv.gif"$[Advanced table]"'); #Must be changed to one line! $GUIButtons ['sig'] = array($ArrayCount++, '\\n~~~~', '', '', '$GUIButtonDirUrlFmt/sig.gif"$[Stamp your name and current date]"'); #Must be changed to one line - the $ must be escaped ! $GUIButtons [$SpaceCount++] = array($ArrayCount++, '\\n->', '\\n', '$[2nd Line]', '<br \>'); $GUIButtons ['pagelink'] = array($ArrayCount++, '[[',']]', '$[Page link]', '$GUIButtonDirUrlFmt/pagelink.gif"Link to internal page"'); $GUIButtons ['extlink'] = array($ArrayCount++, '[[',']]', '$[http:// | link text]', '$GUIButtonDirUrlFmt/extlink.gif"Link to external page"'); $GUIButtons ['anchor'] = array($ArrayCount++, '[[#', ']]', '$[Anchor Name]', '$GUIButtonDirUrlFmt/anchor.gif"$[Invisible Anchor to Link To]"'); $GUIButtons ['anchorlink'] = array($ArrayCount++, '[[#', '| text]]', '$[Anchor Name]', '$GUIButtonDirUrlFmt/anchorlink.gif"$[Link to Anchor in SAME page]"'); $GUIButtons ['anchor2'] = array($ArrayCount++, '[[', '#AnchorName | text]]', '$[PageName]', '$GUIButtonDirUrlFmt/anchor2.gif"$[Link to Anchor on DIFFERENT page]"'); $GUIButtons [$SpaceCount++] = array($ArrayCount++, '', '', '', $GUIButtonSpace3); $GUIButtons ['attach'] = array($ArrayCount++, 'Attach:','', '$[file.ext]', '$GUIButtonDirUrlFmt/attach.gif"Attach File"'); $GUIButtons ['image'] = array($ArrayCount++, '%25rframe text-align=left height=50px margin-top=7px margin-left=10px%25 [[', " | SameImageName.jpg%22MOUSE HOVER TEXT%22]] | '-SUBTITLE-'", '$[ImageName.jpg]', '$GUIButtonDirUrlFmt/image.gif"Thumbnail of Image floating right"'); $GUIButtons ['ol'] = array($ArrayCount++, '\\n# ', '\\n', '$[Ordered list]', '$GUIButtonDirUrlFmt/ol.gif"$[Ordered (numbered) list]"'); $GUIButtons ['ul'] = array($ArrayCount++, '\\n* ', '\\n', '$[Unordered list]', '$GUIButtonDirUrlFmt/ul.gif"$[Unordered (bullet) list]"'); $GUIButtons ['hr'] = array($ArrayCount++, '\\n----\\n', '', '', '$GUIButtonDirUrlFmt/hr.gif"$[Horizontal rule]"'); $GUIButtons [$SpaceCount++] = array($ArrayCount++, '', '', '', $GUIButtonSpace1); $GUIButtons ['textblue'] = array($ArrayCount++, '%25blue%25', '%25%25', '$[Blue Text]', '$GUIButtonDirUrlFmt/hightextblue.gif"$[Blue Text]"'); $GUIButtons ['textgreen'] = array($ArrayCount++, '%25green%25', '%25%25', '$[Green Text]', '$GUIButtonDirUrlFmt/hightextgreen.gif"$[Green Text]"'); $GUIButtons ['textred'] = array($ArrayCount++, '%25red%25', '%25%25', '$[Red Text]', '$GUIButtonDirUrlFmt/hightextred.gif"$[Red Text]"'); $GUIButtons ['textyellow'] = array($ArrayCount++, '%25yellow%25', '%25%25', '$[Yellow Text]', '$GUIButtonDirUrlFmt/hightextyellow.gif"$[Yellow Text]"'); $GUIButtons [$SpaceCount++] = array($ArrayCount++, '', '', '', $GUIButtonSpace1); $GUIButtons ['bgblue'] = array($ArrayCount++, '%25bgcolor=blue%25', '%25%25', '$[Background Blue]', '$GUIButtonDirUrlFmt/highbgblue.gif"$[Blue Background]"'); $GUIButtons ['bggreen'] = array($ArrayCount++, '%25bgcolor=green%25', '%25%25', '$[Background Green]', '$GUIButtonDirUrlFmt/highbggreen.gif"$[Green Background]"'); $GUIButtons ['bgred'] = array($ArrayCount++, '%25bgcolor=red%25', '%25%25', '$[Background Red]', '$GUIButtonDirUrlFmt/highbgred.gif"$[Red Background]"'); $GUIButtons ['bgyellow'] = array($ArrayCount++, '%25bgcolor=yellow%25', '%25%25', '$[Background Yellow]', '$GUIButtonDirUrlFmt/highbgyellow.gif"$[Yellow Background]"'); $GUIButtons [$SpaceCount++] = array($ArrayCount++, '', '', '',$GUIButtonSpace1); $GUIButtons ['nextline'] = array($ArrayCount++, '\\\\\\\\\\n', '', '', '$GUIButtonDirUrlFmt/nextline.gif"Line Break"'); $GUIButtons ['nextline2'] = array($ArrayCount++, '\\\\\\\\\\\\\\n', '', '', '$GUIButtonDirUrlFmt/nextline2.gif"2 Line Breaks"'); $GUIButtons ['return'] = array($ArrayCount++, '[[<<]] \\n', '', '', '$GUIButtonDirUrlFmt/return.gif"Return"'); ///////////////////////////////////////////////////////////////// // SECTION TAKEN FROM GuiButtons.php RECIPE // // http://www.pmwiki.org/wiki/Cookbook/GuiButtons // // modified 2008-06-29 by Adam Overton // ///////////////////////////////////////////////////////////////// $HTMLHeaderFmt[] = "<script language='javascript' type='text/javascript' src='\$FarmPubDirUrl/guiedit/guiedit.js'></script>\n"; SDV($SmileyButtonsDirUrlFmt,"{$GUIButtonDirUrlFmt}/smileys"); # display smilie images Markup("happy2","block","/\{happy\}/","<img src='$SmileyButtonsDirUrlFmt/happy.gif' border='0' width='15' height='15' alt='happy smiley' title='happy smiley' class='smiley' />"); Markup("wink2","block","/\{wink\}/","<img src='$SmileyButtonsDirUrlFmt/wink.gif' border='0' width='15' height='15' alt='winking smiley' title='winking smiley' class='smiley' />"); Markup("cool","block","/\{cool\}/","<img src='$SmileyButtonsDirUrlFmt/cool.gif' border='0' width='15' height='15' alt='cool smiley' title='cool smiley' class='smiley' />"); Markup("confused","block","/\{confused\}/","<img src='$SmileyButtonsDirUrlFmt/confused.gif' border='0' width='15' height='22' alt='confused smiley' title='confused smiley' class='smiley' />"); Markup("eek","block","/\{eek\}/","<img src='$SmileyButtonsDirUrlFmt/eek.gif' border='0' width='15' height='15' alt='shrieking smiley' title='shrieking smiley' class='smiley' />"); Markup("mad","block","/\{angry\}/","<img src='$SmileyButtonsDirUrlFmt/mad.gif' border='0' width='15' height='15' alt='angry smiley' title='angry smiley' class='smiley' />"); Markup("rolleyes","block","/\{rolleyes\}/","<img src='$SmileyButtonsDirUrlFmt/rolleyes.gif' border='0' width='15' height='15' alt='rolling eyes smiley' title='rolling eyes smiley' class='smiley' />"); Markup("sad2","block","/\{sad\}/","<img src='$SmileyButtonsDirUrlFmt/sad.gif' border='0' width='15' height='15' alt='frowning smiley' title='frowning smiley' class='smiley' />"); Markup("tongue2","block","/\{tongue\}/","<img src='$SmileyButtonsDirUrlFmt/tongue.gif' border='0' width='15' height='15' alt='laughing smiley' title='laughing smiley' class='smiley' />"); Markup("redface2","block","/\{redface\}/","<img src='$SmileyButtonsDirUrlFmt/redface.gif' border='0' width='15' height='15' alt='embarrassed smiley' title='embarrassed smiley' class='smiley' />"); Markup("biggrin2","block","/\{biggrin\}/","<img src='$SmileyButtonsDirUrlFmt/biggrin.gif' border='0' width='15' height='15' alt='grinning smiley' title='grinning smiley' class='smiley' />"); Markup("mad2","block","/\{mad\}/","<img src='$SmileyButtonsDirUrlFmt/mad.gif' border='0' width='15' height='15' alt='angry smiley' title='angry smiley' class='smiley' />"); // *** AO -- THIS ADDS SMILEYS TO THE $GuiButtons ARRAY *** // if($Smileys) { # smiley gui-edit buttons $GUIButtons [$SpaceCount++] = array($ArrayCount++, '', '', '', $GUIButtonSpace1); $GUIButtons['happy'] = array($ArrayCount++, '\{happy\}', '', '', '$SmileyButtonsDirUrlFmt/happy.gif"$[Happy]"'); $GUIButtons [$SpaceCount++] = array($ArrayCount++, '', '', '', "$SmileyButtonsDirUrlFmt/pixspace.gif"); $GUIButtons['wink'] = array($ArrayCount++, '\{wink\}', '', '', '$SmileyButtonsDirUrlFmt/wink.gif"$[Wink]"'); $GUIButtons [$SpaceCount++] = array($ArrayCount++, '', '', '', "$SmileyButtonsDirUrlFmt/pixspace.gif"); $GUIButtons['cool'] = array($ArrayCount++, '\{cool\}', '', '', '$SmileyButtonsDirUrlFmt/cool.gif"$[Cool]"'); $GUIButtons [$SpaceCount++] = array($ArrayCount++, '', '', '', "$SmileyButtonsDirUrlFmt/pixspace.gif"); $GUIButtons['confused'] = array($ArrayCount++, '\{confused\}', '', '', '$SmileyButtonsDirUrlFmt/confused.gif"$[Confused]"'); $GUIButtons [$SpaceCount++] = array($ArrayCount++, '', '', '', "$SmileyButtonsDirUrlFmt/pixspace.gif"); $GUIButtons['eek'] = array($ArrayCount++, '\{eek\}', '', '', '$SmileyButtonsDirUrlFmt/eek.gif"$[Eek]"'); $GUIButtons [$SpaceCount++] = array($ArrayCount++, '', '', '', "$SmileyButtonsDirUrlFmt/pixspace.gif"); $GUIButtons['rolleyes'] = array($ArrayCount++, '\{rolleyes\}', '', '', '$SmileyButtonsDirUrlFmt/rolleyes.gif"$[Roll eyes]"'); $GUIButtons [$SpaceCount++] = array($ArrayCount++, '', '', '', "$SmileyButtonsDirUrlFmt/pixspace.gif"); $GUIButtons['sad'] = array($ArrayCount++, '\{sad\}', '', '', '$SmileyButtonsDirUrlFmt/sad.gif"$[Sad]"'); $GUIButtons [$SpaceCount++] = array($ArrayCount++, '', '', '', "$SmileyButtonsDirUrlFmt/pixspace.gif"); $GUIButtons['mad'] = array($ArrayCount++, '\{mad\}', '', '', '$SmileyButtonsDirUrlFmt/mad.gif"$[Mad]"'); $GUIButtons [$SpaceCount++] = array($ArrayCount++, '', '', '', "$SmileyButtonsDirUrlFmt/pixspace.gif"); $GUIButtons['biggrin'] = array($ArrayCount++, '\{biggrin\}', '', '', '$SmileyButtonsDirUrlFmt/biggrin.gif"$[Big grin]"'); } Markup('guibuttons', 'directives', '/\\(:guibuttons:\\)/e', "Keep(FmtPageName(GUIButtonsMarkup(\$pagename), \$pagename))"); function GUIButtonsMarkup($pagename) { global $GUIButtons, $ArrayCount, $SpaceCount; // *** AO *** // $cmpfn = create_function('$a,$b', 'return $a[0]-$b[0];'); usort($GUIButtons, $cmpfn); $out = "<script language='javascript' type='text/javascript'>\n"; foreach ($GUIButtons as $k => $g) { if (!$g) continue; @list($when, $mopen, $mclose, $mtext, $tag, $mkey) = $g; if ($tag{0} == '<') { $out .= "document.write(\"$tag\");\n"; continue; } if (preg_match('/^(.*\\.(gif|jpg|png))("([^"]+)")?$/', $tag, $m)) { $title = (@$m[4] > '') ? "title='{$m[4]}'" : ''; $tag = "<img src='{$m[1]}' $title style='border:0px;' />"; } $mopen = str_replace(array('\\', "'"), array('\\\\', "\\\\'"), $mopen); $mclose = str_replace(array('\\', "'"), array('\\\\', "\\\\'"), $mclose); $mtext = str_replace(array('\\', "'"), array('\\\\', "\\\\'"), $mtext); $out .= "insButton(\"$mopen\", \"$mclose\", '$mtext', \"$tag\", \"$mkey\");\n"; } $out .= '</script>'; return $out; }