Niestety, natrafiłem na duży problem już na początku.
W pliku cms/settings/order przechowywane są nazwy plików użytkownika. Funkcja "up" znajdująca się w pliku cms/files/functions.php ma odpowiadać, za wczytanie pliku order do tablicy, zamianę kolejności dwóch konkretnych rekordów i ponowne zapisanie pliku order. Niestety, funkcja potrafi robić zupełnie losowe rzeczy. Zmienia kolejność rekordów o 2, w ogóle losuje kolejność rekordów, a czasem nawet zadziała zgodnie z oczekiwaniami. Nie mam pojęcia skąd to się bierze, przepisywałem cały kod 3 razy.
Próbowałem też wczytać order do tablicy, zmienić kolejność, zapisać do tymczasowego pliku ordertmp, usunąć plik order i zmienić nazwę ordertmp na order, ale wtedy okazywało się, ze skrypt na samym początku usuwał plik (mimo, że to ostatnia linijka kodu) i nie miał już potem co otwierać.
Testowałem na lokalnym komputerze na serwerze apache i na dwóch hostingach. Wszędzie wygląda to tak samo.
Kod funkcji wygląda tak:
function up($file) // moves chosen line up in order file { $i=0; foreach($order as $line) { break; // if match then break, and i = line number $i++; } $tmp = $order[$i]; // changing the order of specific lines in array $order[$i] = $order[$i-1]; $order[$i-1] = $tmp; foreach($order as $work) }
...ale byłbym bardzo wdzięczny, za zapoznanie się z całością skryptu i ewentualną pomoc w rozwiązaniu tego niecodziennego problemu.

Spakowany zalążek cmsa: http://www.panja.esy.es/mycms.rar