. * * @category Microapp * @package StatusNet * @author Evan Prodromou * @copyright 2011 StatusNet, Inc. * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 * @link http://status.net/ */ if (!defined('STATUSNET')) { // This check helps protect against security problems; // your code file can't be executed directly from the web. exit(1); } /** * Superclass for microapp plugins * * This class lets you define micro-applications with different kinds of activities. * * The applications work more-or-less like other * * @category Microapp * @package StatusNet * @author Evan Prodromou * @copyright 2011 StatusNet, Inc. * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 * @link http://status.net/ */ abstract class MicroAppPlugin extends Plugin { abstract function types(); abstract function saveNoticeFromActivity($activity); abstract function activityFromNotice($notice); abstract function showNotice($notice, $out); abstract function entryForm(); function isMyNotice($notice) { $types = $this->types(); return in_array($notice->object_type, $types); } function isMyActivity($activity) { $types = $this->types(); return (count($activity->objects) == 1 && in_array($activity->objects[0]->type, $types)); } }