Page and Section Reordering Fails
This is an open discussion with 30 replies, filed under Troubleshooting.
Search
Have a look at the Symphony system log files located at /manifest/logs/ and see what it says.
The log was pretty long so I deleted it and redid the actions to make sure I had only the bits that were causing trouble. I could do a bit more around the website if you'd like to see the entire thing but I have a feeling most of it was rather redundant.
============================================ Log Created: 2009-02-22T11:42:24-05:00 ============================================ Symphony Log Build: 271 -------------------------------------------- 11:42:24 > WARNING: 2 - array_combine() [function.array-combine]: Both parameters should have at least 1 element in file /path/to/website/symphony/lib/lang/lang.en.php on line 8 11:42:24 > WARNING: 2 - array_merge() [function.array-merge]: Argument #2 is not an array in file /path/to/website/symphony/lib/toolkit/class.lang.php on line 53
This includes signing in on the "Pages" section and moving a page from the bottom to the top. Those two lines were repeated four times in the same order.
Is there anything else you need? I edited the path to Symphony because it was rather long otherwise.
Change the first lines of /symphony/lib/lang/lang.en.php so that like look like this and see if this solves your problem:
<?php // Dictionary $dictionary = array(); // Alphabetical: $transliterations = array(
OK, I gave that a try and it returned this line in the log:
============================================ Log Created: 2009-02-22T13:42:42-08:00 ============================================ Symphony Log Build: 271 -------------------------------------------- 16:42:48 > WARNING: 2 - Invalid argument supplied for foreach() in file /path/to/website/symphony/content/content.publish.php on line 267
I've reversed the changes for now in case you want me to try something different.
Any word on a fix for this just yet?
Do you happen to be using the new Safari release? I have this issue, but only in Safari 4 beta.
I do now but I had the issue before the public beta. Though I just tried it in Firefox to find it works, though I don't get a message stating it does.
I can reproduce this behaviour in Safari 4. So this appears to be a JavaScript problem. Maybe something in way Safari handels AJAX request has changed from version 3 to 4.
16:42:48 > WARNING: 2 - Invalid argument supplied for foreach() in file /path/to/website/symphony/content/content.publish.php on line 267
This warning seems to be connected to an other problem.
Interesting: After trying to reorder pages in Safari 4 I always have to login in again if I try to go to an other admin page.
It seems like the reorder request returns a 401 header (Unauthorized) instead of a 200 header (OK) in /symphony/assets/admin.js, line 1007:
save = new Request(href, function(request) {
DOM.removeClass("busy", table);
return (request.status != 200)
? Symphony.Message(Symphony.Language.REORDER_ERROR, "reorder error")
: Symphony.Message.clear("reorder");
});
Interesting: After trying to reorder pages in Safari 4 I always have to login in again if I try to go to an other admin page.
I'm pretty certain the issue is related to different security restrictions affecting how cookies can be used in those browsers, in which case removing the HttpOnly flag from the cookie should work as a quick-fix.
EDIT: We plan on releasing 2.0.2 next week and will include a fix for this by then.
This still does not work in Symphony 2.0.2 using Safari 4. I still get a 401 response in the javascript:
<result status="401">You are not authorised to access this page.</result>
And I still have to login again after refreshing the page.
Strange. I did pretty exhaustive testing in Safari 4. Make sure you delete ALL existing cookies for that domain. I had problems initially where some old cookies where causing issues. Also, empty the sessions table in the database.
Make sure you delete ALL existing cookies for that domain.
Deleting all cookies did the trick. Thanks!
Am having this problem in FF 3.5.2 on Linux… suggestions appreciated.
Have a look at this issue, it might be to do with the .htaccess. Also, pop open /symphony/lib/core/class.session.php and change ~line 76 to be:
'http://' . preg_replace('/^www./i', NULL, $_SERVER['HTTP_HOST'])
See if that does the trick. There have been issues with sessions in FF and I had previously solved it using that change.
No luck with the sessions file. Looked at the other one but my installs are all in subdirectories so I’m not sure what the rules should look like. I haven’t had this problem before, so I’m guessing it’s likely subdirectory/.htaccess related.
Your .htaccess should look like this:
### Symphony 2.0.x ###
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
### DO NOT APPLY RULES WHEN REQUESTING "favicon.ico"
RewriteCond %{REQUEST_FILENAME} favicon.ico [NC]
RewriteRule .* - [S=14]
### IMAGE RULES
RewriteRule ^image/(.+.(jpg|gif|jpeg|png|bmp))$ extensions/jit_image_manipulation/lib/image.php?param=$1 [L,NC]
### ADMIN REWRITE
RewriteRule ^symphony/?$ index.php?mode=administration&%{QUERY_STRING} [NC,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^symphony(/(.*/?))?$ index.php?symphony-page=$1&mode=administration&%{QUERY_STRING} [NC,L]
### FRONTEND REWRITE - Will ignore files and folders
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*/?)$ index.php?symphony-page=$1&%{QUERY_STRING} [L]
</IfModule>
######
The only thing that changes when using Symphony in a sub-directory is the RewriteBase. So, if your sub-directory is called ‘banana’, the line would be RewriteBase /banana/
Ok, so… the .htaccess files generated when I installed had the correct RewriteBase but it was still prepended to all the URLs. But even after fixing that in both .htaccess files, I’m not able to reorder.
I can edit pages and sections, as well as everything else, as much as I like. However, whenever I try to reorder my pages or sections I get the message "reorder was unsuccessful" and the second I go to a different page I'm asked to login before I can proceed.
This happens both on a local install and on an install on the web. I've also created another developer account and it happens on that one too.