public function fixData($data, $override_language = false) { $baseURL = Application_Plugin_Common::getFullBaseUrl(); $transl = Zend_Registry::get('Zend_Translate'); // set default language to network default $transl_default = Zend_Registry::get('Zend_Translate'); if ($override_language) { $transl_default->setLocale(Zend_Registry::get('config')->get('default_language')); } foreach ($data as &$row) { $row['bulk_notifications'] = json_decode($row['bulk_notifications'], true); $row['html_link'] = ''; $row['do_send_email'] = true; // default, can be overriden $row['view_from_name'] = $row['profile_name']; $row['view_from_screen_name'] = $row['profile_screen_name']; $row['view_from_avatar'] = $row['profile_avatar']; switch ($row['notification_type']) { // new comment on post/image (inform all users included in this discussion) case 1: $row['subject'] = $transl->translate('New comment'); $row['subject_email'] = $transl_default->translate('New comment'); if ($row['comment_resource_type'] == 'post') { $row['html_link'] .= '<a href="' . $baseURL . '/profiles/showpost/name/' . $row['commented_post_on_wall'] . '/post/' . $row['commented_post_id'] . '">'; } elseif ($row['comment_resource_type'] == 'image') { $row['html_link'] .= '<a href="' . $baseURL . '/index/index/showimage/' . $row['commented_image_uid'] . '">'; } else { $row['html_link'] .= $transl->translate('Resource not available'); $row['view_from_avatar'] = 'default/generic.jpg'; break; } $row['html_link'] .= sprintf($transl->translate('%s posted a new comment'), $row['comment_author_screen_name']); $row['html_link'] .= '</a>'; $row['html_link'] .= '<p>'; $row['html_link'] .= strlen($row['comment_content']) > 150 ? Application_Plugin_Common::mbsubstr($row['comment_content'], 0, 150, 'utf-8') : $row['comment_content']; $row['html_link'] .= '</p>'; $row['view_from_name'] = $row['comment_author_name']; $row['view_from_screen_name'] = $row['comment_author_screen_name']; $row['view_from_avatar'] = $row['comment_author_avatar']; break; // 2 - new like on post/comment/image // 2 - new like on post/comment/image case 2: $row['subject'] = $transl->translate('New like'); $row['subject_email'] = $transl_default->translate('New like'); $row['html_link'] .= '<a href="' . $baseURL . '/likes/show/like/' . $row['like_id'] . '">'; $row['html_link'] .= sprintf($transl->translate('%s likes your %s'), $row['like_user_screen_name'], $transl->translate($row['like_resource_type'])); $row['html_link'] .= '</a>'; $row['view_from_name'] = $row['like_user_name']; $row['view_from_screen_name'] = $row['like_user_screen_name']; $row['view_from_avatar'] = $row['like_user_avatar']; break; // 3 - new follower // 3 - new follower case 3: $row['subject'] = $transl->translate('You have new followers'); $row['subject_email'] = $transl_default->translate('You have new followers'); $row['html_link'] .= '<a href="' . $baseURL . '/' . $row['profile_name'] . '">'; $row['html_link'] .= sprintf($transl->translate('%s is now following you'), $row['profile_screen_name']); $row['html_link'] .= '</a>'; break; // 4 - new friend // 4 - new friend case 4: $row['subject'] = $transl->translate('New comment'); $row['subject_email'] = $transl_default->translate('New comment'); $row['html_link'] .= '<a href="' . $baseURL . '/' . $row['profile_name'] . '">'; $row['html_link'] .= sprintf($transl->translate('%s and you are now friends'), $row['profile_screen_name']); $row['html_link'] .= '</a>'; break; // 6 - lost a follower // 6 - lost a follower case 6: $row['subject'] = $transl->translate('You have lost a follower'); $row['subject_email'] = $transl_default->translate('You have lost a follower'); $row['html_link'] .= '<a href="' . $baseURL . '/' . $row['profile_name'] . '">'; $row['html_link'] .= sprintf($transl->translate('%s has stopped following you'), $row['profile_screen_name']); $row['html_link'] .= '</a>'; break; // 7 - posted on your wall // 7 - posted on your wall case 7: if (!$row['post_author_name']) { $row['html_link'] .= $transl->translate('Resource not available'); $row['view_from_avatar'] = 'default/generic.jpg'; break; } $row['subject'] = $transl->translate('New post on your wall'); $row['subject_email'] = $transl_default->translate('New post on your wall'); $row['html_link'] .= '<a href="' . $baseURL . '/profiles/showpost/name/' . $row['to_name'] . '/post/' . $row['post_id'] . '">'; $row['html_link'] .= sprintf($transl->translate('%s posted on your wall'), $row['post_author_screen_name']); $row['html_link'] .= '</a>'; $row['html_link'] .= '<p>'; $row['html_link'] .= strlen($row['post_content']) > 150 ? Application_Plugin_Common::mbsubstr($row['comment_content'], 0, 150, 'utf-8') : $row['post_content']; $row['html_link'] .= '</p>'; $row['view_from_name'] = $row['post_author_name']; $row['view_from_screen_name'] = $row['post_author_screen_name']; $row['view_from_avatar'] = $row['post_author_avatar']; break; // 8 - new message (send email to notify) // 8 - new message (send email to notify) case 8: $row['subject'] = $transl->translate('You have a new private message'); $row['subject_email'] = $transl_default->translate('You have a new private message'); $row['html_link'] .= '<a href="' . $baseURL . '/messages/inbox/user/' . $row['profile_name'] . '">'; $row['html_link'] .= sprintf($transl->translate('%s sent you a new private message'), $row['profile_screen_name']); $row['html_link'] .= '</a>'; break; // 10 - group membership accepted // 10 - group membership accepted case 10: $row['do_send_email'] = false; $row['html_link'] .= '<a href="' . $baseURL . '/' . $row['profile_name'] . '">'; $row['html_link'] .= $transl->translate('Group membership accepted'); $row['html_link'] .= '</a>'; break; // 11 - group membership rejected // 11 - group membership rejected case 11: // no email $row['do_send_email'] = false; $row['html_link'] .= '<a href="' . $baseURL . '/' . $row['profile_name'] . '">'; $row['html_link'] .= $transl->translate('Group membership rejected'); $row['html_link'] .= '</a>'; break; // 12 - request for group membership sent // 12 - request for group membership sent case 12: $row['do_send_email'] = false; $row['html_link'] .= '<a href="' . $baseURL . '/' . $row['profile_name'] . '">'; $row['html_link'] .= $transl->translate('New group membership request'); $row['html_link'] .= '</a>'; break; default: break; } } // trigger hooks Zend_Registry::get('hooks')->trigger('hook_data_notificationsfix', $data); return $data; }
/** * limit input to max posts */ static function limitInput($data) { if (Zend_Registry::get('config')->get('max_post_length') > 0 && strlen($data) > Zend_Registry::get('config')->get('max_post_length')) { $data = Application_Plugin_Common::mbsubstr($data, 0, Zend_Registry::get('config')->get('max_post_length'), 'utf-8'); } return $data; }