By implementing polls in your application, members will be able to attach a poll when creating a new content item. The process is automatic; a new tab will be displayed on the create item form that allows the poll to be managed
How to implement polls
First, your content item model needs to implement the poll interface, like so:
implements \IPS\Content\Polls
Next, add a poll key to your $databaseColumnMap with the value being the name of the database column that stores the poll ID for this item (note, you can only have one poll per content item).
Finally, display the poll in your content item view. For example:
{$item->getPoll()|raw}
Performing additional actions after receiving a vote
Optionally, your model can be notified when a member votes on a poll. To add support for this, you first need to implement the SPL Observer:
implements \SplObserver
In your model, add an update method, which will be called when a poll receives a vote:
-
$poll (\IPS\Poll)
The poll that has been voted on.
Finally, when displaying your content item, attach the item to the poll. For example:
if ( $poll = $item->getPoll() ) { $poll->attach( $item ); }
Additional model methods available
Indicates whether the member can create a poll.
-
$member (\IPS\Member, optional)
The member whose permissions should be checked. By default, the currently-logged in member will be used. -
$container (\IPS\Node\Model, optional)
Specifically checks whether polls can be created in this container.
Returns the poll for this item (or NULL if no poll is attached).
Report Document