[php-blog-cvs] serendipity NEWS,1.78,1.79 db_update-0.5-0.5.1.sql,1.4,1.5 serendipity_config.inc.php
A reliable, secure & extensible PHP blog | Not mainstream since 2002
Brought to you by:
garvinhicking,
jhermanns
From: <gar...@us...> - 2004-02-26 11:45:37
|
Update of /cvsroot/php-blog/serendipity In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3764 Modified Files: NEWS db_update-0.5-0.5.1.sql serendipity_config.inc.php serendipity_config_local.tpl serendipity_functions.inc.php serendipity_plugin_api.php serendipity_sidebar_items.php Log Message: We now have markup event plugins, thanks to Colin Viebrock. BBCode, Textile, Wiki are working as expected. YOU NEED TO INSERT MARKUP PLUGINS TO GET MARKUP APPLIED! See db-update.sql. EEXPERIMENTAL and may break things. Please test and report back. :-) Index: NEWS =================================================================== RCS file: /cvsroot/php-blog/serendipity/NEWS,v retrieving revision 1.78 retrieving revision 1.79 diff -u -d -r1.78 -r1.79 --- NEWS 25 Feb 2004 17:42:48 -0000 1.78 +++ NEWS 26 Feb 2004 11:37:42 -0000 1.79 @@ -2,6 +2,7 @@ Version 0.5.1 () ------------------------------------ + * Markup can be applied individually from a list of available transformations: BBCode, Wiki, Textile, s9y markup, Emoticons, nl2br. Multiple transformations are possible. (Colin Viebrock, garvinhicking) * Allow for each language to have its own charset (tomsommer) * Now able to preview comments. (garvinhicking) * Fixed bug that removed admin-cookie when you didn't check the "remember comment" box on submitting comments to your own blog (garvinhicking) Index: db_update-0.5-0.5.1.sql =================================================================== RCS file: /cvsroot/php-blog/serendipity/db_update-0.5-0.5.1.sql,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- db_update-0.5-0.5.1.sql 18 Feb 2004 11:48:23 -0000 1.4 +++ db_update-0.5-0.5.1.sql 26 Feb 2004 11:37:42 -0000 1.5 @@ -36,3 +36,12 @@ CREATE INDEX timestamp ON serendipity_entries (timestamp); CREATE INDEX last_modified ON serendipity_entries (last_modified); UPDATE serendipity_entries SET last_modified = timestamp; + +/* To restore the usual s9y markup methods, you either need to manually insert those four event plugins: + nl2br, s9ymarkup, emoticate, trackexits + or use this SQL to insert them automatically: +*/ +INSERT INTO serendipity_plugins(name, placement, sort_order) VALUES ('serendipity_event_nl2br:39979424fea674e78399659e67edaf12', 'event', 10); +INSERT INTO serendipity_plugins(name, placement, sort_order) VALUES ('serendipity_event_s9ymarkup:fdd8bf23ff500827cf76d7d31957d3c8', 'event', 11); +INSERT INTO serendipity_plugins(name, placement, sort_order) VALUES ('serendipity_event_emoticate:e30b433546aa10a632b0d703ebe1aa29', 'event', 12); +INSERT INTO serendipity_plugins(name, placement, sort_order) VALUES ('serendipity_event_trackexits:25e6d8eb7d662936abb6454956aaa8ab', 'event', 13); \ No newline at end of file Index: serendipity_config.inc.php =================================================================== RCS file: /cvsroot/php-blog/serendipity/serendipity_config.inc.php,v retrieving revision 1.53 retrieving revision 1.54 diff -u -d -r1.53 -r1.54 --- serendipity_config.inc.php 25 Feb 2004 17:42:48 -0000 1.53 +++ serendipity_config.inc.php 26 Feb 2004 11:37:42 -0000 1.54 @@ -106,24 +106,6 @@ $serendipity['baseURL'] = 'http://' . $_SERVER['HTTP_HOST'] . $serendipity['serendipityHTTPPath']; } -// A Set of emoticons to rewrite -$serendipity['smiles'] = array( ":'(" => $serendipity['baseURL'] . 'pixel/cry_smile.gif', - ':-)' => $serendipity['baseURL'] . 'pixel/regular_smile.gif', - ':-O' => $serendipity['baseURL'] . 'pixel/embaressed_smile.gif', - ':O' => $serendipity['baseURL'] . 'pixel/embaressed_smile.gif', - ':-(' => $serendipity['baseURL'] . 'pixel/sad_smile.gif', - ':(' => $serendipity['baseURL'] . 'pixel/sad_smile.gif', - ':)' => $serendipity['baseURL'] . 'pixel/regular_smile.gif', - '8-)' => $serendipity['baseURL'] . 'pixel/shades_smile.gif', - ':-D' => $serendipity['baseURL'] . 'pixel/teeth_smile.gif', - ':D' => $serendipity['baseURL'] . 'pixel/teeth_smile.gif', - '8)' => $serendipity['baseURL'] . 'pixel/shades_smile.gif', - ':-P' => $serendipity['baseURL'] . 'pixel/tounge_smile.gif', - ';-)' => $serendipity['baseURL'] . 'pixel/wink_smile.gif', - ';)' => $serendipity['baseURL'] . 'pixel/wink_smile.gif', - ':P' => $serendipity['baseURL'] . 'pixel/tounge_smile.gif', -); - // We don't care who tells us what to do if (!isset($serendipity['GET']['action'])) { $serendipity['GET']['action'] = (isset($serendipity['POST']['action']) ? $serendipity['POST']['action'] : ''); @@ -138,6 +120,9 @@ $_SESSION['serendipityAuthedUser'] = false; } +$old_include = @ini_get('include_path'); +@ini_set('include_path', $serendipity['serendipityPath'] . 'bundled-libs/:' . $old_include); + $serendipity['user'] = isset($_SESSION['serendipityUser']) ? $_SESSION['serendipityUser'] : ''; $serendipity['email'] = isset($_SESSION['serendipityEmail']) ? $_SESSION['serendipityEmail'] : ''; Index: serendipity_config_local.tpl =================================================================== RCS file: /cvsroot/php-blog/serendipity/serendipity_config_local.tpl,v retrieving revision 1.32 retrieving revision 1.33 diff -u -d -r1.32 -r1.33 --- serendipity_config_local.tpl 14 Feb 2004 18:35:31 -0000 1.32 +++ serendipity_config_local.tpl 26 Feb 2004 11:37:42 -0000 1.33 @@ -36,7 +36,6 @@ $serendipity['wysiwyg'] = '{Use WYSIWYG editor|wysiwyg|bool|0}'; // Do you want to use the experimental WYSIWYG editor? $serendipity['XHTML11'] = '{Force XHTML 1.1 compliance|XHTML11|bool|0}'; // Do you want to force XHTML 1.1 compliance (may cause problems for back-/frontend on older 4th generation browsers) $serendipity['embed'] = '{Is serendipity embedded?|embed|bool|0}'; // If you want to embed serendipity within a regular page, set to true to discard any headers and just print the contents. You can make use of the indexFile option to use a wrapper class where you put your normal webpage headers. See the INSTALL file for more information! -$serendipity['track_exits'] = '{Track exit URLs|track_exits|bool|1}'; // Do you want to track exit targets? $serendipity['blockReferer'] = '{Blocked Referers|blockReferer|string|;}'; // Are there any special hosts you want not to show up in the referers list? Separate the list of hostnames with ';' and note that the host is blocked by substring matches! $serendipity['rewrite'] = '{URL Rewriting|rewrite|list|none=>Disable URL Rewriting,errordocs=>Use Apache errorhandling,rewrite=>Use Apache mod_rewrite}'; // Select which rules you wish to use when generating URLs. Enabling rewrite rules will make pretty URLs for your blog and make it better indexable for spiders like google. The webserver needs to support either mod_rewrite or "AllowOverride All" for your serendipity dir. The default setting is auto-detected. Index: serendipity_functions.inc.php =================================================================== RCS file: /cvsroot/php-blog/serendipity/serendipity_functions.inc.php,v retrieving revision 1.217 retrieving revision 1.218 diff -u -d -r1.217 -r1.218 --- serendipity_functions.inc.php 25 Feb 2004 13:57:05 -0000 1.217 +++ serendipity_functions.inc.php 26 Feb 2004 11:37:42 -0000 1.218 @@ -224,7 +224,10 @@ <tr> <td class="serendipity_commentsLabel"><?php echo COMMENT; ?></td> - <td class="serendipity_commentsValue"><textarea rows="10" cols="40" name="serendipity[comment]"><?php echo $serendipity['POST']['comment']; ?></textarea></td> + <td class="serendipity_commentsValue"> + <textarea rows="10" cols="40" name="serendipity[comment]"><?php echo $serendipity['POST']['comment']; ?></textarea><br /> + <?php serendipity_plugin_api::hook_event('frontend_comment', $nullParam); ?> + </td> </tr> <tr> <td> </td> @@ -805,11 +808,12 @@ <?php foreach ($ents as $x => $entry) { $entryLink = serendipity_archiveURL($entry['id'], $entry['title'], 'serendipityHTTPPath'); + serendipity_plugin_api::hook_event('frontend_display', $entry); $html_extended = ''; if ($extended && strlen($entry['extended'])) { $html_extended = '<a ' . ($serendipity['XHTML11'] ? 'id' : 'name') . '="extended"></a>'; - $html_extended .= nl2br(serendipity_emoticate(serendipity_markup_text($entry['extended'], $entry['id']))); + $html_extended .= $entry['extended']; } if ($entry['exflag'] && !$extended) { @@ -821,9 +825,7 @@ <div class="serendipity_entry"> <?php - $article = nl2br(serendipity_emoticate(serendipity_markup_text($entry['body'], $entry['id']))) . $html_extended; - serendipity_plugin_api::hook_event('frontend_display', $article); - echo $article; + echo $entry['body'] . $html_extended; ?> <div class='serendipity_entryFooter'> @@ -1059,11 +1061,14 @@ } $name = empty($comment['author']) ? ANONYMOUS : $comment['author']; - $body = htmlentities(strip_tags($comment['body'])); + $temp = array('comment' => htmlentities(strip_tags($comment['body'])) ); + serendipity_plugin_api::hook_event('frontend_display', $temp); + $body = $temp['comment']; + ?> <div class="serendipity_comment"> <a <?php echo ($serendipity['XHTML11'] ? 'id' : 'name'); ?>="c<?php echo $comment['id']; ?>"></a> - <?php echo nl2br(serendipity_markup_text(serendipity_emoticate($body))); ?><br /> + <?php echo $body; ?><br /> <div class="serendipity_comment_source"> <a href="#c<?php echo $comment['id']; ?>" title="<?php echo LINK_TO_COMMENT . $x; ?>">#<?php echo $x ; ?></a> @@ -1340,6 +1345,7 @@ // Do some relative -> absolute URI replacing magic. Replaces all HREF/SRC (<a>, <img>, ...) references to only the serendipitypath with the full baseURL URI // garvin: Could impose some problems. Closely watch this one. $entry['body'] = preg_replace('@(href|src)=("|\')(' . preg_quote($serendipity['serendipityHTTPPath']) . ')(.*)("|\')(.*)>@imsU', '\1=\2' . $serendipity['baseURL'] . '\4\2\6>', $entry['body']); + serendipity_plugin_api::hook_event('frontend_display', $entry); // extract author information if (empty($entry['email'])) { @@ -1376,9 +1382,7 @@ <content type="application/xhtml+xml" xml:base="<?php echo $serendipity['baseURL']; ?>"> <div xmlns="http://www.w3.org/1999/xhtml"> <?php - $article = nl2br(serendipity_emoticate(serendipity_markup_text($entry['body'] . $ext))); - serendipity_plugin_api::hook_event('frontend_display', $article); - echo utf8_encode($article); + echo utf8_encode($entry['body'].$ext); ?> </div> </content> @@ -1410,9 +1414,7 @@ <author><?php echo utf8_encode(htmlspecialchars($entry['email'])) . ' (' . utf8_encode(htmlspecialchars($entry['username'])) . ')'; ?></author> <content:encoded> <?php - $article = nl2br(serendipity_emoticate(serendipity_markup_text($entry['body'] . $ext))); - serendipity_plugin_api::hook_event('frontend_display', $article); - echo utf8_encode(htmlspecialchars($article)); + echo utf8_encode(htmlspecialchars($entry['body'].$ext)); ?> </content:encoded> <pubDate><?php echo date('r', $entry['timestamp']); ?></pubDate> @@ -1424,7 +1426,7 @@ /*********** BEGIN RSS 0.91 FEED EXTRAS *************/ ?> <description> - <?php echo utf8_encode(htmlspecialchars(nl2br($entry['body'] . $ext))); ?> + <?php echo utf8_encode(htmlspecialchars($entry['body'] . $ext)); ?> </description> </item> <?php @@ -1437,9 +1439,7 @@ <link><?php echo $guid; ?></link> <description> <?php - $article = nl2br(serendipity_emoticate(serendipity_markup_text($entry['body'] . $ext))); - serendipity_plugin_api::hook_event('frontend_display', $article); - echo utf8_encode(htmlspecialchars($article)); + echo utf8_encode(htmlspecialchars($entry['body'].$ext)); ?> </description> <dc:publisher><?php echo utf8_encode(htmlspecialchars($serendipity['blogTitle'])); ?></dc:publisher> @@ -1462,93 +1462,8 @@ } } -/** - * Taken from pres2, written by rasmus lerdorf and company - */ -function serendipity_format_tt($arg) { - return('<tt>' . str_replace(' ', ' ', $arg[1]) . '</tt>'); -} - -function serendipity_markup_text($str, $entry_id = 0) { - global $serendipity; - - $ret = $str; - - $ret = str_replace('\_', chr(1), $ret); - $ret = preg_replace('/#([[:alnum:]]+?)#/','&\1;',$ret); - $ret = preg_replace('/\b_([\S ]+?)_\b/','<u>\1</u>',$ret); - $ret = str_replace(chr(1), '\_', $ret); - - // bold - $ret = str_replace('\*',chr(1),$ret); - $ret = str_replace('**',chr(2),$ret); - $ret = preg_replace('/(\S)\*(\S)/','\1' . chr(1) . '\2',$ret); - $ret = preg_replace('/\B\*([^*]+)\*\B/','<strong>\1</strong>',$ret); - $ret = str_replace(chr(2),'**',$ret); - $ret = str_replace(chr(1),'\*',$ret); - - // italics - //$ret = str_replace('\~',chr(1),$ret); - //$ret = preg_replace('/~([\S ]+?)~/','<i>\1</i>',$ret); - //$ret = str_replace(chr(1),'\~',$ret); - - // monospace font - //$ret = str_replace('\%',chr(1),$ret); - //$ret = preg_replace_callback('/%([\S ]+?)%/', 'serendipity_format_tt', $ret); - //$ret = str_replace(chr(1),'%',$ret); - - $ret = preg_replace('/\|([0-9a-fA-F]+?)\|([\S ]+?)\|/','<font color="\1">\2</font>',$ret); - $ret = preg_replace('/\^([[:alnum:]]+?)\^/','<sup>\1</sup>',$ret); - $ret = preg_replace('/\@([[:alnum:]]+?)\@/','<sub>\1</sub>',$ret); - $ret = preg_replace('/([\\\])([*#_|^@%])/', '\2', $ret); - - if ($serendipity['track_exits']) { - $serendipity['encodeExitsCallback_entry_id'] = $entry_id; - - $ret = preg_replace_callback( - "#<a(.*)href=(\"|')http://([^\"']+)(\"|')#isUm", - 'serendipity_encodeExitsCallback', - $ret - ); - } - - return $ret; -} /** -* Transforms '<a href="http://url/">' into -* '<a href="exit.php?url=encurl" ...>'. -*/ -function serendipity_encodeExitsCallback($buffer) { - global $serendipity; - - $entry_id = $serendipity['encodeExitsCallback_entry_id']; - $url = 'http://' . $buffer[3]; - - return sprintf( - '<a%shref="%sexit.php?url=%s%s" title="%s" onmouseover="window.status=\'%s\';return true;" onmouseout="window.status=\'\';return true;"', - $buffer[1], - $serendipity['baseURL'], - base64_encode($url), - ($entry_id != 0) ? '&entry_id=' . $entry_id : '', - $url, - $url - ); -} - -/** -* Transforms emoticons into images -*/ -function serendipity_emoticate($str) { - global $serendipity; - - foreach ($serendipity['smiles'] as $key => $value) { - $str = preg_replace("/([\t\ ]?)" . preg_quote($key, '/') . "([\t\ \!\.\)]?)/m", "$1<img src=\"$value\" alt=\"$key\" style=\"display: inline; vertical-align: bottom;\" />$2", $str); - } - - return $str; -} - /** * purge a statically pregenerated entry */ Index: serendipity_plugin_api.php =================================================================== RCS file: /cvsroot/php-blog/serendipity/serendipity_plugin_api.php,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- serendipity_plugin_api.php 10 Feb 2004 15:46:19 -0000 1.11 +++ serendipity_plugin_api.php 26 Feb 2004 11:37:42 -0000 1.12 @@ -35,6 +35,11 @@ serendipity_plugin_api::create_plugin_instance($class_name); } } + + serendipity_plugin_api::create_plugin_instance('serendipity_event_s9ymarkup', null, 'event'); + serendipity_plugin_api::create_plugin_instance('serendipity_event_emoticate', null, 'event'); + serendipity_plugin_api::create_plugin_instance('serendipity_event_nl2br', null, 'event'); + serendipity_plugin_api::create_plugin_instance('serendipity_event_trackexits', null, 'event'); } /* Create an instance of a plugin. @@ -463,9 +468,10 @@ // Define event hooks here, if you want you plugin to execute those instead of being a sidebar item. // Look at external plugins 'serendipity_event_mailer' or 'serendipity_event_weblogping' for usage. // Currently available events: - // backend_publish - // backend_display - // frontend_display + // backend_publish [after insertion of a new article in your s9y-backend] + // backend_display [after displaying an article in your s9y-backend] + // frontend_display [before displaying an article in your s9y-frontend] + // frontend_comment [after displaying the "enter comment" dialog] return true; } } Index: serendipity_sidebar_items.php =================================================================== RCS file: /cvsroot/php-blog/serendipity/serendipity_sidebar_items.php,v retrieving revision 1.45 retrieving revision 1.46 diff -u -d -r1.45 -r1.46 --- serendipity_sidebar_items.php 25 Feb 2004 08:41:24 -0000 1.45 +++ serendipity_sidebar_items.php 26 Feb 2004 11:37:42 -0000 1.46 @@ -451,7 +451,9 @@ { $title = $this->get_config('title', $title); if ($this->get_config('markup') == 'true' || $this->get_config('markup') == '') { - echo serendipity_markup_text($this->get_config('content')); + $entry = array('html_nugget' => $this->get_config('content')); + serendipity_plugin_api::hook_event('frontend_display', $entry); + echo $entry['html_nugget']; } else { echo $this->get_config('content'); } |