*/
class FavoritePlugin extends ActivityHandlerPlugin
{
- protected $notify_email_fave = 1;
+ protected $email_notify_fave = 1;
public function tag()
{
$user->whereAdd('emailnotifyfav IS NOT NULL');
if ($user->find()) {
printfnq("Detected old User table (emailnotifyfav IS NOT NULL). Moving 'emailnotifyfav' property to Profile_prefs...");
+ // First we'll make sure Profile_prefs exists
+ $schema = Schema::get();
+ $schema->ensureTable('profile_prefs', Profile_prefs::schemaDef());
+
// Make sure we have our own tables setup properly
while ($user->fetch()) {
$user->setPref('email', 'notify_fave', $user->emailnotifyfav);
if (!isset($options['created'])) {
$options['created'] = !empty($act->time) ? common_sql_date($act->time) : common_sql_now();
}
- if (!isset($options['uri'])) {
- $options['uri'] = !empty($act->id) ? $act->id : $act->selfLink;
- }
// We must have an objects[0] here because in isMyActivity we require the count to be == 1
$actobj = $act->objects[0];
- try {
- $object = Fave::saveActivityObject($actobj, $stored);
- } catch (ServerException $e) {
- // Probably that the favored notice doesn't exist in our local database
- // but may also be some missing profile or so, which we could catch in a
- // more explicit catch-statement.
- return null;
- }
+ $object = Fave::saveActivityObject($actobj, $stored);
return $object;
}
+ // FIXME: Put this in lib/activityhandlerplugin.php when we're ready
+ // with the other microapps/activityhandlers as well.
+ // Also it should be StartNoticeAsActivity (with a prepped Activity, including ->context etc.)
+ public function onEndNoticeAsActivity(Notice $stored, Activity $act, Profile $scoped=null)
+ {
+ if (!$this->isMyNotice($stored)) {
+ return true;
+ }
+
+ common_debug('Extending activity '.$stored->id.' with '.get_called_class());
+ $this->extendActivity($stored, $act, $scoped);
+ return false;
+ }
+
+ public function extendActivity(Notice $stored, Activity $act, Profile $scoped=null)
+ {
+ Fave::extendActivity($stored, $act, $scoped);
+ }
public function activityObjectFromNotice(Notice $notice)
{
foreach ($mentioned_ids as $id) {
$mentioned = User::getKV('id', $id);
if ($mentioned instanceof User && $mentioned->id != $stored->profile_id
- && $mentioned->email && $mentioned->getPref('email', 'notify_fave', $this->notify_email_fave)) { // do we have an email, and does user want it?
+ && $mentioned->email && $mentioned->getPref('email', 'notify_fave', $this->email_notify_fave)) { // do we have an email, and does user want it?
mail_notify_fave($mentioned, $stored->getProfile(), $stored->getParent());
}
}
if (empty($arg)) {
$result = null;
} else {
- list($other, $extra) = $this->split_arg($arg);
+ list($other, $extra) = CommandInterpreter::split_arg($arg);
if (!empty($extra)) {
$result = null;
} else {
/**
* Are we allowed to perform a certain command over the API?
*/
- public function onCommandSupportedAPI(Command $cmd, array &$supported)
+ public function onCommandSupportedAPI(Command $cmd, &$supported)
{
$supported = $supported || $cmd instanceof FavCommand;
}
{
// getConfigData will fall back on systemwide default
// and we only wish to save numerical true or false.
- $emailfave = $scoped->getPref('email', 'notify_fave', $this->notify_email_fave) ? 1 : 0;
+ $emailfave = $scoped->getPref('email', 'notify_fave', $this->email_notify_fave) ? 1 : 0;
$action->elementStart('li');
$action->checkbox('email-notify_fave',