Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

All other Modules /

Discuss all other Modules here.

Moderators: martimiz, Sean, Ed, biapar, Willr, Ingo, swaiba

Translatable and 3.1 - publishall not working - hack

Go to End



Community Member, 1 Post

25 April 2013 at 8:28pm

Edited: 26/04/2013 8:15pm

This is fixed on github now. Ingo committed a broader solution to the problem the day this was posted. Kudo's for the quick reaction!

Hi there,

When using the Translatable module (master branch from github dated 14/04/2013) the publishall function (http://<yoursite>/admin/pages/publishall) ( is not working and just returns to the confirm form.

Upon investigation I found that Translatable strips the needed security token and the confirm parameter from the POST request that the publishall confirmation form sends.

As a workaround I added the following line after line 21 in the init function of TranslatableCMSMainExtension.php . There may be a more generic way as I suspect other CMSMain functions like buildbrokenlinks() to suffer from the same problem.
if($req->param('Action') == 'publishall') return;

(sorry for the bad layout, preformatted text get its leading white space stripped in the forum, even when tagged as a code block)
the line with the + in first position is the one that was added:

@@ -19,6 +19,7 @@
                // $Lang serves as a "context" which can be inspected by Translatable - hence it
                // has the same name as the database property on Translatable.
                $req = $this->owner->getRequest();
+               if($req->param('Action') == 'publishall') return;
                $id = $req->param('ID');
                if($req->requestVar("Locale")) {
                        $this->owner->Locale = $req->requestVar("Locale");