Перейти к содержимому
Русский язык для Invision Community 5

Контроллер для "Создание новой темы"

Подскажите, где найти файл, который формирует массив данных для шаблона создания темы (postFormTemplate) и который принимает данные введенные в этом шаблоне, вставляет их в бд.

Обшарил тут /admin/applications/forums/modules_public/ Так и не нашел ничего.

Рекомендованные сообщения

Для модификации данных перед выводом, используйте hook вида skin overloader. Для обработки перед ставкой - library hook.

 

Говнокодить не надо, потом намучаетесь с обновлениями.

  • Автор

Я хотел посмотреть значения всех переменных, которые передаются в этот шаблон и посмотреть на обработку данных, пришедших от этого щаблона, перед вставкой онных в бд.

Хочу написать свой контроллер и свой шаблон для создания темы, и хотелось бы посмотреть на обработку данных перед их вставкой в бд. Например как правильно формировать данные для поля title_seo в таблице ibf_topics.

Назначение и обработка данных самого поста тонко размазаны по /admin/applications/forums/sources/classes/*

 

Например как правильно формировать данные для поля title_seo в таблице ibf_topics.

А зачем вам это формировать? Для этого есть готовый API добавления темы.

  • Автор

А такой вопрос: можно с помощью этого API задать еще и теги темы, оно (всмыле поле "теги темы") ведь присутствуют в стандартном шаблоне создания темы.

2) У меня в таблице с топиками есть свое поле. Можно ли с помощью этого API сразу занести мои данные в это поле?

Например так:

$post->setSettings( array(
   'enableSignature' => 1,
   'enableEmoticons' => 1,
   'post_htmlstatus' => 0,
   'enableTracker'   => 0,
   'myField' => 'ololo'
) );

 

Или это возможно только через DB->update()?

Изменено пользователем stud

Теги можете добавить, задав перед вызовом addTopic значение $_POST['ipsTags'] (в нем просто идут теги через запятую).

 

А вот собственное поле придется заполнять отдельным запросом.

  • 3 недели спустя...
  • Автор

А как мне получить id только что созданного топика при помощи $post->addTopic();?

Этот метод, насколько я понял, после создания топика делает еще что-то типа $this->registry->output->sendOutput(); (тоесть header('Location: к_списку_топиков') и exit();)

И весь код ниже $post->addTopic() никогда не выполнится.

Я просто хочу после создания топика сразу же заполнить некоторые свои поля в таблице топиков. Для этого мне нужно получить id только что созданного топика.

Никаких редиректов он не делает, никакой контент не выводит - это же API, с чего бы ему вдруг? Этот метод просто возвращает TRUE, если все прошло на ура, или кидает эксепшен, если что-то не задалось.

 

if ( $post->addTopic() === TRUE ) {
  $new_topic = $post->getTopicData();
  $new_post = $post->getPostData();
}

Создайте аккаунт или войдите в него для комментирования

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.