Extension talk:DeletePagePermanently


 * Hi, it works fine on Mediawiki 1.15.0 Thanks for this extension! Enzo

Using with Vector Skin
In order for the action to show properly on the vector skin, you must add a new hook. The hook definition is as follows:

$wgHooks['SkinTemplateNavigation'][] = array ( &$this,  'AddVectorHook' );

function AddVectorHook(&$sktemplate, &$links) { global $wgRequest, $wgRequest, $wgTitle, $wgUser, $wgDeletePagePermanentlyNamespaces;

if (!$wgUser->isAllowed('deleteperm')) return false;

$action = $wgRequest->getText('action');

#Special pages can not be deleted (special pages have no article id anyway). if ($wgTitle->getArticleID != 0 && $wgDeletePagePermanentlyNamespaces[$wgTitle->getNamespace] == true && $wgTitle->getNamespace != NS_SPECIAL) { wfLoadExtensionMessages('DeletePagePermanently');

$links['actions']['ask_delete_permanently'] = array (           'class' => $action == 'ask_delete_permanently' ? 'selected' : false,            'text' => wfMsg('delete_permanently'),            'href' => $wgTitle->getLocalUrl('action=ask_delete_permanently')        ); }

return true; }

&action=delete_permanently
I had to replace the $action for "delete_permanently" in my environment to make it work if ($action == 'ask_delete_permanently' ) { // Before : // $action = $wgArticle->getTitle->escapeLocalUrl."&action=delete_permanently"; // Now : $action = $wgArticle->getTitle->getLocalUrl('action=delete_permanently'); // index.php/TestPage&action=delete_permanently // become index.php?title=TestPage&action=delete_permanently $wgOut->addHTML(" ...

Undefined offset:
If you try to open a page with namespace not defined in $wgDeletePagePermanentlyNamespaces (like Special:SpecialPages) I've got the following error: Undefined offset: -1 in /xxx/xxx/extensions/DeletePagePermanently/DeletePagePermanently.php on line ~ 86 You have: if ( $wgTitle->getArticleID != 0 & $wgDeletePagePermanentlyNamespaces[$wgTitle->getNamespace] == true & $wgTitle->getNamespace != NS_SPECIAL ) { Obviously the $wgDeletePagePermanentlyNamespaces[$wgTitle->getNamespace won't return boolen if the namespace is not defined in $wgDeletePagePermanentlyNamespaces. It will return -1. Probably you have to check if is in array first and then the value. One way of doing it is to just add @ before the expression like @$wgDeletePagePermanentlyNamespaces[$wgTitle->getNamespace] == true But I guess this could be done in a more elegant way. Rocco08

Caveat for copying/pasting code
This isn't specific to this extension, but I spent a bit figuring it out. After I "installed" this extension, my wiki's browser search ($IP/opensearch_desc.php) was broken. Turns out I'd pasted an extra line or two at the end of the file; it was breaking the XML that's supposed to get sent. So, watch out you don't add any empty lines to the end of the file! Miken32 21:52, 2 April 2009 (UTC)

Translation string errors
I got an error in the .i18n.php messages file, after installation. It appears the French translation contains extra ' in two strings. After quoting these strings with double quotes i.s.o, single quotes the problem is gone.
 * You need only to escape the extra quote with a backslash (\). The source code is updated. --LeLorrain 00:13, 29 December 2009 (UTC)

manque onglet ?
j'ai installer l'extension sur la version 1.15.1

je n'ai pas de message d'erreur mais je n'ai pas l'onglet "DeletePagePermanently" qui permet la suppression de la page.

que faire? merci :) --Voice 15:40, 27 September 2009 (UTC)


 * I hope you understand english because i can't speak french and translated you post with google ^^


 * There are 2 reasons why you can't see the tab: either you don't have the rights or the namespace you are in, is not configured for the extensions.


 * Check the configuration of  (for the userrights) and look, if the namespace is in   (to enable deleting of articles in the namespace) array. (For non-standard namespaces use the numbers you chosen in the   array)
 * --W.stoettinger 12:51, 28 September 2009 (UTC)

I grieve also translated with google;) I just add lines of code in the LocalSettings.php. as indicated:

it is this right?

I have not included for: (For non-standard namespaces use the numbers you chosen in the $wgExtraNamespaces array) ?

thank you --Voice 20:02, 28 September 2009 (UTC)

This isn't working in 1.15, just takes me to a page saying that the page 'insertpagenamehere?action=delete permanently' is empty and to create it.


 * Hi there, we fixed this behaviour by changing line 115 from:
 * to
 * Though we are no PHP-Programmers, this is only a temporary workarround.
 * The source code is updated. Thanks! --LeLorrain 00:19, 29 December 2009 (UTC)
 * Though we are no PHP-Programmers, this is only a temporary workarround.
 * The source code is updated. Thanks! --LeLorrain 00:19, 29 December 2009 (UTC)

j'ai trouver la solution pour le manque d'onglet utile à savoir si vous utilisez d'autres extensions qui jouent sur les droit d'utilisateur. pour ma part j'avais installer l'extension ipbwiki du coups mon compte est passé de sysop à Admin il suffis donc d'ajouter cette ligne dans le fichier LocalSettings.php:

voila :) --Voice 20:23, 11 October 2009 (UTC)

Category count update
Hi, I noticed that the DeletePagePermanently extension does not update category count. Here is a patch generated by git, I started from version 2.1.1 found on the extension page.

$ cat 0001--fix-category-count-on-deletion.patch [...] DeletePagePermanently.php |   9 +++++++++ 1 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/DeletePagePermanently.php b/DeletePagePermanently.php index 884e719..d161cf7 100644 --- a/DeletePagePermanently.php +++ b/DeletePagePermanently.php @@ -177,6 +177,15 @@ class DeletePagePermanently # Delete page Links $dbw->delete( 'pagelinks', array ( 'pl_from' => $id ), __METHOD__ ); +       # update categories count before removing category links +       $cat = array; +       $res = $dbw->select( 'categorylinks', 'cl_to', array( 'cl_from' => $id ), __METHOD__ ); +       foreach( $res as $row ) { +           $cat[]= $row->cl_to; +       } +        $article = new Article( $title ); +       $article->updateCategoryCounts(array, $cat); +        # delete category links $dbw->delete( 'categorylinks', array( 'cl_from' => $id ), __METHOD__);

Now the count should be correct after a page deletion. You can mail me at sberder@gmail.com for informations.
 * The problem is corrected and the source code updated. Thanks! --LeLorrain 00:06, 29 December 2009 (UTC)