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

DyadyaGenya

  • Новичок
  • 18
  • 0 / 0
Ещё вопросы от новичка. Поскольку решил, что учить Joomla мне рановато, стал разбираться с PHP. Заметил, что формы в PHP создаются с помощью html-тегов и потом обрабатываются собственно PHP скриптом. Но если я правильно понял, то при написании модулей для Joomla в файле манифеста (xml) прописываются поля формы, html-тегов я там не видел. А как они дальше "грузятся" на php-странице?
*

sivers

  • Давно я тут
  • 866
  • 101 / 0
Шаблон xml-файла:

Код
<?xml version="1.0" encoding="UTF-8"?>
<form>
    <fields name="myGroupOfFields">
        <fieldset name="myFieldSet">
            <!-- Fields go here -->
        </fieldset>
        <fieldset name="myOtherFieldSet">
            <!-- Fields go here -->
        </fieldset>
    </fields>
</form>

Подключение и вывод формы:

Код
        $form = JForm::getInstance('myform', __DIR__ ."/test.xml");
        echo $form->renderFieldset('myFieldSet');

Описание доступных полей:
https://docs.joomla.org/Form_field#Standard_form_field_types
На связи в телеге @sivers
*

DyadyaGenya

  • Новичок
  • 18
  • 0 / 0
        $form = JForm::getInstance('myform', __DIR__ ."/test.xml"); echo $form->renderFieldset('myFieldSet');
Я так понимаю это на Joomla, а где прописан класс JForm? Хотелось бы посмотреть, как он там реализован
*

effrit

  • Легенда
  • 9622
  • 1062 / 13
  • effrit.com
то, что в XML - это перечисление полей с настройками - админская часть.
как оно там обрабатывается - вам сейчас знать не нужно.
если вы свою форму пишете, которая на фронте будет видна, то она будет собираться через обычный php + HTML в шаблоне вашего модуля, а в нужных местах надо сделать вывод значений из полей.

т.е. XML нужен, чтобы в админке появились поля, а в базе - таблицы для хранения их значений.
а за вывод их отвечает файл шаблона, в который вы будете подтягивать значения нужных вам полей.

возьмите модуль с обратной связью простой и посмотрите, как там устроено.
*

sivers

  • Давно я тут
  • 866
  • 101 / 0
Я так понимаю это на Joomla, а где прописан класс JForm? Хотелось бы посмотреть, как он там реализован
Описание здесь:
https://api.joomla.org/cms-3/classes/Joomla.CMS.Form.Form.html
Релизация зедсь:
/libraries/src/Form/Form.php

С помощью XML можно как собирать хтмл-формы (рендерить), так и выполнять их валидацию на стороне сервера. Позволяет отказаться от компонентов-строителей форм (напр. RSFrom).

Но, соглашусь с комментом выше, для начала лучше писать формы самому на простом HTML или использовать конструкторы (тот же RSForm) - меньше дров наломаете.
На связи в телеге @sivers
*

DyadyaGenya

  • Новичок
  • 18
  • 0 / 0
Но, соглашусь с комментом выше, для начала лучше писать формы самому на простом HTML или использовать конструкторы (тот же RSForm) - меньше дров наломаете.
Когда я тренируюсь с PHP, то пишу форму на HTML, про RSForm пока не слышал. Просто у меня этот вопрос возник по двум причинам.1. Не увидел в админке модулей Joomla html-форм, возможно не там искал. Но вроде бы кроме php, XML, CSS, js ничего нет. Про формы только в XML идет речь.2. Стало интересно, как сохраняются данные, введенные в форму админки модуля, потому что пока для php нашел только сохранение в БД, запись в файл (в тот же css), куки, сессии. При этом в Joomla как не зайди в админку модуля все значения на местах в поле формы.
*

dmitry_stas

  • Легенда
  • 13057
  • 1225 / 8
ну на самом деле там никакой фантастики нет, данные сохраняются в базу, а при повторном открытии опять парсится XML, и туда подставляются параметры из базы. а могут сохраняться в файл, так например сохраняется Общая конфигурация, в файл configuration.php в корне сайта
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

DyadyaGenya

  • Новичок
  • 18
  • 0 / 0
ну на самом деле там никакой фантастики нет, данные сохраняются в базу, а при повторном открытии опять парсится XML, и туда подставляются параметры из базы
Ещё не пробовал переносить свои пробы с php в Joomla, но прежде чем попробовать возникает вопрос, будут ли работать мои скрипты php для работы с html-формой в модуле Joomla, или их придется допиливать для работы с XML? Ведь судя по тому что туда сохраняются данные из БД в модуле без XML не обойтись, даже если я напишу форму в php?
И ещё просьба, я создавал тему про выбор бэкграунда в Joomla, можете её глянуть?
*

sivers

  • Давно я тут
  • 866
  • 101 / 0
будут ли работать мои скрипты php для работы с html-формой в модуле Joomla, или их придется допиливать для работы с XML?
Конечно, буду. PHP тут первичен. АПИ Joomla дает дополнительные удобства, если умеете ими пользоваться, но это не обязательно и можно не пользоваться вовсе. Пишите на чистом PHP, если нравится. С базой тоже можно работать без использования классов Joomla.
На связи в телеге @sivers
*

dmitry_stas

  • Легенда
  • 13057
  • 1225 / 8
Ведь судя по тому что туда сохраняются данные из БД в модуле без XML не обойтись, даже если я напишу форму в php?
в модуле в любом случае не обойтись без XML, поэтому нет просто смысла делать форму каким то иным образом
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Модуль для опросов Advanced Poll не работает

Автор Escander

Ответов: 13
Просмотров: 85
Последний ответ 06.12.2019, 16:01:54
от AlexB
Форма отправляет письмо от еmаil-пользователя

Автор mak200

Ответов: 17
Просмотров: 262
Последний ответ 02.12.2019, 09:07:58
от dm-krv
Форма входа пускает без двухфакторной авторизации

Автор TimBrtn

Ответов: 0
Просмотров: 86
Последний ответ 27.11.2019, 19:49:42
от TimBrtn
Как ускорить ответ сервера, чтобы Joomla летала?

Автор polezniy

Ответов: 115
Просмотров: 2170
Последний ответ 24.11.2019, 01:46:32
от polezniy
Joomla 4 Когда?

Автор Delfinov

Ответов: 2
Просмотров: 167
Последний ответ 20.11.2019, 21:44:53
от Physicist