From: <var...@us...> - 2009-02-11 23:01:23
|
Revision: 6489 http://phpwiki.svn.sourceforge.net/phpwiki/?rev=6489&view=rev Author: vargenau Date: 2009-02-11 21:46:59 +0000 (Wed, 11 Feb 2009) Log Message: ----------- WikiAdminPurge Added Paths: ----------- trunk/lib/plugin/WikiAdminPurge.php Added: trunk/lib/plugin/WikiAdminPurge.php =================================================================== --- trunk/lib/plugin/WikiAdminPurge.php (rev 0) +++ trunk/lib/plugin/WikiAdminPurge.php 2009-02-11 21:46:59 UTC (rev 6489) @@ -0,0 +1,164 @@ +<?php // -*-php-*- +rcs_id('$Id: WikiAdminPurge.php 6286 2008-10-02 10:01:29Z vargenau $'); +/* + Copyright 2002,2004 $ThePhpWikiProgrammingTeam + Copyright 2009 Marc-Etienne Vargenau, Alcatel-Lucent + + This file is part of PhpWiki. + + PhpWiki 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. + + PhpWiki is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with PhpWiki; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +/** + * Usage: <?plugin WikiAdminPurge?> + */ +require_once('lib/PageList.php'); +require_once('lib/plugin/WikiAdminSelect.php'); + +class WikiPlugin_WikiAdminPurge +extends WikiPlugin_WikiAdminSelect +{ + function getName() { + return _("WikiAdminPurge"); + } + + function getDescription() { + return _("Permanently purge all selected pages."); + } + + function getVersion() { + return preg_replace("/[Revision: $]/", '', + "\$Revision: 6286 $"); + } + + function getDefaultArguments() { + return array_merge + ( + PageList::supportedArgs(), + array( + 's' => false, + /* Columns to include in listing */ + 'info' => 'most', + )); + } + + function collectPages(&$list, &$dbi, $sortby, $limit=0) { + return $list; + } + + function purgePages(&$request, $pages) { + $ul = HTML::ul(); + $dbi = $request->getDbh(); $count = 0; + foreach ($pages as $name) { + $name = str_replace(array('%5B','%5D'),array('[',']'),$name); + if (mayAccessPage('purge',$name)) { + $dbi->purgePage($name); + $ul->pushContent(HTML::li(fmt("Purged page '%s' successfully.", $name))); + $count++; + } else { + $ul->pushContent(HTML::li(fmt("Didn't purge page '%s'. Access denied.", $name))); + } + } + if ($count) $dbi->touch(); + return HTML($ul, + HTML::p(fmt("%d pages have been permanently purged.",$count))); + } + + function run($dbi, $argstr, &$request, $basepage) { + if ($request->getArg('action') != 'browse') + if ($request->getArg('action') != _("PhpWikiAdministration/Purge")) + return $this->disabled("(action != 'browse')"); + + $args = $this->getArgs($argstr, $request); + $this->_args =& $args; + $this->preSelectS($args, $request); + + $p = $request->getArg('p'); + if (!$p) $p = $this->_list; + $post_args = $request->getArg('admin_purge'); + + $next_action = 'select'; + $pages = array(); + if ($p && $request->isPost() && + !empty($post_args['purge']) && empty($post_args['cancel'])) { + + // check individual PagePermissions + if (!ENABLE_PAGEPERM and !$request->_user->isAdmin()) { + $request->_notAuthorized(WIKIAUTH_ADMIN); + $this->disabled("! user->isAdmin"); + } + if ($post_args['action'] == 'verify') { + // Real purge. + return $this->purgePages($request, array_keys($p)); + } + + if ($post_args['action'] == 'select') { + $next_action = 'verify'; + foreach ($p as $name => $c) { + $name = str_replace(array('%5B','%5D'),array('[',']'),$name); + $pages[$name] = $c; + } + } + } elseif ($p && is_array($p) && !$request->isPost()) { // from WikiAdminSelect + $next_action = 'verify'; + foreach ($p as $name => $c) { + $name = str_replace(array('%5B','%5D'),array('[',']'),$name); + $pages[$name] = $c; + } + $request->setArg('p',false); + } + if ($next_action == 'select') { + // List all pages to select from. + $pages = $this->collectPages($pages, $dbi, $args['sortby'], $args['limit'], $args['exclude']); + } + $pagelist = new PageList_UnSelectable($args['info'], $args['exclude'], array()); + $pagelist->addPageList($pages); + + $header = HTML::p(); + if ($next_action == 'verify') { + $button_label = _("Yes"); + $header->pushContent(HTML::strong( + _("Are you sure you want to permanently purge the following files?"))); + } + else { + $button_label = _("Purge selected pages"); + $header->pushContent(_("Permanently purge the selected files:"),HTML::br()); + } + + $buttons = HTML::p(Button('submit:admin_purge[purge]', $button_label, 'wikiadmin'), + Button('submit:admin_purge[cancel]', _("Cancel"), 'button')); + + // TODO: quick select by regex javascript? + return HTML::form(array('action' => $request->getPostURL(), + 'method' => 'post'), + $header, + $buttons, + $pagelist->getContent(), + HiddenInputs($request->getArgs(), + false, + array('admin_purge')), + HiddenInputs(array('admin_purge[action]' => $next_action, + 'require_authority_for_post' => WIKIAUTH_ADMIN))); + } +} + +// Local Variables: +// mode: php +// tab-width: 8 +// c-basic-offset: 4 +// c-hanging-comment-ender-p: nil +// indent-tabs-mode: nil +// End: +?> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <var...@us...> - 2009-03-05 12:33:02
|
Revision: 6639 http://phpwiki.svn.sourceforge.net/phpwiki/?rev=6639&view=rev Author: vargenau Date: 2009-03-05 12:32:57 +0000 (Thu, 05 Mar 2009) Log Message: ----------- svn propset svn:keywords "Id Revision" Modified Paths: -------------- trunk/lib/plugin/WikiAdminPurge.php Property Changed: ---------------- trunk/lib/plugin/WikiAdminPurge.php Modified: trunk/lib/plugin/WikiAdminPurge.php =================================================================== --- trunk/lib/plugin/WikiAdminPurge.php 2009-03-05 12:19:11 UTC (rev 6638) +++ trunk/lib/plugin/WikiAdminPurge.php 2009-03-05 12:32:57 UTC (rev 6639) @@ -1,5 +1,5 @@ <?php // -*-php-*- -rcs_id('$Id: WikiAdminPurge.php 6286 2008-10-02 10:01:29Z vargenau $'); +rcs_id('$Id$'); /* Copyright 2002,2004 $ThePhpWikiProgrammingTeam Copyright 2009 Marc-Etienne Vargenau, Alcatel-Lucent @@ -40,7 +40,7 @@ function getVersion() { return preg_replace("/[Revision: $]/", '', - "\$Revision: 6286 $"); + "\$Revision$"); } function getDefaultArguments() { Property changes on: trunk/lib/plugin/WikiAdminPurge.php ___________________________________________________________________ Added: svn:keywords + Id Revision This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <var...@us...> - 2009-03-06 13:03:53
|
Revision: 6649 http://phpwiki.svn.sourceforge.net/phpwiki/?rev=6649&view=rev Author: vargenau Date: 2009-03-06 13:03:42 +0000 (Fri, 06 Mar 2009) Log Message: ----------- PageList_Selectable Modified Paths: -------------- trunk/lib/plugin/WikiAdminPurge.php Modified: trunk/lib/plugin/WikiAdminPurge.php =================================================================== --- trunk/lib/plugin/WikiAdminPurge.php 2009-03-06 10:44:13 UTC (rev 6648) +++ trunk/lib/plugin/WikiAdminPurge.php 2009-03-06 13:03:42 UTC (rev 6649) @@ -123,7 +123,7 @@ // List all pages to select from. $pages = $this->collectPages($pages, $dbi, $args['sortby'], $args['limit'], $args['exclude']); } - $pagelist = new PageList_UnSelectable($args['info'], $args['exclude'], array()); + $pagelist = new PageList_Selectable($args['info'], $args['exclude'], array()); $pagelist->addPageList($pages); $header = HTML::p(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <var...@us...> - 2022-01-02 12:05:07
|
Revision: 10804 http://sourceforge.net/p/phpwiki/code/10804 Author: vargenau Date: 2022-01-02 12:05:05 +0000 (Sun, 02 Jan 2022) Log Message: ----------- WikiAdminPurge: add new column "Purge" (like in WikiAdminRemove) Modified Paths: -------------- trunk/lib/plugin/WikiAdminPurge.php Modified: trunk/lib/plugin/WikiAdminPurge.php =================================================================== --- trunk/lib/plugin/WikiAdminPurge.php 2022-01-01 13:06:07 UTC (rev 10803) +++ trunk/lib/plugin/WikiAdminPurge.php 2022-01-02 12:05:05 UTC (rev 10804) @@ -25,6 +25,7 @@ /** * Usage: <<WikiAdminPurge>> + * Author: Marc-Etienne Vargenau, based on WikiAdminRemove by Reini Urban */ require_once 'lib/PageList.php'; @@ -117,7 +118,7 @@ if ($p && $request->isPost() && !empty($post_args['purge']) && empty($post_args['cancel']) ) { - // without individual PagePermissions: + // check individual PagePermissions if (!ENABLE_PAGEPERM and !$request->_user->isAdmin()) { $request->_notAuthorized(WIKIAUTH_ADMIN); $this->disabled("! user->isAdmin"); @@ -147,7 +148,10 @@ } $header = HTML::fieldset(); - $pagelist = new PageList_Selectable($args['info'], $args['exclude'], array()); + $pagelist = new PageList_Selectable($args['info'], $args['exclude'], + array('types' => + array('purge' + => new PageList_Column_purge('purge', _("Purge"))))); $pagelist->addPageList($pages); if ($next_action == 'verify') { $button_label = _("Yes"); @@ -175,3 +179,12 @@ 'require_authority_for_post' => WIKIAUTH_ADMIN))); } } + +class PageList_Column_purge extends _PageList_Column +{ + function _getValue($page_handle, $revision_handle) + { + return Button(array('action' => 'purge'), _("Purge"), + $page_handle->getName()); + } +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <var...@us...> - 2021-12-09 13:44:27
|
Revision: 10753 http://sourceforge.net/p/phpwiki/code/10753 Author: vargenau Date: 2021-12-09 13:44:25 +0000 (Thu, 09 Dec 2021) Log Message: ----------- WikiAdminPurge plugin: factor code Modified Paths: -------------- trunk/lib/plugin/WikiAdminPurge.php Modified: trunk/lib/plugin/WikiAdminPurge.php =================================================================== --- trunk/lib/plugin/WikiAdminPurge.php 2021-12-09 13:42:14 UTC (rev 10752) +++ trunk/lib/plugin/WikiAdminPurge.php 2021-12-09 13:44:25 UTC (rev 10753) @@ -57,7 +57,7 @@ return $list; } - private function purgePages(&$request, $pages) + private function purgePages($request, $pages) { $result = HTML::div(); $ul = HTML::ul(); @@ -147,16 +147,14 @@ } $header = HTML::fieldset(); + $pagelist = new PageList_Selectable($args['info'], $args['exclude'], array()); + $pagelist->addPageList($pages); if ($next_action == 'verify') { - $pagelist = new PageList_Selectable($args['info'], $args['exclude'], array()); - $pagelist->addPageList($pages); $button_label = _("Yes"); $header->pushContent(HTML::legend(_("Confirm purge"))); $header->pushContent(HTML::p(HTML::strong( _("Are you sure you want to permanently purge the following pages?")))); } else { - $pagelist = new PageList_Selectable($args['info'], $args['exclude'], array()); - $pagelist->addPageList($pages); $button_label = _("Permanently purge selected pages"); $header->pushContent(HTML::legend(_("Select the pages to purge"))); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <var...@us...> - 2022-01-06 09:18:06
|
Revision: 10840 http://sourceforge.net/p/phpwiki/code/10840 Author: vargenau Date: 2022-01-06 09:18:03 +0000 (Thu, 06 Jan 2022) Log Message: ----------- lib/plugin/WikiAdminPurge.php: do not display checkbox when confirming Modified Paths: -------------- trunk/lib/plugin/WikiAdminPurge.php Modified: trunk/lib/plugin/WikiAdminPurge.php =================================================================== --- trunk/lib/plugin/WikiAdminPurge.php 2022-01-05 20:30:42 UTC (rev 10839) +++ trunk/lib/plugin/WikiAdminPurge.php 2022-01-06 09:18:03 UTC (rev 10840) @@ -108,9 +108,10 @@ $this->preSelectS($args, $request); $p = $request->getArg('p'); - if (!$p) $p = $this->_list; + if (!$p) { + $p = $this->_list; + } $post_args = $request->getArg('admin_purge'); - $next_action = 'select'; $pages = array(); if ($p && $request->isPost() && @@ -142,21 +143,27 @@ } if ($next_action == 'select') { // List all pages to select from. - $pages = $this->collectPages($pages, $dbi, $args['sortby'], $args['limit'], $args['exclude']); + $pages = $this->collectPages($pages, $dbi, $args['sortby'], + $args['limit'], $args['exclude']); } $header = HTML::fieldset(); - $pagelist = new PageList_Selectable($args['info'], $args['exclude'], - array('types' => - array('purge' - => new PageList_Column_purge('purge', _("Purge"))))); - $pagelist->addPageList($pages); if ($next_action == 'verify') { + $pagelist = new PageList_Unselectable($args['info'], $args['exclude'], + array('types' => + array('purge' + => new PageList_Column_purge('purge', _("Purge"))))); + $pagelist->addPageList($pages); $button_label = _("Yes"); $header->pushContent(HTML::legend(_("Confirm purge"))); $header->pushContent(HTML::p(HTML::strong( _("Are you sure you want to permanently purge the following pages?")))); } else { + $pagelist = new PageList_Selectable($args['info'], $args['exclude'], + array('types' => + array('purge' + => new PageList_Column_purge('purge', _("Purge"))))); + $pagelist->addPageList($pages); $button_label = _("Permanently purge selected pages"); $header->pushContent(HTML::legend(_("Select the pages to purge"))); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |