Jump to content

Контейнеры элементов контента

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

Добавление поддержки для нод контейнеров

Первый шаг, который вам нужно предпринять - добавить новое статическое свойство в вашу модель элемента контента. 

protected static $containerNodeClass = 'string';

Значение этого свойства должно быть именем класса модели ноды, позволяя Invision Community распознать отношения. Далее вам нужно добавить ключ контейнера в массив $databaseColumnMap в вашей модели (дополнительную информацию см. в руководстве по модели элементов контента). Значение должно быть именем столбца базы данных, содержащего ID номер контейнера.

Оба примера можно наблюдать здесь:

protected static $containerNodeClass = "IPS\yourapp\YourNodeClass";

public static $databaseColumnMap = array(
	//... Другие значения, определенные в вашей карте столбцов
	'container' => 'item_parent_id'
);

Дополнительные методы, доступные для моделей элементов контента

После добавления поддержки контейнеров доступны два метода:

boolean canMove( \IPS\Member $member=NULL )

Возвращает логическое значение, указывающее, может ли предоставленный пользователь перемещать элемент в другой контейнер.

  • $member (\IPS\Member, optional) - Пользователь, чьи разрешения должны использоваться. По умолчанию используется авторизованный в настоящее время пользователь. 

void move( \IPS\Node\Model $container [, boolean $keepLink=FALSE ] )

Перемещает элемент в другой контейнер. Примечание: данный метод не проверяет разрешения; используйте canMove() в первую очередь.

  • $container (\IPS\Node\Model, обязательный) - Объект ноды контейнера, в который будет перемещен элемент.
  • $keepLink (boolean, необязательный, по умолчанию FALSE) - Если true, добавляется ложный элемент контента, который указывает на новое местонахождение старого элемента контента.

Дополнительные методы также доступны для модели ноды контейнера, помогающие вам работать с коллекциями элементов; более подробную информацию см. в документации по модели ноды контейнера.




Messenger

    ×
    ×
    • Create New...

    Important Information

    By using our site you agree to our Privacy Policy