From: Reini U. <ru...@us...> - 2004-02-15 21:42:13
|
Update of /cvsroot/phpwiki/phpwiki/lib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28682 Modified Files: BlockParser.php HtmlElement.php InlineParser.php PageList.php Theme.php WikiUser.php WikiUserNew.php config.php editpage.php main.php Log Message: PageList enhanced and improved. fixed new WikiAdmin... plugins editpage, Theme with exp. htmlarea framework (htmlarea yet committed, this is really questionable) WikiUser... code with better session handling for prefs enhanced UserPreferences (again) RecentChanges for show_deleted: how should pages be deleted then? Index: BlockParser.php =================================================================== RCS file: /cvsroot/phpwiki/phpwiki/lib/BlockParser.php,v retrieving revision 1.37 retrieving revision 1.38 diff -u -2 -b -p -d -r1.37 -r1.38 --- BlockParser.php 26 Feb 2003 17:17:52 -0000 1.37 +++ BlockParser.php 15 Feb 2004 21:34:22 -0000 1.38 @@ -32,5 +32,5 @@ require_once('lib/InlineParser.php'); */ -// FIXME: unify this with the RegexpSet in InlinePArser. +// FIXME: unify this with the RegexpSet in InlineParser. /** Index: HtmlElement.php =================================================================== RCS file: /cvsroot/phpwiki/phpwiki/lib/HtmlElement.php,v retrieving revision 1.31 retrieving revision 1.32 diff -u -2 -b -p -d -r1.31 -r1.32 --- HtmlElement.php 27 Feb 2003 22:47:26 -0000 1.31 +++ HtmlElement.php 15 Feb 2004 21:34:37 -0000 1.32 @@ -445,9 +445,17 @@ function HiddenInputs ($query_args, $pfx * * @param string $js The javascript. + * @param string $script_args (optional) hash of script tags options + * e.g. to provide another version or the defer attr * @return HtmlElement A <script> element. */ -function JavaScript($js) { - return HTML::script(array('language' => 'JavaScript', - 'type' => 'text/javascript'), +function JavaScript ($js, $script_args = false) { + $default_script_args = array('version' => 'JavaScript', + 'type' => 'text/javascript'); + $script_args = $script_args ? array_merge($default_script_args,$script_args) + : $default_script_args; + if (empty($js)) + return HTML::script($script_args); + else + return HTML::script($script_args, new RawXml("<!-- //\n${js}\n// -->")); } @@ -486,4 +494,13 @@ function IfJavaScript($if_content = fals /** $Log$ + Revision 1.32 2004/02/15 21:34:37 rurban + PageList enhanced and improved. + fixed new WikiAdmin... plugins + editpage, Theme with exp. htmlarea framework + (htmlarea yet committed, this is really questionable) + WikiUser... code with better session handling for prefs + enhanced UserPreferences (again) + RecentChanges for show_deleted: how should pages be deleted then? + Revision 1.31 2003/02/27 22:47:26 dairiki New functions in HtmlElement: Index: InlineParser.php =================================================================== RCS file: /cvsroot/phpwiki/phpwiki/lib/InlineParser.php,v retrieving revision 1.29 retrieving revision 1.30 diff -u -2 -b -p -d -r1.29 -r1.30 --- InlineParser.php 13 Sep 2003 22:43:00 -0000 1.29 +++ InlineParser.php 15 Feb 2004 21:34:37 -0000 1.30 @@ -395,5 +395,5 @@ class Markup_linebreak extends SimpleMar var $_match_regexp = "(?: (?<! %) %%% (?! %) | <(?:br|BR)> )"; - function markup () { + function markup ($match) { return HTML::br(); } Index: PageList.php =================================================================== RCS file: /cvsroot/phpwiki/phpwiki/lib/PageList.php,v retrieving revision 1.52 retrieving revision 1.53 diff -u -2 -b -p -d -r1.52 -r1.53 --- PageList.php 15 Feb 2004 15:25:23 -0000 1.52 +++ PageList.php 15 Feb 2004 21:34:37 -0000 1.53 @@ -208,6 +208,11 @@ class _PageList_Column_content extends _ _PageList_Column::_PageList_Column($field, $default_heading, $align); $this->bytes = 50; + if ($field == 'content') $this->_heading .= sprintf(_(" ... first %d bytes"), $this->bytes); + elseif ($field == 'hi_content') { + $search = $_POST['admin_replace']['from']; + $this->_heading .= sprintf(_(" ... around »%s«"),$search); + } } function _getValue ($page_handle, &$revision_handle) { @@ -217,5 +222,21 @@ class _PageList_Column_content extends _ // getContent() already did this, but it seems necessary. $c = implode("\n", $revision_handle->getContent()); - if (($len = strlen($c)) > $this->bytes) { + if ($this->_field == 'hi_content') { + $search = $_POST['admin_replace']['from']; + if ($search and ($i = strpos($c,$search))) { + $l = strlen($search); + $j = max(0,$i - ($this->bytes / 2)); + return HTML::div(array('style' => 'font-size:x-small'), + HTML::div(array('class' => 'transclusion'), + HTML::span(substr($c, $j, ($this->bytes / 2))), + HTML::span(array("style"=>"background:yellow"),$search), + HTML::span(substr($c, $i+$l, ($this->bytes / 2)))) + ); + } else { + $c = sprintf(_("»%s« not found"),$search); + return HTML::div(array('style' => 'font-size:x-small','align'=>'center'), + $c); + } + } elseif (($len = strlen($c)) > $this->bytes) { $c = substr($c, 0, $this->bytes); } @@ -223,8 +244,8 @@ class _PageList_Column_content extends _ // false --> don't bother processing hrefs for embedded WikiLinks $ct = TransformText($c, $revision_handle->get('markup'), false); - return HTML::div(array('style' => 'font-size:xx-small'), + return HTML::div(array('style' => 'font-size:x-small'), HTML::div(array('class' => 'transclusion'), $ct), - // TODO: Don't show bytes here if size column present too - /* Howto??? $this->parent->_columns['size'] ? "" :*/ + // Don't show bytes here if size column present too + ($this->parent->_columns_seen['size'] or !$len) ? "" : ByteFormatter($len, /*$longformat = */true)); } @@ -342,5 +363,5 @@ class PageList { $dbi = $GLOBALS['request']->getDbh(); $page_handle = $dbi->getPage($page_handle); - } else { + } elseif (is_object($page_handle)) { if (in_array($page_handle->getName(), $this->_excluded_pages)) return; // exclude page. @@ -455,4 +476,7 @@ class PageList { => new _PageList_Column_content('content', _("Content")), + 'hi_content' + => new _PageList_Column_content('hi_content', _("Content")), + 'remove' => new _PageList_Column_remove('remove', _("Remove")), Index: Theme.php =================================================================== RCS file: /cvsroot/phpwiki/phpwiki/lib/Theme.php,v retrieving revision 1.70 retrieving revision 1.71 diff -u -2 -b -p -d -r1.70 -r1.71 --- Theme.php 26 Jan 2004 09:17:48 -0000 1.70 +++ Theme.php 15 Feb 2004 21:34:37 -0000 1.71 @@ -927,4 +927,42 @@ class Theme { return $this->_path . $this->_findFile("templates/$name.tmpl"); } + + var $_MoreHeaders = array(); + function addMoreHeaders ($element) { + array_push($this->_MoreHeaders,$element); + } + function getMoreHeaders () { + if (empty($this->_MoreHeaders)) + return ''; + $out = ''; + //$out = "<!-- More Headers -->\n"; + foreach ($this->_MoreHeaders as $h) { + if (is_object($h)) + $out .= printXML($h); + else + $out .= "$h\n"; + } + return $out; + } + + var $_MoreAttr = array(); + function addMoreAttr ($id,$element) { + if (empty($this->_MoreAttr) or !is_array($this->_MoreAttr[$id])) + $this->_MoreAttr[$id] = array($element); + else + array_push($this->_MoreAttr[$id],$element); + } + function getMoreAttr ($id) { + if (empty($this->_MoreAttr[$id])) + return ''; + $out = ''; + foreach ($this->_MoreAttr[$id] as $h) { + if (is_object($h)) + $out .= printXML($h); + else + $out .= "$h"; + } + return $out; + } }; @@ -1031,4 +1069,13 @@ class SubmitImageButton extends SubmitBu // $Log$ +// Revision 1.71 2004/02/15 21:34:37 rurban +// PageList enhanced and improved. +// fixed new WikiAdmin... plugins +// editpage, Theme with exp. htmlarea framework +// (htmlarea yet committed, this is really questionable) +// WikiUser... code with better session handling for prefs +// enhanced UserPreferences (again) +// RecentChanges for show_deleted: how should pages be deleted then? +// // Revision 1.70 2004/01/26 09:17:48 rurban // * changed stored pref representation as before. Index: WikiUser.php =================================================================== RCS file: /cvsroot/phpwiki/phpwiki/lib/WikiUser.php,v retrieving revision 1.48 retrieving revision 1.49 diff -u -2 -b -p -d -r1.48 -r1.49 --- WikiUser.php 1 Feb 2004 09:14:11 -0000 1.48 +++ WikiUser.php 15 Feb 2004 21:34:37 -0000 1.49 @@ -326,9 +326,13 @@ class WikiUser { // No cookies anymore for all prefs, only the userid. PHP creates - // a session cookie in memory, which is much more efficient. + // a session cookie in memory, which is much more efficient, + // but not persistent. Get persistency with a homepage or DB Prefs // - // Return the number of changed entries? + // Return the number of changed entries function setPreferences($prefs, $id_only = false) { - // update the id + if (!is_object($prefs)) { + $prefs = new UserPreferences($prefs); + } + // update the session and id $this->_request->setSessionVar('wiki_prefs', $prefs); // $this->_request->setCookieVar('WIKI_PREFS2', $this->_prefs, 365); @@ -716,4 +720,13 @@ class UserPreferences { // $Log$ +// Revision 1.49 2004/02/15 21:34:37 rurban +// PageList enhanced and improved. +// fixed new WikiAdmin... plugins +// editpage, Theme with exp. htmlarea framework +// (htmlarea yet committed, this is really questionable) +// WikiUser... code with better session handling for prefs +// enhanced UserPreferences (again) +// RecentChanges for show_deleted: how should pages be deleted then? +// // Revision 1.48 2004/02/01 09:14:11 rurban // Started with Group_Ldap (not yet ready) Index: WikiUserNew.php =================================================================== RCS file: /cvsroot/phpwiki/phpwiki/lib/WikiUserNew.php,v retrieving revision 1.14 retrieving revision 1.15 diff -u -2 -b -p -d -r1.14 -r1.15 --- WikiUserNew.php 15 Feb 2004 17:30:13 -0000 1.14 +++ WikiUserNew.php 15 Feb 2004 21:34:37 -0000 1.15 @@ -613,5 +613,5 @@ extends _AnonUser // Check the configured Prefs methods if ( !empty($DBAuthParams['pref_select']) ) { - if ( $DBParams['dbtype'] == 'SQL' and !is_int($this->_prefselect)) { + if ( $DBParams['dbtype'] == 'SQL' and !@is_int($this->_prefselect)) { $this->_prefmethod = 'SQL'; // really pear db $this->getAuthDbh(); @@ -632,5 +632,5 @@ extends _AnonUser if ( !empty($DBAuthParams['pref_update']) and $DBParams['dbtype'] == 'SQL' and - !is_int($this->_prefupdate)) { + !@is_int($this->_prefupdate)) { $this->_prefmethod = 'SQL'; $this->getAuthDbh(); @@ -641,5 +641,5 @@ extends _AnonUser if ( !empty($DBAuthParams['pref_update']) and $DBParams['dbtype'] == 'ADODB' and - !is_int($this->_prefupdate)) { + !isset($this->_prefupdate)) { $this->_prefmethod = 'ADODB'; // uses a simplier execute syntax $this->getAuthDbh(); @@ -959,5 +959,5 @@ extends _DbPassUser $this->_auth_crypt_method = $GLOBALS['DBAuthParams']['auth_crypt_method']; // Prepare the configured auth statements - if (!empty($DBAuthParams['auth_check']) and !is_int($this->_authselect)) { + if (!empty($DBAuthParams['auth_check']) and !@is_int($this->_authselect)) { $this->_authselect = $this->_auth_dbi->prepare ( str_replace(array('"$userid"','"$password"'),array('?','?'), @@ -965,5 +965,5 @@ extends _DbPassUser ); } - if (!empty($DBAuthParams['auth_update']) and !is_int($this->_authupdate)) { + if (!empty($DBAuthParams['auth_update']) and !@is_int($this->_authupdate)) { $this->_authupdate = $this->_auth_dbi->prepare( str_replace(array('"$userid"','"$password"'),array('?','?'), @@ -979,5 +979,5 @@ extends _DbPassUser _AnonUser::getPreferences(); $this->getAuthDbh(); - if ((! $this->_prefs) && is_int($this->_prefselect)) { + if ((! $this->_prefs) && @is_int($this->_prefselect)) { $db_result = $this->_auth_dbi->execute($this->_prefselect,$this->_userid); list($prefs_blob) = $db_result->fetchRow(); @@ -1012,5 +1012,5 @@ extends _DbPassUser $request->setSessionVar('wiki_user', $request->_user); } - if (is_int($this->_prefupdate)) { + if (@is_int($this->_prefupdate)) { $db_result = $this->_auth_dbi->execute($this->_prefupdate, array($packed,$this->_userid)); @@ -1053,5 +1053,5 @@ extends _DbPassUser function checkPass($submitted_password) { - if (!is_int($this->_authselect)) + if (!@is_int($this->_authselect)) trigger_error("Either \$DBAuthParams['auth_check'] is missing or \$DBParams['dbtype'] != 'SQL'", E_USER_WARNING); @@ -1090,5 +1090,5 @@ extends _DbPassUser function storePass($submitted_password) { - if (!is_int($this->_authupdate)) { + if (!@is_int($this->_authupdate)) { //CHECKME trigger_warning("Either \$DBAuthParams['auth_update'] not defined or \$DBParams['dbtype'] != 'SQL'", @@ -1888,4 +1888,13 @@ extends UserPreferences // $Log$ +// Revision 1.15 2004/02/15 21:34:37 rurban +// PageList enhanced and improved. +// fixed new WikiAdmin... plugins +// editpage, Theme with exp. htmlarea framework +// (htmlarea yet committed, this is really questionable) +// WikiUser... code with better session handling for prefs +// enhanced UserPreferences (again) +// RecentChanges for show_deleted: how should pages be deleted then? +// // Revision 1.14 2004/02/15 17:30:13 rurban // workaround for lost db connnection handle on session restauration (->_auth_dbi) Index: config.php =================================================================== RCS file: /cvsroot/phpwiki/phpwiki/lib/config.php,v retrieving revision 1.81 retrieving revision 1.82 diff -u -2 -b -p -d -r1.81 -r1.82 --- config.php 30 Jan 2004 19:57:58 -0000 1.81 +++ config.php 15 Feb 2004 21:34:37 -0000 1.82 @@ -437,5 +437,4 @@ if (ALLOW_USER_LOGIN and empty($DBAuthPa } - // For emacs users // Local Variables: Index: editpage.php =================================================================== RCS file: /cvsroot/phpwiki/phpwiki/lib/editpage.php,v retrieving revision 1.59 retrieving revision 1.60 diff -u -2 -b -p -d -r1.59 -r1.60 --- editpage.php 7 Dec 2003 20:35:26 -0000 1.59 +++ editpage.php 15 Feb 2004 21:34:37 -0000 1.60 @@ -4,4 +4,9 @@ rcs_id('$Id$'); require_once('lib/Template.php'); +// Not yet enabled, since we cannot convert HTML to Wiki Markup yet. +//Todo: change from constant to user preference variable. (or checkbox setting) +if (!defined('USE_HTMLAREA')) define('USE_HTMLAREA',false); +if (USE_HTMLAREA) require_once('lib/htmlarea.php'); + class PageEditor { @@ -96,4 +101,5 @@ class PageEditor function output ($template, $title_fs) { + global $Theme; $selected = &$this->selected; $current = &$this->current; @@ -110,6 +116,9 @@ class PageEditor $title = new FormattedText ($title_fs, $pagelink); + if ($template == 'editpage' and USE_HTMLAREA) { + $Theme->addMoreHeaders(Edit_HtmlArea_Head()); + //$tokens['PAGE_SOURCE'] = Edit_HtmlArea_ConvertBefore($this->_content); + } $template = Template($template, $this->tokens); - GeneratePage($template, $title, $rev); return true; @@ -172,4 +181,5 @@ class PageEditor // Save new revision + $this->_content = $this->getContent(); $newrevision = $page->save($this->_content, $this->_currentVersion + 1, $meta); if (!isa($newrevision, 'wikidb_pagerevision')) { @@ -237,7 +247,19 @@ class PageEditor function getPreview () { include_once('lib/PageType.php'); + $this->_content = $this->getContent(); return new TransformedText($this->page, $this->_content, $this->meta); } + // possibly convert HTMLAREA content back to Wiki markup + function getContent () { + if (USE_HTMLAREA) { + $xml_output = Edit_HtmlArea_ConvertAfter($this->_content); + $this->_content = join("",$xml_output->_content); + return $this->_content; + } else { + return $this->_content; + } + } + function getLockedMessage () { return @@ -286,7 +308,12 @@ class PageEditor // long lines $readonly = ! $this->canEdit(); // || $this->isConcurrentUpdate(); - - return HTML::textarea(array('class' => 'wikiedit', + if (USE_HTMLAREA) { + $html = $this->getPreview(); + $this->_wikicontent = $this->_content; + $this->_content = $html->asXML(); + } + $textarea = HTML::textarea(array('class' => 'wikiedit', 'name' => 'edit[content]', + 'id' => 'edit[content]', 'rows' => $request->getPref('editHeight'), 'cols' => $request->getPref('editWidth'), @@ -294,4 +321,8 @@ class PageEditor 'wrap' => 'virtual'), $this->_content); + if (USE_HTMLAREA) + return Edit_HtmlArea_Textarea($textarea,$this->_wikicontent,'edit[content]'); + else + return $textarea; } @@ -367,4 +398,5 @@ class PageEditor $this->_content = preg_replace('/[ \t\r]+\n/', "\n", rtrim($posted['content'])); + $this->_content = $this->getContent(); $this->_currentVersion = (int) $posted['current_version']; @@ -511,4 +543,13 @@ extends PageEditor /** $Log$ + Revision 1.60 2004/02/15 21:34:37 rurban + PageList enhanced and improved. + fixed new WikiAdmin... plugins + editpage, Theme with exp. htmlarea framework + (htmlarea yet committed, this is really questionable) + WikiUser... code with better session handling for prefs + enhanced UserPreferences (again) + RecentChanges for show_deleted: how should pages be deleted then? + Revision 1.59 2003/12/07 20:35:26 carstenklapp Bugfix: Concurrent updates broken since after 1.3.4 release: Fatal Index: main.php =================================================================== RCS file: /cvsroot/phpwiki/phpwiki/lib/main.php,v retrieving revision 1.114 retrieving revision 1.115 diff -u -2 -b -p -d -r1.114 -r1.115 --- main.php 15 Feb 2004 17:30:13 -0000 1.114 +++ main.php 15 Feb 2004 21:34:37 -0000 1.115 @@ -194,5 +194,5 @@ class WikiRequest extends Request { $pagename = $this->getArg('pagename'); $action = $this->getArg('action'); - if ($this->getArg('start_debug')) // zend ide support + if (!empty($_GET['start_debug'])) // zend ide support return WikiURL($pagename, array('action' => $action, 'start_debug' => 1)); else @@ -865,4 +865,13 @@ main(); // $Log$ +// Revision 1.115 2004/02/15 21:34:37 rurban +// PageList enhanced and improved. +// fixed new WikiAdmin... plugins +// editpage, Theme with exp. htmlarea framework +// (htmlarea yet committed, this is really questionable) +// WikiUser... code with better session handling for prefs +// enhanced UserPreferences (again) +// RecentChanges for show_deleted: how should pages be deleted then? +// // Revision 1.114 2004/02/15 17:30:13 rurban // workaround for lost db connnection handle on session restauration (->_auth_dbi) |