Invision Community 4: SEO, prepare for v5 and dormant account notifications By Matt Monday at 02:04 PM
HebRech GmbH & Co. KG Posted August 16, 2017 Posted August 16, 2017 I'm fairly new to IPS and I don't have a terribly firm grasp of the API yet so here are a few questions that hopefully boil down to something fundamental. I need to implement functionality that works similarly to classified ads. It works like this: Users can enter data sets with title, content and a bunch of metadata. Visitors can look at a list of these data sets (showing a subset of the entered data) and click on each entry to get to a detail page. The data sets are easy enough to implement; they're just an \IPS\Content\Item implementation. After that, though, it gets more complicated. The documentation seems to imply that a node controller would be the way to go; however, it also seems to imply that node controllers are always bound to a database table, which represents a list of nodes (like forums). While I could do that I'm not sure whether it's appropriate to add a table containing a single row that carries no actual meaning – after all, I only have the one group of items to show. So is a table-backed node controller the way to go or am I overlooking something? Also, I came across this news post describing a helper class for database-backed tables. This guide also mentions "PHP classes to build tables, lists etc". However, I was unable to find any class with "Table" in its name anywhere in IPS. Has IPSHelpersTableDb been dropped/never been shipped? If so, is there another class that handles table generation or some other convenience functionality to kep me from having to reinvent the wheel?
HeadStand Posted August 16, 2017 Posted August 16, 2017 If you're using Content Items, the class you want to look at is \IPS\Helpers\Table\Content, but this is primarily for the front end. The simplest implementation of this is: $table = new \IPS\Helpers\Table\Content( 'IPS\myapp\myclass', \IPS\Http\Url::internal( "app=myapp&module=mymodule&controller=mycontroller" ) ); \IPS\Output::i()->output = (string)$table; That will generate a table for your content items using all the default options. After you see how that works you can start playing around with all the different options inside the class.
HebRech GmbH & Co. KG Posted August 17, 2017 Author Posted August 17, 2017 D'oh! I completely overlooked that there is a namespace called Table. Thanks for pointing it out.
Recommended Posts
Archived
This topic is now archived and is closed to further replies.