X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=plugins%2FNoticeTitle%2FNoticeTitlePlugin.php;h=2dbaa356723b224eeb4f6abe764997aad34eb68b;hb=3d334451c45bd93b222d58155404786ee0667a0e;hp=054c3d3e48a590b8b632997a6bfb270805ae2537;hpb=b83e7005ed9dfe8675f9fbbae00650a8c6a62511;p=quix0rs-gnu-social.git diff --git a/plugins/NoticeTitle/NoticeTitlePlugin.php b/plugins/NoticeTitle/NoticeTitlePlugin.php index 054c3d3e48..2dbaa35672 100644 --- a/plugins/NoticeTitle/NoticeTitlePlugin.php +++ b/plugins/NoticeTitle/NoticeTitlePlugin.php @@ -48,7 +48,6 @@ define('NOTICE_TITLE_PLUGIN_VERSION', '0.1'); * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 * @link http://status.net/ */ - class NoticeTitlePlugin extends Plugin { @@ -67,49 +66,15 @@ class NoticeTitlePlugin extends Plugin * * @return boolean hook value; true means continue processing, false means stop. */ - function onCheckSchema() { $schema = Schema::get(); // For storing titles for notices - - $schema->ensureTable('notice_title', - array(new ColumnDef('notice_id', - 'integer', - null, - true, - 'PRI'), - new ColumnDef('title', - 'varchar', - Notice_title::MAXCHARS, - false))); - + $schema->ensureTable('notice_title', Notice_title::schemaDef()); return true; } - /** - * Load related modules when needed - * - * @param string $cls Name of the class to be loaded - * - * @return boolean hook value; true means continue processing, false means stop. - */ - - function onAutoload($cls) - { - $dir = dirname(__FILE__); - - switch ($cls) - { - case 'Notice_title': - include_once $dir . '/'.$cls.'.php'; - return false; - default: - return true; - } - } - /** * Provide plugin version information. * @@ -119,8 +84,7 @@ class NoticeTitlePlugin extends Plugin * * @return boolean hook value */ - - function onPluginVersion(&$versions) + function onPluginVersion(array &$versions) { $url = 'http://status.net/wiki/Plugin:NoticeTitle'; @@ -129,6 +93,7 @@ class NoticeTitlePlugin extends Plugin 'author' => 'Evan Prodromou', 'homepage' => $url, 'rawdescription' => + // TRANS: Plugin description. _m('Adds optional titles to notices.')); return true; } @@ -140,7 +105,6 @@ class NoticeTitlePlugin extends Plugin * * @return boolean hook value */ - function onStartShowNoticeFormData($form) { if ($this->isAllowedRichEdit()) { @@ -160,20 +124,23 @@ class NoticeTitlePlugin extends Plugin * Validate notice title before saving * * @param Action $action NewNoticeAction being executed - * @param integer &$authorId Author ID + * @param Profile $author Profile object for the author of the notice being saved * @param string &$text Text of the notice * @param array &$options Options array * * @return boolean hook value */ - - function onStartNoticeSaveWeb($action, &$authorId, &$text, &$options) + function onStartNoticeSaveWeb(Action $action, Profile $author, &$content, array &$options) { $title = $action->trimmed('notice_title'); if (!empty($title) && $this->isAllowedRichEdit()) { if (mb_strlen($title) > Notice_title::MAXCHARS) { - throw new Exception(sprintf(_m("The notice title is too long (max %d characters).", - Notice_title::MAXCHARS))); + // TRANS: Exception thrown when a notice title is too long. + // TRANS: %d is the maximum number of characters allowed in a title (used for plural). + throw new Exception(sprintf(_m('The notice title is too long (maximum %d character).', + 'The notice title is too long (maximum %d characters).', + Notice_title::MAXCHARS), + Notice_title::MAXCHARS)); } } return true; @@ -187,8 +154,7 @@ class NoticeTitlePlugin extends Plugin * * @return boolean hook value */ - - function onEndNoticeSaveWeb($action, $notice) + function onEndNoticeSaveWeb(Action $action, Notice $notice) { if (!empty($notice)) { @@ -215,15 +181,15 @@ class NoticeTitlePlugin extends Plugin * * @return boolean hook value */ - - function onStartShowNoticeItem($nli) + function onStartShowNoticeTitle(NoticeListItem $nli) { $title = Notice_title::fromNotice($nli->notice); if (!empty($title)) { - $nli->out->elementStart('h4', array('class' => 'notice_title')); - $nli->out->element('a', array('href' => $nli->notice->bestUrl()), $title); - $nli->out->elementEnd('h4'); + $nli->elementStart('h4', array('class' => 'p-name')); + $nli->element('a', array('href' => $nli->notice->getUrl()), $title); + $nli->elementEnd('h4'); + return false; } return true; @@ -237,8 +203,7 @@ class NoticeTitlePlugin extends Plugin * * @return boolean hook value */ - - function onEndRssEntryArray($notice, &$entry) + function onEndRssEntryArray(Notice $notice, array &$entry) { $title = Notice_title::fromNotice($notice); @@ -252,20 +217,19 @@ class NoticeTitlePlugin extends Plugin /** * Show the notice title in Atom output * - * @param Notice &$notice Notice being shown - * @param XMLStringer &$xs output context - * @param string &$output string to be output as title + * @param Notice $notice Notice being shown + * @param Activity $act Activity object to be modified + * @param Profile $scoped Currently logged in/scoped profile * * @return boolean hook value */ - - function onEndNoticeAsActivity($notice, &$activity) + function onEndNoticeAsActivity(Notice $stored, Activity $act, Profile $scoped=null) { - $title = Notice_title::fromNotice($notice); + $title = Notice_title::fromNotice($stored); if (!empty($title)) { - foreach ($activity->objects as $obj) { - if ($obj->id == $notice->uri) { + foreach ($act->objects as $obj) { + if ($obj->id == $stored->getUri()) { $obj->title = $title; break; } @@ -282,10 +246,9 @@ class NoticeTitlePlugin extends Plugin * * @return boolean hook value */ - - function onNoticeDeleteRelated($notice) + function onNoticeDeleteRelated(Notice $notice) { - $nt = Notice_title::staticGet('notice_id', $notice->id); + $nt = Notice_title::getKV('notice_id', $notice->id); if (!empty($nt)) { $nt->delete(); @@ -301,8 +264,7 @@ class NoticeTitlePlugin extends Plugin * * @return boolean hook value */ - - function onStartShowHeadTitle($action) + function onStartShowHeadTitle(Action $action) { $actionName = $action->trimmed('action'); @@ -323,21 +285,16 @@ class NoticeTitlePlugin extends Plugin /** * If a notice has a title, show it in the

element * - * @param Action $action Action being executed + * @param Notice $notice Notice we're getting the title for + * @param string $title Reference to the variable which we set to the notice's title * * @return boolean hook value */ - - function onStartShowPageTitle($action) + function onGetNoticeTitle(Notice $notice, &$title) { - $actionName = $action->trimmed('action'); - - if ($actionName == 'shownotice') { - $title = Notice_title::fromNotice($action->notice); - if (!empty($title)) { - $action->element('h1', null, $title); - return false; - } + $title = Notice_title::fromNotice($notice); + if (!is_null($title)) { + return false; } return true; @@ -348,7 +305,7 @@ class NoticeTitlePlugin extends Plugin * Always true unless the plugin's "restricted" setting is on, in which * case it's limited to users with the "richedit" role. * - * @fixme make that more sanely configurable :) + * @todo FIXME: make that more sanely configurable :) * * @return boolean */ @@ -361,5 +318,4 @@ class NoticeTitlePlugin extends Plugin return true; } } - }