Новости Joomla

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

boomerang

  • Захожу иногда
  • 117
  • 4 / 1
Такой вопрос - куда попадают данные, введенные в поля на странице создания какой(го)-то ссылки, файла, материала ? (Зависит от компонента...)
Я, как пример, взял компонент weblinks - родной от Joomla. Сейчас более подробно объясню вопрос:

Переходим на главную страницу компонента Weblinks, видим что не добавлено ни одной записи... (Скрин 1)


Далее нажимаем кнопку New, чтоб создать запись(новую ссылку) и попадаем в окно с полями для ввода... (Скрин 2)


После того как мы заполним поля и нажмем кнопку Save, данные попадут (наверно xD ) в БД!
И вот мой вопрос - где прописан код, как эти данные будут записываться в БД, т.е в какой столбец, какой таблицы, какое поле ... ?

Надеюсь вопрос понятен...


« Последнее редактирование: 02.03.2013, 23:25:41 от boomerang »
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Каждый компонент пишет в свою таблицу. В общем виде поток выглядит так: жмем Сохранить -> вызывается метод save контроллера -> метод save вызывает метод save модели -> метод save подключает таблицу -> таблица сохраняет данные.

Почитайте это и это.
*

boomerang

  • Захожу иногда
  • 117
  • 4 / 1
Все равно не полностью понятно...

Статьи я ваши читал (еще раньше), но многого не понял, хоть они и являются качественным переводом офф. документации Joomla по созданию компонентов... Такое чувство, что эту док-цию писали для тех разработчиков, которые уже имели опыт в создании компонентов, просто либо забыли что-то, либо перешли с ранних версий (1.0, 1.5 и т.д.), но эта док-ция точно не для новичков...

Так вот мой вопрос остается в силе...  Когда мы заполнили поля на странице создания ссылки, как и куда попадают данные?

В ваших статьях (статьях док-ции xD ) довольно понятно объяснено откуда выводятся данные! Т.е через views/helloworlds/tmpl/шаблон.php

выводятся данные, полученные из модели  models/helloworlds.php - где мы обращаемся к таблице (в БД) нашего компонента и выводим нужные столбцы. (Разумеется не без участия общего файла представления -  views/helloworlds/view.html.php )

Понятно также, когда мы создаем одиночную запись, откуда берутся поля для ввода:
(Говоря простым языком, опуская модели, виды и тд) поля берутся из файла models/forms/имя.xml

но после заполнения, куда и как сохраняются данные введенные в эти поля? это не понятно! (В модели это не прописывается вроде...) или ткните носом, что называется, плз, а то я что-то не вижу.

Спасибо!
« Последнее редактирование: 03.03.2013, 19:56:06 от boomerang »
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Да, в модели не прописывается. Потому что все делается автоматом - в родительских классах. Главное создать файл таблицы и файл формы. Поток я описал выше.
*

boomerang

  • Захожу иногда
  • 117
  • 4 / 1
Цитировать
Да, в модели не прописывается. Потому что все делается автоматом - в родительских классах. Главное создать файл таблицы и файл формы. Поток я описал выше.

А про какую таблицу идет речь? =))

Да и странно, как оно так делается автоматически?! а если я поменяю поля местами (например, поле title сделаю вторым или третьим по счету), все пойдет наперекосяк тогда....
*

boomerang

  • Захожу иногда
  • 117
  • 4 / 1
Мне кажется, я наконец-то понял!

Когда мы создаем файл с полями - models/forms/файл_с_полями.xml

В св-во (или как его там) type мы указываем различный тип поля под наши нужды - это понятно, например type="list" , type="text" и тд
А вот св-во name - должно содержать название столбца из нашей таблицы в БД! Все верно я понял ?

Именно поэтому, когда, например, мы вводим что-то в поле title, результат сохраняется именно в столбец title а не в alias, id, или какой-нить любой другой столбец в нашей БД. (все так? или я что-то напутал)

Из всего того, что я смотрел, читал, изучал про разработку для Джулмы, об этом не говорится ни слова!... Такое чувство, что это само собой понятное дело! (Я в шоке)
« Последнее редактирование: 05.03.2013, 02:01:06 от boomerang »
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Мне кажется, я наконец-то понял!

Когда мы создаем файл с полями - models/forms/файл_с_полями.xml

В св-во (или как его там) type мы указываем различный тип поля под наши нужды - это понятно, например type="list" , type="text" и тд
А вот св-во name - должно содержать название столбца из нашей таблицы в БД! Все верно я понял ?

Именно поэтому, когда, например, мы вводим что-то в поле title, результат сохраняется именно в столбец title а не в alias, id, или какой-нить любой другой столбец в нашей БД. (все так? или я что-то напутал)
Да, именно так. Для этого и есть XML с полями, которые превращаются в поля формы. Класс таблицы сопоставляет поля формы с таблицей.

Цитировать
Из всего того, что я смотрел, читал, изучал про разработку для Джулмы, об этом не говорится ни слова!... Такое чувство, что это само собой понятное дело! (Я в шоке)
Ну как бы понятно. Обработка форм - это же основы PHP. По крайней мере у меня не возникало вопроса, почему так происходит, когда я только начинал знакомится с механизмами Joomla.

Считаете, мне стоит упомянуть этот момент в документации?
*

boomerang

  • Захожу иногда
  • 117
  • 4 / 1
Цитировать
Ну как бы понятно. Обработка форм - это же основы PHP.

Ну если брать примитивную HTML-форму, то там это как раз не очень очевидно... Да и не все могут столкнуться столь тесно с формами изучая основы php, например Я =))

Цитировать
Считаете, мне стоит упомянуть этот момент в документации?

Считаю, что это в любом случае должно быть упомянуто! Не знаю почему, но мне показалось это настолько не очевидным, что я долгое время мучился и метался в поисках этого долб*нного куска кода, который бы обрабатывал форму и сохранял данные из полей, именно в конкретные столбцы таблицы в БД! (Сохранял данные как надо!) А по факту - все оказалось намного проще - просто нужно указать название столбца в name каждого поля...
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Компонента от j1.5 под j2.5

Автор limon142

Ответов: 4
Просмотров: 1673
Последний ответ 19.11.2014, 13:43:25
от limon142
Изменение представления по умолчанию

Автор NastyUser

Ответов: 5
Просмотров: 1540
Последний ответ 14.01.2014, 23:18:58
от b2z
Подключить свою таблицу CSS в редактор (на фор

Автор Aeliot

Ответов: 2
Просмотров: 1397
Последний ответ 11.12.2013, 18:28:13
от Aeliot
Переадресация на форму авторизации

Автор Aeliot

Ответов: 4
Просмотров: 1455
Последний ответ 07.12.2013, 14:21:55
от Aeliot
Разные методы, суть одна и таже?

Автор boomerang

Ответов: 3
Просмотров: 1550
Последний ответ 11.04.2013, 00:23:30
от Aleks.Denezh