witam! jak i gdzie zakodować sortowanie stron wg. ID - od największej ID na górze. Dodawanie wielu artykułów/aktualności jako podstrony rodzi wiele pracy do każdorazowego wpisywania numery pozycji strony. Pytanie jak zakodować QCms aby sortował podstrony wg. ID przy założeniu że każda ma numer pozycji standardowy czyli 0, a dodatkowo można by używać numeru pozycji np. aby tymczasowo przykleić news na samej górze dodając numer pozycji jako -1.
Wyjasnij mi jakby miala pozycja dzialac skoro posortowane sa po id? :)
Edytuj db/_pages.def.php i zmien $aFieldsSort = Array( 'iPosition', 'sName', 'sNameTitle', 'sNameUrl', 'iPage', 'iPageParent', 'sDescriptionShort', 'iStatus', 'iType', 'iSubpagesShow', 'iProducts' );
na to: $aFieldsSort = Array( 'iPage', 'iPosition', 'sName', 'sNameTitle', 'sNameUrl', 'iPageParent', 'sDescriptionShort', 'iStatus', 'iType', 'iSubpagesShow', 'iProducts' );
A nastepnie (poniewaz chcesz miec to posortowane od najwiekszego id do najmniejszego) edytuj core/pages-admin.php i zmien: $oFF->save( DB_PAGES, $aForm, $sParam, 'sort' );
na to: $oFF->save( DB_PAGES, $aForm, $sParam, 'rsort' );
Oraz to: $oFF->save( DB_PAGES, $aSave, 'iPage', 'sort' );
na to: $oFF->save( DB_PAGES, $aSave, 'iPage', 'rsort' );
Wyjasnij mi jakby miala pozycja dzialac skoro posortowane sa po id? :)
... no "pozycja" miałaby działać tak
Dla przykładu... domyślnie skrypt QC sortuje strony wg. alfabetu A-Z 0-9 przy założeniu że we wszystkich "pozycjach" jest 0, natomiast po wpisaniu w "pozycję" danej liczby sortuje: najpierw po numerze "pozycji" a potem wg alfabetu A-Z 0-9.
I teraz przekładając to na sortowanie wg numeru ID:
- warunek pierwszy: domyślne sortowanie wg ID od największego do najmniejszego, przy założeniu że wszystkie strony mają wpisaną "pozycję" 0 (i to działa wg Twojego powyższego rozwiązania znakomicie)
- warunek drugi: po wpisaniu w "pozycję" danej wartości liczbowej - sortuje wg tej wartości: to wtedy jest przydatne do ustawiania kolejności w menu, np. ustawiam w menu zakładkę/stronę "Aktualności" z pozycją -1 czyli jest na samej górze, następnie do Aktualności dodaję Podstrony, które wszystkie mają w pozycji 0 ale sortują się w ID od największego do najmniejszego - czyli wynik tego że zawsze najnowszy wpis (z największym ID) będzie na samej górze.
hmm... aha... widzisz, nie wiedziałem o tym, że to w płatnej jest :( tak sobie myślałem o tym i w zasadzie wystarczyłoby przerobić sortowanie z "alfabetycznego" A-Z 0-9 na sortowanie po "ID" malejącą, a pozycjonowanie numerami powinno zadziałać jako drugi warunek
a może ktoś się podzieli sposobem na jankesmj@o2.pl :) tak żeby nie naruszać licencji na forum ;)
Mam nadzieję że nie złamię tym regulaminu ale nawet dziecko zauważy jak zrobić aby w pierwszej kolejności sortowanie było po nadanej pozycji a gdy wszystkie mają "0" po ID strony od najwyższego do najmniejszego.
Wszytko należy zmodyfikować tak jak zalecił ~treewood z wyjątkiem:
w wersji 5.2 Quick.CMS aby posortować podstrony od najnowszej na górze w pliku /core/pages.php w funkcji listSubpages (około linii 248) zamienić (w około linii 261)