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

DyadyaGenya

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

sivers

  • Давно я тут
  • 531
  • 56 / 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
*

DyadyaGenya

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

effrit

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

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

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

sivers

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

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

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

DyadyaGenya

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

dmitry_stas

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

DyadyaGenya

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

sivers

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

dmitry_stas

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

Проблемы с Joomla 3.9.6 в связке с FastCGI (NGINX+PHP-FPM)

Автор Belka

Ответов: 10
Просмотров: 270
Последний ответ 20.05.2019, 14:59:53
от Belka
Настройка срока действия пароля в Joomla

Автор ebonydabster

Ответов: 2
Просмотров: 73
Последний ответ 15.05.2019, 11:54:43
от dmitry_stas
Баг в поиске Joomla 3.8.5 <span class="highlight'>title</span>

Автор hubby

Ответов: 24
Просмотров: 1946
Последний ответ 11.05.2019, 08:15:18
от sved2000
Библиотека на Joomla

Автор Wak

Ответов: 14
Просмотров: 419
Последний ответ 10.05.2019, 10:08:20
от pavel2950
Не работает js [Решено]

Автор CriZtmb

Ответов: 17
Просмотров: 255
Последний ответ 07.05.2019, 19:54:52
от dmitry_stas