Jump to content


Photo
- - - - -

Как правильно организовать структуру?


Best Answer SmetDenis , 17 December 2016 - 04:48

Можно сделать форму подачи материала, заранее настроить её (поля). Проверить что она правильно сохраняет.

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


1) Можно ли как то добавить Категорию?(primary category легко добавляется, а вот категория....)


Это делает элемент категории. основное условие - в форме нужно включить режим доверия.

2) Куда лучше положить обработчик?

Если хотите сделать именно свой обработчик формы, то лучше это оформить в виде контроллера
components\com_zoo\controllers\

Я не вижу в этом большого смысла, т.к. все уже написано в рамках форм подачи. Go to the full post


  • This topic is locked This topic is locked
5 replies to this topic

#1 alexmixaylov

alexmixaylov
  • JBZoo User (rus)
  • User rate: 7.7
  • posts: 679
  • topics: 142

Posted 16 December 2016 - 07:48

нужно реализовать возможность программного добавления материала с любой странички

планирую использовать http://forum.jbzoo.c...-jbzoo/?p=39514этот мануал

 

нужен совет, как лучше это сделать

 

Я делаю отдельное приложение

На страничке размещаю форму

 

1) Можно ли как то добавить Категорию?(primary category легко добавляется, а вот категория....)

 

2) Куда лучше положить обработчик? 

 

 

спасибо

 

 

 

 


  • 0

#2 SmetDenis

SmetDenis
  • Administrators
  • User rate: 139.4
  • posts: 16232
  • topics: 200

Posted 17 December 2016 - 04:48   Best Answer

Можно сделать форму подачи материала, заранее настроить её (поля). Проверить что она правильно сохраняет.

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


1) Можно ли как то добавить Категорию?(primary category легко добавляется, а вот категория....)


Это делает элемент категории. основное условие - в форме нужно включить режим доверия.

2) Куда лучше положить обработчик?

Если хотите сделать именно свой обработчик формы, то лучше это оформить в виде контроллера
components\com_zoo\controllers\

Я не вижу в этом большого смысла, т.к. все уже написано в рамках форм подачи.
  • 1
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#3 alexmixaylov

alexmixaylov
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 7.7
  • posts: 679
  • topics: 142

Posted 20 December 2016 - 10:09

Спасибо за совет
сделал форму прямо на страничке материала

и отправляю ее аяксом

if ($_POST) {
    $name = $_POST['fio'];
    $message = $_POST['feddback'];
    $idtur = $_POST['idTour'];
    $datetur = $_POST['datetour'];
    $foto = $_POST['foto'];

    $newFeedback = $this->app->object->create('Item'); //// пустышка
// наполняем стандартные поля
    $newFeedback->application_id = $appID;
    $newFeedback->name = $name;
    $newFeedback->alias = $name;
    $newFeedback->type = 'comment-alex';


$newFeedback->getParams()->set('config.primary_category', 403);
$newFeedback->getParams()->set('metadata.keywords', $idtur); // в метаданные записываю айди тура чтобы потом можно было по туру вытащить из базы отзывы

//// наполняем пользовательские поля
$newFeedback->getElement('0e0691b3-f551-4976-9759-2bc45a5fa437')->bindData(array(array('value' => $datetur)));//дата тура
$newFeedback->getElement('10776fe8-753e-4e50-8dec-59d8d342f8d3')->bindData(array(array('value' => $message)));// текст отзыва
$newFeedback->getElement('b65579a2-97de-438e-a333-0e2b495aa9a4')->bindData(array(array('file' => $_POST['foto-file'])));// фото

$this->app->table->item->save($newFeedback);// сохраняем значение в базу
}

а вот с файлом возникла трудность

как записать значение файла в базу?
 


  • 0

#4 CB9TOIIIA

CB9TOIIIA
  • Administrators
  • User rate: 230.6
  • posts: 3680
  • topics: 235

Posted 20 December 2016 - 21:37

// наполняем пользовательские поля
$item->getElement('<element_id>')->bindData(array(
  'value' => '123' // данные в формате элемента, можно посмотреть PMA
));

  • 2

#5 alexmixaylov

alexmixaylov
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 7.7
  • posts: 679
  • topics: 142

Posted 21 December 2016 - 13:39

А если я использую такого плана конструкции

JBModelItem::model()->getItemCategories(3904))

это на что то влияет? например на производительность....


  • 0

#6 SmetDenis

SmetDenis
  • Administrators
  • User rate: 139.4
  • posts: 16232
  • topics: 200

Posted 25 December 2016 - 15:03

Если делать аккуратно (не пол сайта выбирать из базы), то нет проблем с производительностью.


  • 1
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.





Click to return to top of page in style!