forked from GNUsocial/gnu-social
Notice from web now saves context->attention too! ;)
This commit is contained in:
parent
6255e1dca3
commit
c48871cf1b
@ -145,8 +145,6 @@ class NewnoticeAction extends FormAction
|
|||||||
// simply no attached media to the new notice
|
// simply no attached media to the new notice
|
||||||
}
|
}
|
||||||
|
|
||||||
$content = $this->scoped->shortenLinks($content);
|
|
||||||
|
|
||||||
// Reject notice if it is too long (without the HTML)
|
// Reject notice if it is too long (without the HTML)
|
||||||
// This is done after MediaFile::fromUpload etc. just to act the same as the ApiStatusesUpdateAction
|
// This is done after MediaFile::fromUpload etc. just to act the same as the ApiStatusesUpdateAction
|
||||||
if (Notice::contentTooLong($content)) {
|
if (Notice::contentTooLong($content)) {
|
||||||
@ -158,13 +156,6 @@ class NewnoticeAction extends FormAction
|
|||||||
Notice::maxContent()));
|
Notice::maxContent()));
|
||||||
}
|
}
|
||||||
|
|
||||||
$actobj = new ActivityObject();
|
|
||||||
$actobj->type = ActivityObject::NOTE;
|
|
||||||
$actobj->content = common_render_content($content, $this->scoped, $parent);
|
|
||||||
|
|
||||||
$act->objects[] = $actobj;
|
|
||||||
|
|
||||||
|
|
||||||
$act->context = new ActivityContext();
|
$act->context = new ActivityContext();
|
||||||
|
|
||||||
if ($parent instanceof Notice) {
|
if ($parent instanceof Notice) {
|
||||||
@ -191,15 +182,21 @@ class NewnoticeAction extends FormAction
|
|||||||
$act->context->location = Location::fromOptions($locOptions);
|
$act->context->location = Location::fromOptions($locOptions);
|
||||||
}
|
}
|
||||||
|
|
||||||
$author_id = $this->scoped->id;
|
$content = $this->scoped->shortenLinks($content);
|
||||||
$text = $content;
|
|
||||||
|
|
||||||
// Does the heavy-lifting for getting "To:" information
|
|
||||||
|
|
||||||
ToSelector::fillOptions($this, $options);
|
|
||||||
|
|
||||||
// FIXME: Make sure NoticeTitle plugin gets a change to add the title to our activityobject!
|
// FIXME: Make sure NoticeTitle plugin gets a change to add the title to our activityobject!
|
||||||
if (Event::handle('StartNoticeSaveWeb', array($this, &$author_id, &$text, &$options))) {
|
if (Event::handle('StartNoticeSaveWeb', array($this, $this->scoped, &$content, &$options))) {
|
||||||
|
|
||||||
|
// FIXME: We should be able to get the attentions from common_render_content!
|
||||||
|
// and maybe even directly save whether they're local or not!
|
||||||
|
$act->context->attention = common_find_attentions($content, $this->scoped, $parent);
|
||||||
|
|
||||||
|
$actobj = new ActivityObject();
|
||||||
|
$actobj->type = ActivityObject::NOTE;
|
||||||
|
$actobj->content = common_render_content($content, $this->scoped, $parent);
|
||||||
|
|
||||||
|
// Finally add the activity object to our activity
|
||||||
|
$act->objects[] = $actobj;
|
||||||
|
|
||||||
$this->stored = Notice::saveActivity($act, $this->scoped, $options);
|
$this->stored = Notice::saveActivity($act, $this->scoped, $options);
|
||||||
|
|
||||||
|
@ -49,18 +49,23 @@ class Attention extends Managed_DataObject
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function saveNew(Notice $notice, Profile $profile, $reason=null)
|
public static function saveNew(Notice $notice, Profile $target, $reason=null)
|
||||||
{
|
{
|
||||||
$att = new Attention();
|
try {
|
||||||
|
$att = Attention::getByKeys(['notice_id'=>$notice->getID(), 'profile_id'=>$target->getID()]);
|
||||||
|
throw new AlreadyFulfilledException('Attention already exists with reason: '.var_export($att->reason,true));
|
||||||
|
} catch (NoResultException $e) {
|
||||||
|
$att = new Attention();
|
||||||
|
|
||||||
$att->notice_id = $notice->getID();
|
$att->notice_id = $notice->getID();
|
||||||
$att->profile_id = $profile->getID();
|
$att->profile_id = $target->getID();
|
||||||
$att->reason = $reason;
|
$att->reason = $reason;
|
||||||
$att->created = common_sql_now();
|
$att->created = common_sql_now();
|
||||||
$result = $att->insert();
|
$result = $att->insert();
|
||||||
|
|
||||||
if ($result === false) {
|
if ($result === false) {
|
||||||
throw new Exception('Could not saveNew in Attention');
|
throw new Exception('Failed Attention::saveNew for notice id=='.$notice->getID().' target id=='.$target->getID().', reason=="'.$reason.'"');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return $att;
|
return $att;
|
||||||
}
|
}
|
||||||
|
@ -124,13 +124,13 @@ class NoticeTitlePlugin extends Plugin
|
|||||||
* Validate notice title before saving
|
* Validate notice title before saving
|
||||||
*
|
*
|
||||||
* @param Action $action NewNoticeAction being executed
|
* @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 string &$text Text of the notice
|
||||||
* @param array &$options Options array
|
* @param array &$options Options array
|
||||||
*
|
*
|
||||||
* @return boolean hook value
|
* @return boolean hook value
|
||||||
*/
|
*/
|
||||||
function onStartNoticeSaveWeb($action, &$authorId, &$text, &$options)
|
function onStartNoticeSaveWeb(Action $action, Profile $author, &$content, &$options)
|
||||||
{
|
{
|
||||||
$title = $action->trimmed('notice_title');
|
$title = $action->trimmed('notice_title');
|
||||||
if (!empty($title) && $this->isAllowedRichEdit()) {
|
if (!empty($title) && $this->isAllowedRichEdit()) {
|
||||||
|
Loading…
Reference in New Issue
Block a user