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

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
Зачем вообще лезть сюда.. если тут проблема будет то форма редактирования будет банально недоступна... админка её не отобразит и выдаст что нет доступа..

GuDeVic покажите скрин того что видите при входе в форму редактирования
Ох... Я уже писала, что в модели в ф-ции getForm я не получаю форму (return false;)
Код
	public function getForm($data = array(), $loadData = true)
{
// Получаем форму.
$form = $this->loadForm(
$this->option . '.order', 'order', array('control' => 'jform', 'load_data' => $loadData)
);

if (empty($form))
{
return false;
}
Тем не менее, я получаю доступ к некоторой форме и к данным для её заполения $this->item.
В начале формы поставила
Код
echo "var_dump_this form=".var_dump($this->form);
, на странице вижу
Код
bool(false) var_dump_this form=
Соответственно, вернее не соответственно моим ожиданиям, я не получаю возможность использовать для вывода данных fieldset, а просто вручную задаю инпуты для всех данных в edit.php, в итоге на экране вижу данные из записи, которую и надо редактировать.
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
Я бы сделал дебаг в методе loadForm() модели JModelForm. Пробуйте сделать var_dump($form) после строки:
Код: php
$form = JForm::getInstance($name, $source, $options, false, $xpath);

Ещё смотрите в /libraries/joomla/form/form.php метод getInstance() - там тоже дебагом пробуйте выводить.

Блин, без XDebug ну вообще жуть  :(
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
То есть вы вручную пишете каждый <input type="type" name="name" value="<?php echo $this->item->var; ?>" /> ?
А кодировку вашего файла формы вы проверяли?
« Последнее редактирование: 22.11.2016, 13:28:49 от Aleks.Denezh »
*

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
Зачем вообще лезть сюда.. если тут проблема будет то форма редактирования будет банально недоступна... админка её не отобразит и выдаст что нет доступа..

GuDeVic покажите скрин того что видите при входе в форму редактирования
На экране я вижу форму с правильно отраженными данными. Но вывод этих данных в файле edit.php я делаю вручную (все инпуты).
в модели в ф-ции loadForm я не получаю нужную форму (почему-то) return false;
Код
	public function getForm($data = array(), $loadData = true)
{
// Получаем форму.
$form = $this->loadForm(
$this->option . '.order', 'order', array('control' => 'jform', 'load_data' => $loadData)
);

if (empty($form))
{
return false;
}
Тем не менее, я получаю доступ к некоторой форме и данным $this-item, для ее заполнения (правильным). В начале вывода формы поставила (по совету
Код
echo "var_dump_this form=".var_dump($this->form);
На экране вижу
Код
bool(false) var_dump_this form=
Т.к. заданную форму из модели я не получила, то, соответсвенно, и нет возможности воспользоваться fieldset для вывода данных. Вручную надо.
А вот где я сделала ошибку - не пойму.
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
Я бы сделал дебаг в методе loadForm() модели JModelForm. Пробуйте сделать var_dump($form) после строки:
Код: php
$form = JForm::getInstance($name, $source, $options, false, $xpath);
Даже без дебага могу сказать что там будет false )
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
GuDeVic проверьте или у вас файл order.xml в кодировке utf-8! и если он на хостинге то доступен ли он на чтение, и владелец папки и файла совпадает ли с владельцем в других каталогах?
*

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
То есть вы вручную пишете каждый <input type="type" name="name" value="<?php echo $this->item->var; ?>" /> ?
А кодировку вашего файла формы вы проверяли?
Т.е. я вручную написала несколько инпутов. И если бы меня это устраивало, я не стала бы просить помощи. Не поняла про кодировку (UTF без BOM?)
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
Пока два предложения:
1. вместо <form addrulepath="/administrator/components/com_order/models/rules"> написать просто <form>
2. Ради эксперимента попробуйте взять XML формы от  administrator/components/com_content/models/forms/article.xml закиньте её в /administrator/components/com_order/models/forms/ вызвать
$form = $this->loadForm( '', 'article', array('control' => 'jform', 'load_data' => $loadData)   );
var_dump($form); 
и посмотреть что там будет...
*

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
Пока два предложения:
1. вместо <form addrulepath="/administrator/components/com_order/models/rules"> написать просто <form>
2. Ради эксперимента попробуйте взять XML формы от  administrator/components/com_content/models/forms/article.xml закиньте её в /administrator/components/com_order/models/forms/ вызвать
$form = $this->loadForm( '', 'article', array('control' => 'jform', 'load_data' => $loadData)   );
var_dump($form); 
и посмотреть что там будет...

1.  вместо <form addrulepath="/administrator/components/com_order/models/rules"> написать просто <form> - это я уже сделала до того.
2. Не поняла. Где вызвать
Код
$form = $this->loadForm( '', 'article', array('control' => 'jform', 'load_data' => $loadData)	);
В модели в администратор? Или в модели на site?
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
2. Не поняла. Где вызвать
Код
$form = $this->loadForm( '', 'article', array('control' => 'jform', 'load_data' => $loadData)	);
В модели в администратор? Или в модели на site?
Где вызываете, вместо вашего  кода:
// Получаем форму.
      $form = $this->loadForm(
         $this->option . '.order', 'order', array('control' => 'jform', 'load_data' => $loadData)
      );

*

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
Где вызываете, вместо вашего  кода:
// Получаем форму.
      $form = $this->loadForm(
         $this->option . '.order', 'order', array('control' => 'jform', 'load_data' => $loadData)
      );


Не очень понятно, XML файл в админ, вызов формы - в модели на сайте. Если так, то в результате вижу пустой экран
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
положите файл
Не очень понятно, XML файл в админ, вызов формы - в модели на сайте. Если так, то в результате вижу пустой экран
положите файл в /components/com_order/models/forms/ я же не знаю вызов у вас в фронтенде или бакенде..
« Последнее редактирование: 22.11.2016, 14:39:07 от Aleks.Denezh »
*

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
положите файл положите файл в r/components/com_order/models/forms/ я же не знаю вызов у вас в фронтенде или бакенде..
Проблемы на САЙТЕ
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
Проблемы на САЙТЕ
Файл формы тоже на сайте, так? В /components/com_order/models/forms/order.xml
Это я на всякий случай спросил, мало ли.
*

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
Файл формы тоже на сайте, так? В /components/com_order/models/forms/order.xml
Это я на всякий случай спросил, мало ли.
На всякий случай - в административной части - всё нормально. ТЧК.
На сайт выводится список записей.
компонент com_order.
Все файлы, которые я выкладывала - из com_order/site/
Именно на frontend надо иметь возможность вносить новые и редактировать конкретные записи (переход в форму редактирования - по активному полю конкретной записи ). Примерно, как это реализовано для компонентов в админ)
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
Проблемы на САЙТЕ
Какая разница, скопируйте форму из com_content и положите возле своего order.xml который не работает, и подключите как я выше написал!
*

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
Какая разница, скопируйте форму из com_content и положите возле своего order.xml который не работает, и подключите как я выше написал!
Сделала.
На странице регистрации dump разразился текстом
Код
object(JForm)#359 (6) { ["data":protected]=> object(Joomla\Registry\Registry)#358 (3) { ["data":protected]=> object(stdClass)#357 (5) { ["id"]=> string(1) "4" ["asset_id"]=> string(3) "131" ["state"]=> string(1) "1" ["catid"]=> string(1) "0" ["ordering"]=> string(1) "0" } ["initialized":protected]=> bool(false) ["separator"]=> string(1) "." } ["errors":protected]=> array(0) { } ["name":protected]=> string(0) "" ["options":protected]=> array(1) { ["control"]=> string(5) "jform" } ["xml":protected]=> object(SimpleXMLElement)#356 (4) { ["fieldset"]=> object(SimpleXMLElement)#405 (2) { ["@attributes"]=> array(1) { ["addfieldpath"]=> string(54) "/administrator/components/com_categories/models/fields" } ["field"]=> array(28) { [0]=> object(SimpleXMLElement)#408 (1) { ["@attributes"]=> array(8) { ["name"]=> string(2) "id" ["type"]=> string(4) "text" ["class"]=> string(8) "readonly" ["label"]=> string(22
ну и так далее. Т.е. все параметры в форму передаются.
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
дело в файле вашем, скопируйте в него все что в order.xml и проверьте или работает.. если работает то order.xml удаляете, потом переименовать  article.xml в order.xml и прописать его в коде..
*

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
Значит дело в файле. Возьмите его за основу.
Спасибо!
*

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
дело в файле вашем, скопируйте в него все что в order.xml и проверьте или работает.. если работает то order.xml удаляете, потом переименовать  article.xml в order.xml и прописать его в коде..
Спасибо!
Скопировала, поменяла, тоже дамп разразился текстом. Сейчас попробую по-человечески выводить данные.
И, опять же, по-человечески - огромное спасибо.
*

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
Плюсики всем, кто не прошёл мимо -  завтра. Или сегодня, но позже.
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
*

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
Убили два дня. А всё из-за того, что JForm мог бы ошибку кидать, если файл не подходит...
Если бы два дня. Я же не сразу решилась на форум обратиться. А вот ваших два дня, согласна, убила.
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
Убили два дня. А всё из-за того, что JForm мог бы ошибку кидать, если файл не подходит...
А все потому что изначально вели по неправильному пути ))
*

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
А все потому что изначально вели по неправильному пути ))
Я сама на кривую дорожку вступила. Сознаю свою вину...(с)
https://www.youtube.com/watch?v=pH3NyfUcun4.
*

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
Ещё вопрос.
есть script submitbutton.js в site/views/odrer
Код
Joomla.submitbutton = function(task) {
if (task == '') {
return false;
} else {
var isValid = true;
var action = task.split('.');
if (action[1] != 'cancel' && action[1] != 'close') {
var forms = $$('form.form-validate');
for (var i = 0; i < forms.length; i++) {
if (!document.formvalidator.isValid(forms[i])) {
isValid = false;
break;
}
}
}

if (isValid) {
Joomla.submitform(task);
return true;
} else {
alert(Joomla.JText._('COM_ORDER_ORDER_ERROR_UNACCEPTABLE', 'Some values are unacceptable'));
return false;
}
}
};
в site/views/order/tmpl/edit.php
Код
<form action="<?php echo JRoute::_('index.php?option=com_order&layout=edit&id='.(int)$this->item->id); ?>" method="post" name="adminForm" id="order-form" class="form-validate">
.....
.....
<div>

<input type="hidden" name="task" value="order.edit" />
<?php echo JHtml::_('form.token'); ?>
<input type="submit" value="Отправить">
<input type="hidden" name="id" id="id" value="echo $this->item->id; ?>">
</div>
</form>

После нажатия кнопки отправить -->переход в модель order и где сохранение изменений происходит?
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
После нажатия кнопки отправить -->переход в модель order и где сохранение изменений происходит?
После нажатия на кнопку отправить вы попадаете туда, куда указывает ваш <input type="hidden" name="task" value="order.edit" />
то есть в controllers/order.php вызывается метод который указан после точки.. а дальше контроллер может дергать что ему нужно..!
но учитывая из того какая у вас задача вам нужно:
1. убрать ненужный скрипт
2. вызывать <input type="hidden" name="task" value="order.save" />
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Что все-таки не так с вашим файлом? Я вроде сначала уже писал
Проверьте order.xml, ничего лишнего нет или не хватает чего?
Закрывайте тэг field:
Код: xml
<field/>
Не будь паразитом, сделай что-нибудь самостоятельно!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Странная ошибка

Автор borro

Ответов: 6
Просмотров: 2205
Последний ответ 31.07.2020, 17:19:58
от NewUsers
Обработка AJAX в компоненте Joomla!3

Автор balancer

Ответов: 33
Просмотров: 10315
Последний ответ 23.07.2020, 07:45:53
от Dolphin4ik_1
Пагинатор в нестандартном компоненте

Автор sesil

Ответов: 8
Просмотров: 726
Последний ответ 04.09.2019, 11:24:30
от sesil
Ошибка при выводе пользовательского поля

Автор Glorius

Ответов: 7
Просмотров: 610
Последний ответ 13.08.2019, 23:16:39
от sivers
Не видится файлы языкового пакета в созданном компоненте

Автор khachatur86

Ответов: 0
Просмотров: 936
Последний ответ 30.03.2019, 23:35:26
от khachatur86