Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”

0 Пользователей и 2 Гостей просматривают эту тему.

*

diii3

  • ***
  • 154
  • +6/-0
    • Просмотр профиля
Здравствуйте! Подскажите, пожалуйста, нужно сделать так чтобы посетитель сайта мог добавлять объекты в каталог. Шаблон сайта на XSLT.  Может быть есть ссылки на похожую инструкцию или что-то типа того. понимаю, что так просто наверно не объяснишь, буду благодарен за любую помощь. Спасибо.

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Добавление объекта каталога посетителем
« Ответ #1 : 26 Декабря 2011, 05:51:12 »
почему) как раз такой макрос есть в umi, посмотри в файле /classes/modules/catalog/class.php макрос addCatalogObject() она как раз добавляет товар в систему со стороны сайта. Для того чтобы она все ок сохранила надо сделать такой шаблон для формы добавлений (Пишу на память так что стопроцентной точности не обещаю)

<form action="/catalog/addCatalogObject/[parent_id]/[object_type_id]">
<input type="text" name="titile" value="имя нового товара" />
<xsl:apply-teplates select="document('udata://data/getCreateForm/772')/udata" />
<input  type="submit" value="добавить новый товар" />
</form>

[object_type_id] - необязательный, но если у вас товар является подтипом относительно типа данных "Объект каталога", то надо его указать
772 в макросе getCreateForm это id типа данных, для которого необходимо вывести форму добавления, он же object_type_id так что это один и тот же параметр, но если в атрибуте action для тега form его можно не указывать, то для макроса  getCreateForm  все равно придеться иначе система не поймет какие поля выводить для заполнения

P.S. Вроде ничего не забыл, но честно говоря не проверял этот способ с 2.8.1 версии, так что пробуйте и отписывайтесь сюда по результатам

*

diii3

  • ***
  • 154
  • +6/-0
    • Просмотр профиля
Re:Добавление объекта каталога посетителем
« Ответ #2 : 26 Декабря 2011, 23:19:00 »
Спасибо огромнейшее! Думал тысячу лет буду этот вопрос решать, а тут готовое решение. Как попробую, сразу отпишусь. У однозначно очень полезный форум! Спасибо еще раз.

*

diii3

  • ***
  • 154
  • +6/-0
    • Просмотр профиля
Re:Добавление объекта каталога посетителем
« Ответ #3 : 31 Декабря 2011, 14:56:55 »
Не работает, к сожалению, вот что пишет:

Fatal error: Call to a member function getTplId() on a non-object in /home/o/otnoshenru/public_html/classes/modules/catalog/class.php on line 496

*

diii3

  • ***
  • 154
  • +6/-0
    • Просмотр профиля
Re:Добавление объекта каталога посетителем
« Ответ #4 : 01 Января 2012, 21:15:15 »
496 строка в class.php:

$domain_id   = $parentElement->getDomainId();

*

diii3

  • ***
  • 154
  • +6/-0
    • Просмотр профиля
Re:Добавление объекта каталога посетителем
« Ответ #5 : 04 Января 2012, 14:26:26 »
Вроде заработало)) Спасибо!

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Добавление объекта каталога посетителем
« Ответ #6 : 05 Января 2012, 10:29:36 »
сам разобрался? я так понял у тебя была проблема с тем, что не определялся родительский элемент?

*

diii3

  • ***
  • 154
  • +6/-0
    • Просмотр профиля
Re:Добавление объекта каталога посетителем
« Ответ #7 : 05 Января 2012, 10:42:29 »
он видно сначала не понял куда вносить информацию.....теперь возникла еще одна проблема - система не формирует форму добавления. то есть выдает название (ну мы же указали title), а форму, которая должна формироваться ниже не выводит....буду признателен если поможете разобраться. спасибо.

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Добавление объекта каталога посетителем
« Ответ #8 : 05 Января 2012, 11:33:37 »
чем именно помочь? не формирует форму, проверяй макрос, шаблон и id типа данных по которым должна формироваться эта форма или проблема появилась после каких-то действий?

*

diii3

  • ***
  • 154
  • +6/-0
    • Просмотр профиля
Re:Добавление объекта каталога посетителем
« Ответ #9 : 05 Января 2012, 13:14:06 »
глупый вопрос задам) - <xsl:apply-teplates select="document('udata://data/getCreateForm/772')/udata" /> автоматически формирует форму или ее нужно самостоятельно формировать?

*

diii3

  • ***
  • 154
  • +6/-0
    • Просмотр профиля
Re:Добавление объекта каталога посетителем
« Ответ #10 : 05 Января 2012, 13:54:00 »
Я имею ввиду - обязательно ли описывать к ней шаблон или он автоматически может быть сгенерирован с помощью <xsl:apply-teplates select="document('udata://data/getCreateForm/772')/udata" /> ?

*

diii3

  • ***
  • 154
  • +6/-0
    • Просмотр профиля
Re:Добавление объекта каталога посетителем
« Ответ #11 : 05 Января 2012, 14:05:14 »
Ура! Вроде во всем разобрался)) Спасибо!

*

diii3

  • ***
  • 154
  • +6/-0
    • Просмотр профиля
Re:Добавление объекта каталога посетителем
« Ответ #12 : 06 Января 2012, 16:49:29 »
Еще один вопрос появился) - когда идет добавление незарегистрированным пользователем, то появляется раздел "авторизация". Собственно нужно, чтобы добавление было без авторизации. Я поставил права для гостя на редактирование каталога, однако ничего не изменилось. Если знаете подскажите , пожалуйста, как здесь нужно действовать.

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Добавление объекта каталога посетителем
« Ответ #13 : 07 Января 2012, 07:22:13 »
функция добавления наверно вынесена в раздел прав которые все еще не разрешен пользователю и гостю, попробуй создать permissions.custom.php и там прописать эту функцию в массив прав в который входят функции типа getObjectsList и т.д.

*

diii3

  • ***
  • 154
  • +6/-0
    • Просмотр профиля
Re:Добавление объекта каталога посетителем
« Ответ #14 : 07 Января 2012, 18:55:22 »
Я в этом деле новичок и если честно я не очень понимаю как, где и что писать...Мне нужно создать файл с именем permissions.custom.php и туда скопировать функцию из class.php?