Форум русской поддержки Joomla!® CMS
03.12.2016, 04:22:46 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Правильное заполнение ordering в своем компоненте

 (Прочитано 259 раз)
0 Пользователей и 1 Гость смотрят эту тему.
platonische
Давно я тут
****

Репутация: +0/-0
Offline Offline

Сообщений: 297


Парусные экспедиции vk.com/tc670


« : 23.10.2015, 11:47:43 »

Добрый день!

Подскажите как правильно заполнять ordering в своем компоненте. А то по умолчанию прилетают 0 и чтоб выстроить надо каждый потрогать. Как при создании добавлять элемент последним/первым/всередину?
Записан
platonische
Давно я тут
****

Репутация: +0/-0
Offline Offline

Сообщений: 297


Парусные экспедиции vk.com/tc670


« Ответ #1 : 02.11.2015, 13:58:51 »

Может я чего неправильно назвал.
Мне надо чтоб в редакторе формы была возможность выбора на какую позицию (ordering) поставить элемент. Что-то по типу как ПОРЯДОК в компоненте MENU.
Смотрю как пример вышеуказанный компонент, но не до конца все понимаю. В форме элемента меню использовано поле menuordering, а сортировка по полю lft.
где и как происходят процессы формирования этих lft и как они пишутся потом в базу - я так понимаю надо обновить не 1 элемент а как минимум 2.

Как данное реализовать в своем компоненте?
Записан
AlekVolsk
Профи
********

Репутация: +316/-3
Offline Offline

Пол: Мужской
Сообщений: 6452



« Ответ #2 : 02.11.2015, 14:02:53 »

при сохранении элемента делаете в модели в методе save запрос на получение максимального значения поля (select max(ordering) from ...), к результату прибавляете 1 и конечный результат пишите в новую запись
lft и rft - это различные мультиязычные сортировки с поддержкой письма справа налево, если вам не нужны арабские языки, вам достаточно поля ordering
Записан
passer
Живу я здесь
******

Репутация: +69/-3
Offline Offline

Пол: Мужской
Сообщений: 829



« Ответ #3 : 02.11.2015, 14:13:17 »

В форме элемента меню использовано поле menuordering, а сортировка по полю lft.
где и как происходят процессы формирования этих lft и как они пишутся потом в базу - я так понимаю надо обновить не 1 элемент а как минимум 2.
Это способ построения древовидной структуры в БД. Вот теоретическая часть http://www.getinfo.ru/article610.html В древовидной структуре сортировка узлов производится только в пределах одного уровня вложенности. При сплошной сортировке по ordering дерево развалится.
Записан
platonische
Давно я тут
****

Репутация: +0/-0
Offline Offline

Сообщений: 297


Парусные экспедиции vk.com/tc670


« Ответ #4 : 02.11.2015, 20:16:24 »

Сделал, но мне кажется немного грубовато, но работает. Лишнего кода много. Вот на ваш суд.
в описании формы cake.xml строки:
Показать текстовый блок

Создал тип поля hzproductordering.php
Показать текстовый блок

Дописал функцию save в модели cake.php:
Показать текстовый блок
Записан
AlekVolsk
Профи
********

Репутация: +316/-3
Offline Offline

Пол: Мужской
Сообщений: 6452



« Ответ #5 : 02.11.2015, 20:18:13 »

пойдет
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet