Jump to content

Что за функция, в каком файле?

Featured Replies

Posted
comment_170645

Лазаю по php файлам, не могу найти.

В каком файле расположена функция. Которая сохраняет свежедобавленный пост? Что за имя данной функции?

  • Author
comment_170647

В поле forums_post, добавил поле. В данное поле необходимо вносить значение. Вопрос в том, где именно данные код. Где возможно прописать переменную со значением и значение которое попадет в данное поле...

То есть как при создании темы, так и при  постинге...

  • 2 месяца спустя...
  • Author
comment_173281

Как в данной функции достать данные о форуме?

В переменной $item, содержится вся необходимая инфа, а в  $item->container->_data. Содержится информация о форуме, но она закрыта :protected. В данном случаи как достать информацию из нее?

  • Author
comment_173282
    public static function create( $item, $comment, $first=FALSE, $guestName=NULL, $incrementPostCount=NULL, $member=NULL, \IPS\DateTime $time=NULL, $ipAddress=NULL, $hiddenStatus=NULL )
    {
        $comment = parent::create( $item, $comment, $first, $guestName, $incrementPostCount, $member, $time, $ipAddress, $hiddenStatus );
        
        if ( !$comment->hidden() )
        {
            $item->rebuildPopularTime();
        }
        
        return $comment;
    }

Запутался. В данной функции не сохраняем, а передаем данные пред сохранение куда та еще...

Не совсем понятно, где именно данная которые передаем parent::create, Где их обрабатывают, где именно тот самый запрос к таблице forums_posт за счет которого и добавляется запись в таблицу? 

Где еще та самая функция, которая вносит изменения в таблицу core_members, при добавлении поста?

 

comment_173283
1 час назад, Zuldek сказал:

Запутался. В данной функции не сохраняем, а передаем данные пред сохранение куда та еще...

Вам понятие "классов" хоть чуть-чуть знакомо? Если нет, то лучше в эту область движка не влезать, ничего не получится. 

comment_173285

Проблема в том, что ни в одном файле вы не найдете места, где происходит сохранение вашего сообщения в том виде, в котором вы его ожидаете увидеть. Все комменты на форуме - дети класса IPS\Patterns\ActiveRecords, соответственно, все ваши изменения-дополнения должны быть в концепции этого класса (или его наследников). 

class _Post extends \IPS\Content\Comment 
  abstract class _Comment extends \IPS\Content - тут живет функция public static function create(...), но я очень не советую в нее лезть.
    abstract class _Content extends \IPS\Patterns\ActiveRecord 

Про ActiveRecords можно прочитать тут: https://invisioncommunity.com/developers/docs/fundamentals/active-records-r22/

comment_173287
В 17.07.2021 в 15:44, Zuldek сказал:

Что за имя данной функции

имя save()

  • Author
comment_173306
abstract class _Comment extends \IPS\Content - тут живет функция public static function create(...), но я очень не советую в нее лезть.

Функции, вроде что надо. Да там заносим в переменные данные перед сохранением.

Но, моя задача заключается

В данной функции как вытащить, скажем наименование форума(ветки). Ведь все данные в объекте закрыты protect в переменной $item

 

Я так понимаю в каком то файле необходимо дописать функцию которая будет возвращать наименовании форума в  

public static function create

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

comment_173309

Zuldek млин, еще раз. Функция, которая "сохраняет свежедобавленный пост" называется save()

Ты хоть бы нормально описал, Что ты хочешь.

comment_173310
1 час назад, Zuldek сказал:

В данной функции как вытащить, скажем наименование форума(ветки).

В $item сообщения нет id форума, только id топика. Это не приватное свойство, получите его, по нему загрузите топик, из него получите id форума и тоже загрузите, получите название форума  в $forum->_title() 

comment_173316

Зачем вам всё это? У вас есть $item в функции create, там есть почти всё, что надо. Даже название форума.. 

\IPS\Member::loggedIn()->language()->get('forums_forum_' . $item->container()->id);

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.


Guest
Ответить в этой теме...

Последние посетители 0

  • No registered users viewing this page.