0 Пользователей и 1 Гость просматривают эту тему.
  • 14 Ответов
  • 1129 Просмотров
*

NeuroZ

  • Захожу иногда
  • 121
  • 0 / 0
  • Разработка сайтов и расширений под ключ
Смысл работы должен быть такой, как в K2 катагориях.
Есть компонент, который создает категории. В виде лежит файл манифеста отвечающий за меню views/categories/tmpl/default.xml
Код
<?xml version="1.0" encoding="utf-8"?>
<metadata>
    <layout title="COM_PHOENIX_MANUFACTURERS">
    </layout>
    <fields name="request">
        <fieldset name="request" addfieldpath="/administrator/components/com_mycomponent/models/fields">
            <field name="id"
                   type="category"
                   label="CATEGORIES"
                   description="CATEGORIES"
                   required="true"
                   edit="true"
                   clear="false"
            />
        </fieldset>
    </fields>
</metadata>

Далее по пути /administrator/components/com_mycomponent/models/fields/category.php вызывается код с запросами за категориями из бд.
И возвращается в виде селекта. С этим проблем нет.
Проблема возникает в другом:
Пункт меню не сохраняет ссылку должным образом (потому что я не знаю как это сделать). К примеру мне надо получить:
index.php?option=com_mycomponent&view=categories&id=10
а я получаю ту же ссылку, что и без выборки категории (т.е. как в ссылку пункта меню добавить этот самый id ?):
index.php?option=com_mycomponent&view=categories

p.s. также при сохранении пункта меню - не сохраняет выбранный селект (но то уже потом буду разбираться)
p.p.s. Аналогичный функционал реализован через модальное окно в компоненте контента или контактов, но там еще больше вопросов по коду возникает..
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
Понятно что ничего не понятно!
По такой конструкции у меня все работает, проверьте может кодировка XML файла не в той кодировке (не utf-8)? Может где то ID не возвращает...
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Может быть, стоит назвать тип поля не "category", а по-другому? category - это как бы уже core type. И нелишне будет добавить аттрибут extension.
« Последнее редактирование: 14.01.2016, 13:55:46 от robert »
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
да кстати Роберту  + за внимательность, а где в вашем поле type="category" аттрибут extension из которого будут браться категории? Без него это поле пахать вообще не должно! И естественно у вас не будет какого либо ID появляться!
*

NeuroZ

  • Захожу иногда
  • 121
  • 0 / 0
  • Разработка сайтов и расширений под ключ
Разобрался...
Дело было не в extension и не в type="category".
Код, который был в папаук fields, отвечающий за вывод кастомного селекта был скопирован с другой части сайта, где был серьезно перепилен и вырезан атрибут name. И вот из-за отсутствия name в форме - сохранение происходило некорректно. Но все равно спасибо за помощь :)
p.s. Extension, на сколько я понял, нужен для явного указания к какому компоненту должен ссылаться field из манифеста. Вот только нужен он, только в тех случаях, когда мы хотим в нашем компоненте обратиться к филду из другого компонента.
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
p.s. Extension, на сколько я понял, нужен для явного указания к какому компоненту должен ссылаться field из манифеста. Вот только нужен он, только в тех случаях, когда мы хотим в нашем компоненте обратиться к филду из другого компонента.
Вообще то если не указан extension то будет так

и предупреждение будет о том что не указан аттрибут
*

NeuroZ

  • Захожу иногда
  • 121
  • 0 / 0
  • Разработка сайтов и расширений под ключ
Вообще то если не указан extension то будет так

и предупреждение будет о том что не указан аттрибут
Ааааааа вон оно что.... спасибо!
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Разобрался...
Дело было не в extension и не в type="category".
Код, который был в папаук fields, отвечающий за вывод кастомного селекта был скопирован с другой части сайта, где был серьезно перепилен и вырезан атрибут name. И вот из-за отсутствия name в форме - сохранение происходило некорректно.
Не понял. Разве name не задается в views/categories/tmpl/default.xml?

И, будьте добры, поделитесь секретом, как вы могли этого добиться
Смысл работы должен быть такой, как в K2 катагориях.
Есть компонент, который создает категории. В виде лежит файл манифеста отвечающий за меню views/categories/tmpl/default.xml
Спойлер
[свернуть]
Далее по пути /administrator/components/com_mycomponent/models/fields/category.php вызывается код с запросами за категориями из бд.
И возвращается в виде селекта. С этим проблем нет.
? Чтобы не быть голословным, я создал 2 файла в папке com_mycomponent/models/fields: category.php и mycategory.php. Так вот, при указании типа поля = "category" опции всегда возвращаются отсюда: libraries/legacy/form/field/category.php.
« Последнее редактирование: 14.01.2016, 23:55:49 от robert »
Не будь паразитом, сделай что-нибудь самостоятельно!
*

NeuroZ

  • Захожу иногда
  • 121
  • 0 / 0
  • Разработка сайтов и расширений под ключ
Не понял. Разве name не задается в views/categories/tmpl/default.xml?
И, будьте добры, поделитесь секретом, как вы могли этого добиться?
если Вы создаете кастомный тип поля, его поведение полностью можно переопределить в php файле, который надо добавить в папку models/fields (файл должен быть одноименным с типом поля).
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
если Вы создаете кастомный тип поля, его поведение полностью можно переопределить в php файле, который надо добавить в папку models/fields (файл должен быть одноименным с типом поля).
Не нужно меня этому учить. Меня интересует конкретно ваш случай:
-вы создали свой тип поля,
-назвали его именем существующего типа (причем core type) - category,
IMHO, система не будет обращать внимания на ваш тип, она просто берет его из своих библиотек. По крайней мере, на практике у меня вышло так, еще не было времени заглянуть в код.
Так вот, у вас этот новый, но со старым именем category, тип поля вообще существует в реальности или это просто болтовня?

Вот эта чушь от вас вселяет в меня сомнение:
p.s. Extension, на сколько я понял, нужен для явного указания к какому компоненту должен ссылаться field из манифеста. Вот только нужен он, только в тех случаях, когда мы хотим в нашем компоненте обратиться к филду из другого компонента.
« Последнее редактирование: 15.01.2016, 11:31:15 от robert »
Не будь паразитом, сделай что-нибудь самостоятельно!
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
IMHO, система не будет обращать внимания на ваш тип, она просто берет его из своих библиотек. По крайней мере, на практике у меня вышло так, еще не было времени заглянуть в код.
и у меня тоже. видимо потому что это так и есть :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

NeuroZ

  • Захожу иногда
  • 121
  • 0 / 0
  • Разработка сайтов и расширений под ключ
Уточню, я его назвал не так. Просто изменил имя на "бла-бла". Этим "бла-бла" оказалась "category" (фактически у меня в коде другое имя). И не учел что оно зарезервировано. Я не учу, вы просто спросили "как" - я ответил. Про тип category вообще не спорю не чуть.
Просто надо было написать: ИЗВИНИТЕ, Я УМЫШЛЕНО ИЗМЕНИЛ ИМЯ ТИПА ПРИ ПОСТАНОВКЕ ЗАДАЧИ НА ФОРУМЕ, И НЕ ПОДУМАЛ, ЧТО ЭТО ЗАРЕЗЕРВИРОВАННЫЙ ТИП СИСТЕМЫ :)
Цитировать
Вот эта чушь от вас вселяет в меня сомнение
Я даже подчеркнул: на сколько я понял. Чушь - это не верное утверждение. А я не утверждаю.
*

NeuroZ

  • Захожу иногда
  • 121
  • 0 / 0
  • Разработка сайтов и расширений под ключ
Цитировать
тип поля вообще существует в реальности или это просто болтовня?
Это просто болтовня. Просто смысл изначального вопроса был в другом, и причина в другом, и я не подумал, что так вот боком выйдет мне это имя "category", которое не существует в реальности на моем сайте...
« Последнее редактирование: 15.01.2016, 12:40:50 от NeuroZ »
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
ОК, все нормально. Просто ваш ответ
Разобрался...
Дело было не в extension и не в type="category".
+ ваша неточность отняли у меня некоторое время на проверку.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

NeuroZ

  • Захожу иногда
  • 121
  • 0 / 0
  • Разработка сайтов и расширений под ключ
ОК, все нормально. Просто ваш ответ+ ваша неточность отняли у меня некоторое время на проверку.
Виноват :(
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Создание компонента для табеля рабочего времени

Автор sashahz

Ответов: 7
Просмотров: 471
Последний ответ 12.04.2021, 11:12:11
от sashahz
Вызов формы компонента в pop-up, при клике по ссылке из любого места

Автор SkyAn

Ответов: 1
Просмотров: 392
Последний ответ 01.03.2021, 04:08:48
от gartes
Документация по разработки компонента для Joomla 3.x

Автор Aspik

Ответов: 9
Просмотров: 2896
Последний ответ 23.01.2021, 07:55:56
от hmr
Сборка инсталятора компонента файлами из разных папок с привлечением github

Автор borro

Ответов: 1
Просмотров: 410
Последний ответ 25.12.2020, 21:21:30
от platonische
Избранное для меню и/или категорий

Автор platonische

Ответов: 3
Просмотров: 394
Последний ответ 19.10.2020, 12:34:12
от platonische