Народ, только три дня назад познакомился с Joomla 1.5. Пишу компонент для вывода новостей. Сделал сам компонент, занесение-удаление-изменение записей в админке. + переключалка опублтиковано - нет, но вот как происходит процесс сортировки никак не пойму. Видел какие то смутные статьи, про наличие особо поля в таблице БД. Итог : каким образом происходит сортировка?
Не понимаю логики и принципа осущствления таковой. Значит я разобрался, что при нажатии на заголовок компонента формуруется яваскрипт с помощью Jgrid, далее запрос уходит в controller.php там вызываются либо orderup or orderdown , которые в свою очередь вызывают модель и её метод move() с аргументами 1(-1), та вызывает модель Jtable::load and JTAble::move. первая загружает , вторая переписывает значение столбца ordering в БД. Это все только по коду. С формированием джава скрипта в ссылке вообще беда, нифинты не понимаю . что за функции которые берут какие то параметры типа массива $list['order'] or $order['order_dir'] - хз. Вообщем именно на сортировке мозг мой завернуло - не понял принципа работы. Даже когда пытался в ручную сформировать джава ссылку на столбец в админ меню - один фиг не активная. Выход я конечне же нашел, но стандартными способами(через Jrequest::setvar and getvar). Да и еще. Судя по моим наблюдениям(вполне возможно это и бред) вот метод JTAble::move делает следующие действия 1. Сортирует таблицу по одному джумле известному порядку 2. Порядок этот записывает и потом в соотвествии с ним перезаписывает ordering in table. Если это так , то что за изврат такой? А если данных(строк в таблице ) будет тысяча ? не сойдет ли БД с ума? Если это не так, то как тогда? Ну вот теперь вроде всё что хотел сказать
Блин, я с тобой согласен. Развели MVC. Тут надо подумать, поэтому подними темку ближе к выходным. Подумаем.
Тут все гораздо банальнее. Думаю, после прочтения многое прояснится: http://docs.joomla.org/Adding_sortable_columns_to_a_table_in_a_component