/**
  * Add post submit
  */
 public function submitAddPostForm($form)
 {
     $Profiles = new Application_Model_Profiles();
     $current_user_id = Zend_Auth::getInstance()->getIdentity()->id;
     // default user wall
     $profile = Zend_Auth::getInstance()->getIdentity();
     // writing on other user wall?
     if ($this->request->getParam('name')) {
         $profile = $Profiles->getProfile($this->request->getParam('name'));
     }
     if (!$this->canPostHere($current_user_id, $profile->type, $profile->id, $profile->owner)) {
         return false;
     }
     // submit?
     if (isset($_POST['identifier']) && $_POST['identifier'] == 'AddPost' && $form->isValid($_POST)) {
         $content = $form->getValue('content');
         $content = Application_Plugin_Common::preparePost($content);
         $Posts = new Application_Model_Posts();
         // save received filename to session form_unique_key
         $form_unique_key = (int) $_POST['form_unique_key'];
         $attached_files = @glob(TMP_PATH . '/post_' . Zend_Auth::getInstance()->getIdentity()->name . '_' . $form_unique_key . '*');
         if ($this->show_privacy) {
             $Posts->addPost($content, $profile->id, Zend_Registry::get('default_privacy'), $attached_files);
         } else {
             // most restrictive, for groups and pages privacy is controlled when fetching posts
             $Posts->addPost($content, $profile->id, 'friends', $attached_files);
         }
         // flush content
         $form->getElement('content')->setValue('');
         $redirector = Zend_Controller_Action_HelperBroker::getStaticHelper('Redirector');
         $redirector->gotoUrl($this->callbackurl);
     }
     return $form;
 }
Esempio n. 2
0
function autocomplete_search_users($term, $storage_url)
{
    $Profiles = new Application_Model_Profiles();
    // quote
    $search_term = $Profiles->getDefaultAdapter()->quote("%{$term}%");
    if (Zend_Auth::getInstance()->hasIdentity()) {
        $user_id = (int) Zend_Auth::getInstance()->getIdentity()->id;
        $join = "LEFT JOIN connections c ON c.follow_id = p.id AND c.user_id = " . $user_id;
        $order = "ORDER BY c.created_on DESC, p.type DESC";
    } else {
        $join = "";
        $order = "ORDER BY p.type DESC";
    }
    $sql = "\n\tSELECT\n\tp.name AS label,\n\tp.screen_name AS name,\n\tp.avatar as avatar\n\t\n\tFROM profiles p\n\t{$join}\n\t\n\tWHERE p.is_hidden = 0\n\tAND (p.activationkey = 'activated' OR p.type != 'user')\n\tAND (p.name like {$search_term} OR p.screen_name like {$search_term})\n\t\n\t{$order}\n\t\n\tLIMIT 5\n\t";
    $result = $Profiles->getDefaultAdapter()->fetchAll($sql);
    if (!$result) {
        die;
    }
    foreach ($result as &$user) {
        $user['link'] = Application_Plugin_Common::getFullBaseUrl() . '/' . $user['label'];
        $user['avatar'] = $storage_url . $user['avatar'];
    }
    echo json_encode($result);
    // stop view render
    die;
}
 /**
  *
  * Change password form
  *
  */
 public function init()
 {
     $cname = explode('_', get_class());
     $this->preInit(end($cname));
     // use template file
     $this->setDecorators(array(array('ViewScript', array('viewScript' => 'forms/ChangePassword.phtml'))));
     $Profiles = new Application_Model_Profiles();
     // fields
     $password_old = new Zend_Form_Element_Password('passwordold');
     $password_old->setDecorators(array('ViewHelper', 'Errors'))->setAttrib('autocomplete', 'off')->setRequired(true)->setErrorMessages(array($this->translator->translate('Password is required')))->setLabel($this->translator->translate('Old Password:'******'class', 'form-control');
     // check if blank password (facebook-registered user) and remove old password field if so
     if (Zend_Auth::getInstance()->hasIdentity()) {
         $profile = $Profiles->getProfile(Zend_Auth::getInstance()->getIdentity()->name);
         if ($profile->password == '') {
             $password_old->setAttrib('class', 'hidden');
             $password_old->setRequired(false);
             $password_old->setLabel('');
         }
     }
     $password1 = new Zend_Form_Element_Password('password1');
     $password1->setDecorators(array('ViewHelper', 'Errors'))->setAttrib('autocomplete', 'off')->setRequired(true)->addValidator('StringLength', false, array(5))->setErrorMessages(array($this->translator->translate('Min 5 characters')))->setLabel($this->translator->translate('New Password:'******'class', 'form-control');
     $password2 = new Zend_Form_Element_Password('password2');
     $password2->setDecorators(array('ViewHelper', 'Errors'))->setAttrib('autocomplete', 'off')->setRequired(true)->addValidator('Identical', false, array('token' => 'password1'))->setErrorMessages(array($this->translator->translate('The passwords do not match')))->setLabel($this->translator->translate('Confirm Password:'******'class', 'form-control');
     $submit = new Zend_Form_Element_Submit('changepass');
     $submit->setDecorators(array('ViewHelper'))->setLabel($this->translator->translate('Change Password'))->setAttrib('class', 'submit btn btn-default');
     $this->addElements(array($password_old, $password1, $password2, $submit));
     $this->postInit();
 }
Esempio n. 4
0
 /**
  *
  * Edit Group form
  *
  */
 public function init()
 {
     $cname = explode('_', get_class());
     $this->preInit(end($cname));
     // use template file
     $this->setDecorators(array(array('ViewScript', array('viewScript' => 'forms/EditGroup.phtml'))));
     // get group from database
     $request = Zend_Controller_Front::getInstance()->getRequest();
     $group = $request->getParam('name');
     $Profiles = new Application_Model_Profiles();
     $ProfilesMeta = new Application_Model_ProfilesMeta();
     $profile = $Profiles->getProfile($group, false, true);
     $owners_profile = $Profiles->getProfileByField('id', $profile->owner);
     $username_minchars = Zend_Registry::get('config')->get('username_minchars');
     $username_maxchars = Zend_Registry::get('config')->get('username_maxchars');
     // fields
     $id = new Zend_Form_Element_Hidden('id');
     $id->setValue($profile->id);
     $name = new Zend_Form_Element_Text('name');
     $name->setDecorators(array('ViewHelper', 'Errors'))->setLabel($this->translator->translate('Group Name'))->setValue($profile->name)->setIgnore(true)->setAttrib('readonly', true)->setAttrib('class', 'form-control');
     $screenname = new Zend_Form_Element_Text('screen_name');
     $screenname->setDecorators(array('ViewHelper', 'Errors'))->addFilter('StringTrim')->setValue($profile->screen_name)->addValidator('alnum', false, array('allowWhiteSpace' => true))->addValidator('stringLength', false, array($username_minchars, $username_maxchars))->setErrorMessages(array(sprintf($this->translator->translate('Please choose a valid name between %d and %d characters'), $username_minchars, $username_maxchars)))->setLabel($this->translator->translate('Screen Name'))->setRequired(true)->setAttrib('class', 'form-control');
     $description = new Zend_Form_Element_Textarea('description');
     $description->setDecorators(array('ViewHelper', 'Errors'))->setAttrib('COLS', '')->setAttrib('ROWS', '4')->addFilter('StripTags')->setValue($ProfilesMeta->getMetaValue('description', $profile->id))->setLabel($this->translator->translate('About this group'))->setAttrib('class', 'form-control');
     $profile_privacy = new Zend_Form_Element_Select('profile_privacy');
     $profile_privacy->setDecorators(array('ViewHelper', 'Errors'))->setMultiOptions(Zend_Registry::get('group_privacy_array'))->setErrorMessages(array($this->translator->translate('Select group visibility')))->setLabel($this->translator->translate('Select group visibility'))->setRequired(true)->setValue($profile->profile_privacy)->setAttrib('class', 'form-control');
     $is_hidden = new Zend_Form_Element_Checkbox('is_hidden');
     $is_hidden->setDecorators(array('ViewHelper', 'Errors'))->setValue(isset($profile->is_hidden) && $profile->is_hidden == 1 ? 1 : 0)->setLabel($this->translator->translate('Remove?'))->setCheckedValue("1")->setUncheckedValue("0");
     $submit = new Zend_Form_Element_Submit('formsubmit');
     $submit->setDecorators(array('ViewHelper'))->setLabel($this->translator->translate('Save'))->setAttrib('class', 'submit btn btn-default');
     $this->addElements(array($id, $name, $screenname, $profile_privacy, $description, $is_hidden, $submit));
     $this->postInit();
 }
 public function init()
 {
     $Profiles = new Application_Model_Profiles();
     $Connections = new Application_Model_Connections();
     $name = $this->getRequest()->getParam('name');
     $this->profile = $Profiles->getProfile($name);
     // check privacy
     if ($this->profile) {
         if (Zend_Auth::getInstance()->hasIdentity()) {
             $current_user_id = Zend_Auth::getInstance()->getIdentity()->id;
             $current_user_role = Zend_Auth::getInstance()->getIdentity()->role;
         } elseif (Zend_Registry::get('config')->get('allow_guests') || $this->profile->type == 'page') {
             $current_user_id = 0;
             $current_user_role = 'guest';
         } else {
             $this->redirect('');
         }
         // @formatter:off
         if ($this->profile->profile_privacy == 'public' || $this->profile->profile_privacy == 'everyone' && $current_user_id > 0 || ($current_user_role == 'admin' || $current_user_role == 'reviewer') || $current_user_id == $this->profile->id || $this->profile->profile_privacy == 'followers' && $Connections->isFollowing($current_user_id, $this->profile->id) || $this->profile->profile_privacy == 'friends' && $Connections->areFriends($current_user_id, $this->profile->id)) {
             // ok, has privileges
         } else {
             // user doesn't have privileges to view this profile
             $this->forward('private');
         }
         // @formatter:on
     }
 }
 /**
  * Read / Compose a new message (via ajax)
  */
 public function newAction()
 {
     $current_user = Zend_Auth::getInstance()->getIdentity();
     $request = $this->getRequest();
     $to_user = $request->getParam('to', false);
     $offset = $request->getParam('offset', false);
     $Profiles = new Application_Model_Profiles();
     $ProfilesMeta = new Application_Model_ProfilesMeta();
     $Connections = new Application_Model_Connections();
     $Messages = new Application_Model_Messages();
     $Notifications = new Application_Model_Notifications();
     $message_form = new Application_Form_Message();
     $this->view->message_form = $message_form;
     $user = $Profiles->getProfile($to_user);
     $json_ret = array('errors' => '', 'html' => '', 'offset' => '');
     if (!$user || !isset($user->id) || $user->type != 'user') {
         $json_ret['errors'] = $this->view->translate('This user does not exist');
         // exit
         $this->getHelper('json')->sendJson($json_ret);
     }
     $users_meta = $ProfilesMeta->getMetaValues($user->id);
     // check private message privacy
     if ($current_user->role != 'admin' && $current_user->role != 'reviewer' && isset($users_meta['contact_privacy']) && $users_meta['contact_privacy'] == 'f' && !$Connections->areFriends($current_user->id, $user->id)) {
         $json_ret['errors'] = $this->view->translate('Private profile (friends only)');
         // exit
         $this->getHelper('json')->sendJson($json_ret);
     }
     $this->view->to_screen_name = $user->screen_name;
     if ($request->isPost() && $message_form->isValid($_POST)) {
         $content = $message_form->getValue('content');
         $result = $Messages->sendMessage($user->id, $content);
         if (!$result) {
             $json_ret['errors'] = $this->view->translate('Server-side error');
             // exit
             $this->getHelper('json')->sendJson($json_ret);
         }
         // mark as read
         $Messages->markAsRead($user->id);
     }
     // get new messages
     $messages = $Messages->getMessages($user->id, $offset);
     // clear email notifications since you are looking at them right now
     $Notifications->clearEmailNotifications(8);
     if (!empty($messages)) {
         // send last visible message
         $last = end($messages);
         $json_ret['offset'] = $last['message_id'];
         foreach ($messages as $message) {
             $this->view->message = $message;
             $json_ret['html'] .= $this->view->render('/partial/message.phtml');
         }
     }
     $this->getHelper('json')->sendJson($json_ret);
 }
Esempio n. 7
0
 public function preDispatch(Zend_Controller_Request_Abstract $request)
 {
     $profile_id = (int) $request->getParam('ref');
     if ($profile_id) {
         $Profiles = new Application_Model_Profiles();
         $profile = $Profiles->getProfileByField('id', $profile_id);
         if ($profile && !isset($_COOKIE["ref"])) {
             $expire_time = time() + 3600 * 24 * 365;
             // 1 year
             setcookie('ref', base64_encode($profile_id), $expire_time, '/');
         }
     }
 }
Esempio n. 8
0
 /**
  * Login user
  */
 public static function loginUser($user_data, $authAdapter, $authStorage)
 {
     $Profiles = new Application_Model_Profiles();
     $ProfilesMeta = new Application_Model_ProfilesMeta();
     // everything ok, login user
     $user_data = $authAdapter->getResultRowObject();
     // update fields
     $Profiles->updateField($user_data->name, 'relogin_request', 0);
     $authStorage->write($user_data);
     // update last login date
     $ProfilesMeta->metaUpdate('last_login', Application_Plugin_Common::now(), $user_data->id);
     // set user specific language after login
     $session = new Zend_Session_Namespace('Default');
     $session->language = $user_data->language;
     return;
 }
Esempio n. 9
0
 /**
  *
  * Edit Profile form
  *
  */
 public function init()
 {
     $cname = explode('_', get_class());
     $this->preInit(end($cname));
     // use template file
     $this->setDecorators(array(array('ViewScript', array('viewScript' => 'forms/Profile.phtml'))));
     // get user from database
     $Profiles = new Application_Model_Profiles();
     $ProfilesMeta = new Application_Model_ProfilesMeta();
     $profile = $Profiles->getProfile(Zend_Auth::getInstance()->getIdentity()->name, true);
     $all_meta = $ProfilesMeta->getMetaValues($profile->id);
     $username_minchars = Zend_Registry::get('config')->get('username_minchars');
     $username_maxchars = Zend_Registry::get('config')->get('username_maxchars');
     // fields
     $id = new Zend_Form_Element_Hidden('id');
     $id->setValue($profile->id);
     $name = new Zend_Form_Element_Text('name');
     $name->setDecorators(array('ViewHelper', 'Errors'))->setLabel($this->translator->translate('Username'))->setValue($profile->name)->setIgnore(true)->setAttrib('readonly', true)->setAttrib('class', 'form-control');
     $email = new Zend_Form_Element_Text('email');
     $email->setDecorators(array('ViewHelper', 'Errors'))->setLabel($this->translator->translate('Email'))->setValue($profile->email)->setIgnore(true)->setAttrib('readonly', true)->setAttrib('class', 'form-control');
     $screenname = new Zend_Form_Element_Text('screen_name');
     $screenname->setDecorators(array('ViewHelper', 'Errors'))->addFilter('StringTrim')->setValue($profile->screen_name)->addValidator('alnum', false, array('allowWhiteSpace' => true))->addValidator('stringLength', false, array($username_minchars, $username_maxchars))->setErrorMessages(array(sprintf($this->translator->translate('Please choose a valid name between %d and %d characters'), $username_minchars, $username_maxchars)))->setLabel($this->translator->translate('Screen Name'))->setRequired(true)->setAttrib('class', 'form-control');
     $description = new Zend_Form_Element_Textarea('description');
     $description->setDecorators(array('ViewHelper', 'Errors'))->setAttrib('COLS', '')->setAttrib('ROWS', '4')->addFilter('StripTags')->setValue(isset($all_meta['description']) ? $all_meta['description'] : '')->setLabel($this->translator->translate('About you'))->setAttrib('class', 'form-control');
     $profile_privacy = new Zend_Form_Element_Select('profile_privacy');
     $profile_privacy->setDecorators(array('ViewHelper', 'Errors'))->setMultiOptions(Zend_Registry::get('profile_privacy_array'))->setErrorMessages(array($this->translator->translate('Select profile visibility')))->setLabel($this->translator->translate('Profile visibility'))->setRequired(true)->setValue($profile->profile_privacy)->setAttrib('class', 'form-control');
     $birthday = new Application_Form_Element_Date('birthday');
     $birthday->setDecorators(array('ViewHelper', 'Errors'))->setAttrib('class', 'form-control')->setLabel($this->translator->translate('Date of birth'))->setErrorMessages(array($this->translator->translate('Please enter a valid date')))->setYearSpan(1920, date('Y') - 1);
     if (isset($all_meta['birthday'])) {
         $timestamp = strtotime($all_meta['birthday']);
         $birthday->setValue(array('day' => date('d', $timestamp), 'month' => date('m', $timestamp), 'year' => date('Y', $timestamp)));
     }
     $gender = new Zend_Form_Element_Select('gender');
     $gender->setDecorators(array('ViewHelper', 'Errors'))->setMultiOptions(Zend_Registry::get('genders_array'))->setErrorMessages(array($this->translator->translate('Please select something')))->setLabel($this->translator->translate('Gender'))->setRequired(true)->setValue(isset($all_meta['gender']) ? $all_meta['gender'] : '')->setAttrib('class', 'form-control');
     $online_status = new Zend_Form_Element_Select('show_online_status');
     $online_status->setDecorators(array('ViewHelper', 'Errors'))->setMultiOptions(Zend_Registry::get('onlinestatus_array'))->setErrorMessages(array($this->translator->translate('Select profile visibility')))->setLabel($this->translator->translate('Online Status'))->setRequired(true)->setValue(isset($all_meta['show_online_status']) ? $all_meta['show_online_status'] : 's')->setAttrib('class', 'form-control');
     $contact_privacy = new Zend_Form_Element_Select('contact_privacy');
     $contact_privacy->setDecorators(array('ViewHelper', 'Errors'))->setMultiOptions(Zend_Registry::get('contactprivacy_array'))->setErrorMessages(array($this->translator->translate('Please select something')))->setLabel($this->translator->translate('Who can contact me?'))->setRequired(true)->setValue(isset($all_meta['contact_privacy']) ? $all_meta['contact_privacy'] : 'e')->setAttrib('class', 'form-control');
     $location = new Zend_Form_Element_Text('location');
     $location->setDecorators(array('ViewHelper', 'Errors'))->setRequired(false)->setLabel($this->translator->translate('Location'))->setAttrib('class', 'form-control')->addFilter('StripTags')->setValue(isset($all_meta['location']) ? $all_meta['location'] : '')->setErrorMessages(array($this->translator->translate('Enter a valid location')));
     $website = new Zend_Form_Element_Text('website');
     $website->setDecorators(array('ViewHelper', 'Errors'))->setRequired(false)->setLabel($this->translator->translate('Website'))->setAttrib('class', 'form-control')->addFilter('StripTags')->setValue(isset($all_meta['website']) ? $all_meta['website'] : '')->setErrorMessages(array($this->translator->translate('Enter a valid website')));
     $submit = new Zend_Form_Element_Submit('formsubmit');
     $submit->setDecorators(array('ViewHelper'))->setLabel($this->translator->translate('Save'))->setAttrib('class', 'submit btn btn-default form-control');
     $this->addElements(array($id, $name, $email, $screenname, $gender, $profile_privacy, $online_status, $contact_privacy, $description, $location, $website, $birthday, $submit));
     $this->postInit();
 }
 /**
  * Update reported resource (via ajax)
  */
 public function updatereportedAction()
 {
     $report_id = (int) $this->getRequest()->getParam('report_id');
     $mark_reported = (int) $this->getRequest()->getParam('mark_reported');
     $Reports = new Application_Model_Reports();
     $report = $Reports->getReport($report_id);
     $ret = false;
     if ($mark_reported == 1) {
         switch ($report['resource_type']) {
             case 'post':
                 // posts
                 $Posts = new Application_Model_Posts();
                 $ret = $Posts->markHidden($report['resource_id']);
                 break;
             case 'user':
             case 'group':
             case 'page':
                 // profiles
                 $Profiles = new Application_Model_Profiles();
                 $ret = $Profiles->markHidden($report['resource_id']);
                 break;
             case 'message':
                 // messages
                 $Messages = new Application_Model_Messages();
                 $ret = $Messages->markHidden($report['resource_id']);
                 break;
             case 'comment':
                 // comments
                 $Comments = new Application_Model_Comments();
                 $ret = $Comments->deleteComment($report['resource_id']);
                 break;
             case 'image':
                 // images
                 $Images = new Application_Model_Images();
                 $ret = $Images->deleteImage($report['resource_id'], 'posts');
                 $Reports->clearReports($report['resource_id'], 'image');
                 break;
             default:
                 break;
         }
     }
     $Reports->updateReport($report_id, $mark_reported);
     $this->getHelper('json')->sendJson($ret);
 }
 /**
  * loading posts after initial load (via ajax)
  *
  * pages 2, 3...
  */
 public function loadAction()
 {
     $wall_id = (int) $this->getRequest()->getParam('wall_id');
     $search_term = $this->getRequest()->getParam('term');
     $search_context = $this->getRequest()->getParam('context');
     $Posts = new Application_Model_Posts();
     $Profiles = new Application_Model_Profiles();
     $profile_type = 'feed';
     if ($wall_id > 0) {
         $wall_profile = $Profiles->getProfileByField('id', $wall_id);
         $profile_type = $wall_profile->type;
     }
     if ($this->getRequest()->getParam('post_page_number')) {
         $Posts->page_number = (int) $this->getRequest()->getParam('post_page_number');
     } else {
         $Posts->page_number = 2;
     }
     if ($search_context) {
         // retrieve posts on search context
         $data = $Posts->getPosts(null, false, array('term' => $search_term, 'context' => $search_context));
     } else {
         // plain posts on wall
         $data = $Posts->getPosts($wall_id);
     }
     $this->view->posts_data = $data;
     $this->view->profile_type = $profile_type;
     // stop load if there are no more posts
     if (count($data) >= Zend_Registry::get('config')->get('limit_posts')) {
         $stop_loading = false;
     } else {
         $stop_loading = true;
     }
     // Add coment form
     $add_comment_form = new Application_Form_AddComment();
     $this->view->add_comment_form = $add_comment_form;
     $page_number = $Posts->page_number + 1;
     $posts = $this->view->render('/partial/posts.phtml');
     $out = array('posts' => $posts, 'post_page_number' => $page_number, 'stop' => $stop_loading);
     $this->_helper->json($out);
 }
Esempio n. 12
0
 /**
  *
  * Change network background
  *
  */
 public function init()
 {
     $cname = explode('_', get_class());
     $this->preInit(end($cname));
     // use template file
     $this->setDecorators(array(array('ViewScript', array('viewScript' => 'forms/CustomBackground.phtml'))));
     // load settings
     $Profiles = new Application_Model_Profiles();
     $ProfilesMeta = new Application_Model_ProfilesMeta();
     $request = Zend_Controller_Front::getInstance()->getRequest();
     $request_profile_id = $request->getParam('id', false);
     $profile = $Profiles->getProfileByField('id', $request_profile_id);
     if (Zend_Auth::getInstance()->getIdentity()->role == 'admin' && $request_profile_id || $request_profile_id && $Profiles->getProfile($profile->name, false, true)) {
         // admin or own group & page
         $profile_id = $request_profile_id;
     } else {
         // editing profile
         $profile_id = Zend_Auth::getInstance()->getIdentity()->id;
     }
     $all_meta = $ProfilesMeta->getMetaValues($profile_id);
     // fields
     $background_image = new Zend_Form_Element_File('background');
     $background_image->setDecorators(array('File', 'Errors'))->setLabel($this->translator->translate('Choose Picture (jpg, png or gif)'))->addValidator('Count', false, 1)->addValidator('Size', false, Zend_Registry::get('config')->get('max_file_upload_size'))->addValidator('Extension', false, 'jpg,jpeg,png,gif');
     $background_image->getValidator('Count')->setMessage($this->translator->translate('File not allowed or too big'));
     $background_image->getValidator('Size')->setMessage($this->translator->translate('File not allowed or too big'));
     $background_image->getValidator('Extension')->setMessage($this->translator->translate('File not allowed or too big'));
     $background_repeat = new Zend_Form_Element_Checkbox('background_repeat');
     $background_repeat->setDecorators(array('ViewHelper', 'Errors'))->setValue(isset($all_meta['background_repeat']) && $all_meta['background_repeat'] == 1 ? 1 : 0)->setLabel($this->translator->translate('Repeat background'))->setCheckedValue("1")->setUncheckedValue("0");
     $background_scroll = new Zend_Form_Element_Checkbox('background_scroll');
     $background_scroll->setDecorators(array('ViewHelper', 'Errors'))->setValue(isset($all_meta['background_scroll']) && $all_meta['background_scroll'] == 1 ? 1 : 0)->setLabel($this->translator->translate('Scroll background'))->setCheckedValue("1")->setUncheckedValue("0");
     $background_stretch = new Zend_Form_Element_Checkbox('background_stretch');
     $background_stretch->setDecorators(array('ViewHelper', 'Errors'))->setValue(isset($all_meta['background_stretch']) && $all_meta['background_stretch'] == 1 ? 1 : 0)->setLabel($this->translator->translate('Stretch background'))->setCheckedValue("1")->setUncheckedValue("0");
     $disable_image = new Zend_Form_Element_Checkbox('background_noimage');
     $disable_image->setDecorators(array('ViewHelper', 'Errors'))->setValue(isset($all_meta['background_noimage']) && $all_meta['background_noimage'] == 1 ? 1 : 0)->setLabel($this->translator->translate('Disable custom image'))->setCheckedValue("1")->setUncheckedValue("0");
     $submit = new Zend_Form_Element_Submit('formsubmit');
     $submit->setDecorators(array('ViewHelper'))->setLabel($this->translator->translate('Save'))->setAttrib('class', 'submit btn btn-default');
     $this->addElements(array($background_image, $background_repeat, $background_scroll, $background_stretch, $disable_image, $submit));
     $this->postInit();
 }
 /**
  * Accept / Remove group membership
  */
 public function membershipAction()
 {
     $user_name = $this->getRequest()->getParam('name');
     $group_name = $this->getRequest()->getParam('group');
     $action = $this->getRequest()->getParam('do');
     $Connections = new Application_Model_Connections();
     $Profiles = new Application_Model_Profiles();
     // get user
     $user_profile = $Profiles->getProfile($user_name);
     // get group and check ownership
     $group_profile = $Profiles->getProfile($group_name, false, true);
     if (!$group_profile || !$user_profile) {
         $this->redirect('');
     }
     if ($action == 'join') {
         $Connections->acceptGroupMembership($user_profile->id, $group_profile->id);
     } else {
         $Connections->rejectGroupMembership($user_profile->id, $group_profile->id);
     }
     // reload to group page
     $this->redirect($group_name);
 }
Esempio n. 14
0
 /**
  *
  * Edit Page form (admin only)
  *
  */
 public function init()
 {
     $cname = explode('_', get_class());
     $this->preInit(end($cname));
     // use template file
     $this->setDecorators(array(array('ViewScript', array('viewScript' => 'forms/AdminPage.phtml'))));
     // get group from database
     $request = Zend_Controller_Front::getInstance()->getRequest();
     $request_profile_id = $request->getParam('id');
     $Profiles = new Application_Model_Profiles();
     $ProfilesMeta = new Application_Model_ProfilesMeta();
     $profile = $Profiles->getProfileByField('id', $request_profile_id);
     $owners_profile = $Profiles->getProfileByField('id', $profile->owner);
     // fields
     $profile_id = new Zend_Form_Element_Text('id');
     $profile_id->setDecorators(array('ViewHelper', 'Errors'))->setLabel($this->translator->translate('Id'))->setValue($profile->id)->setIgnore(true)->setAttrib('readonly', true)->setAttrib('class', 'form-control');
     $username_minchars = Zend_Registry::get('config')->get('username_minchars');
     $username_maxchars = Zend_Registry::get('config')->get('username_maxchars');
     // lowercase, alnum without whitespaces
     $name = new Zend_Form_Element_Text('name');
     $name->setDecorators(array('ViewHelper', 'Errors'))->setRequired(true)->addFilter('StringToLower')->addValidator('alnum', false, array('allowWhiteSpace' => false))->addValidator('stringLength', false, array($username_minchars, $username_maxchars))->setErrorMessages(array(sprintf($this->translator->translate('Please choose a valid username between %d and %d characters'), $username_minchars, $username_maxchars)))->setAttrib('class', 'form-control alnum-only')->setValue($profile->name)->setLabel($this->translator->translate('Username'));
     $screenname = new Zend_Form_Element_Text('screen_name');
     $screenname->setDecorators(array('ViewHelper', 'Errors'))->addFilter('StringTrim')->setValue($profile->screen_name)->addValidator('alnum', false, array('allowWhiteSpace' => true))->addValidator('stringLength', false, array($username_minchars, $username_maxchars))->setErrorMessages(array(sprintf($this->translator->translate('Please choose a valid name between %d and %d characters'), $username_minchars, $username_maxchars)))->setLabel($this->translator->translate('Screen Name'))->setRequired(true)->setAttrib('class', 'form-control');
     $owner_name = isset($owners_profile->name) ? $owners_profile->name : '-';
     $owner = new Zend_Form_Element_Text('owner');
     $owner->setDecorators(array('ViewHelper', 'Errors'))->setLabel($this->translator->translate('Owner') . ' (' . $this->translator->translate('Current') . ': ' . $owner_name . ')')->setValue($owner_name)->setRequired(true)->setAttrib('class', 'form-control');
     $badges = new Zend_Form_Element_Text('badges');
     $badges->setDecorators(array('ViewHelper', 'Errors'))->setLabel($this->translator->translate('Badges based on Glyphicon font separated by comma (e.g. "bullhorn,earphone")'))->setValue($ProfilesMeta->getMetaValue('badges', $profile->id))->setAttrib('class', 'form-control');
     $description = new Zend_Form_Element_Textarea('description');
     $description->setDecorators(array('ViewHelper', 'Errors'))->setAttrib('COLS', '')->setAttrib('ROWS', '4')->addFilter('StripTags')->setValue($ProfilesMeta->getMetaValue('description', $profile->id))->setLabel($this->translator->translate('About this page'))->setAttrib('class', 'form-control');
     $is_hidden = new Zend_Form_Element_Checkbox('is_hidden');
     $is_hidden->setDecorators(array('ViewHelper', 'Errors'))->setValue(isset($profile->is_hidden) && $profile->is_hidden == 1 ? 1 : 0)->setLabel($this->translator->translate('Hide?'))->setCheckedValue("1")->setUncheckedValue("0");
     $submit = new Zend_Form_Element_Submit('formsubmit');
     $submit->setDecorators(array('ViewHelper'))->setLabel($this->translator->translate('Save'))->setAttrib('class', 'submit btn btn-default');
     $this->addElements(array($profile_id, $owner, $name, $screenname, $badges, $description, $is_hidden, $submit));
     $this->postInit();
 }
Esempio n. 15
0
 /**
  * Lost password
  */
 public function submitLostPasswordForm($form)
 {
     $front = Zend_Controller_Front::getInstance();
     if ($form->isValid($_POST)) {
         $name = $form->getValue('name');
         $Profiles = new Application_Model_Profiles();
         $nameRow = $Profiles->getProfileByField('name', $name);
         // maybe user is entering email?
         $nameRow_byEmail = $Profiles->getProfileByField('email', $name);
         if ($nameRow_byEmail) {
             $nameRow = $Profiles->getProfileByField('name', $nameRow_byEmail->name);
         }
         if ($nameRow && $Profiles->isActivated($nameRow->name) && $nameRow->is_hidden == 0) {
             $resetPasswordKey = $Profiles->generateActivationKey($nameRow->email);
             $ProfilesMeta = new Application_Model_ProfilesMeta();
             $profile = $ProfilesMeta->metaUpdate('password_reset', $resetPasswordKey, $nameRow->id);
             // password recovery email
             $ret = Application_Plugin_Common::sendRecoveryEmail($nameRow->email, $name, $resetPasswordKey);
             // show info message
             if ($ret) {
                 Application_Plugin_Alerts::success(Zend_Registry::get('Zend_Translate')->translate('We have sent an email to your registered email address. Follow the instructions and you will be able to enter a new password.'), 'off');
             }
             // flush url
             Zend_Controller_Action_HelperBroker::getStaticHelper('Redirector')->gotoUrl('');
         } else {
             sleep(2);
             $form->getElement('name')->setErrors(array(Zend_Registry::get('Zend_Translate')->translate('Username does not exists')));
         }
     }
     return $form;
 }
 /**
  * Edit page
  */
 public function pageAction()
 {
     $Profiles = new Application_Model_Profiles();
     $request = $this->getRequest();
     $profile_id = $request->getParam('id', null);
     $profile = $Profiles->getProfileByField('id', $profile_id);
     $this->view->sidebar_editprofile = $profile;
     // attach sidebar box
     Zend_Registry::get('hooks')->attach('hook_view_sidebar', 5, function () {
         echo Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer')->view->render('/_sidebar/editprofile.phtml');
     });
     $edit_form = new Application_Form_AdminPage();
     $this->view->edit_form = $edit_form;
     if ($request->isPost() && $profile_id && $edit_form->isValid($_POST)) {
         $owner_profile = $Profiles->getProfileByField('name', $edit_form->getValue('owner'));
         $profile->owner = $owner_profile->id;
         $profile->name = $edit_form->getValue('name');
         $profile->screen_name = $edit_form->getValue('screen_name');
         $profile->is_hidden = $edit_form->getValue('is_hidden');
         $profile->save();
         $ProfilesMeta = new Application_Model_ProfilesMeta();
         $ProfilesMeta->metaUpdate('description', $edit_form->getValue('description'), $profile_id);
         $ProfilesMeta->metaUpdate('badges', $edit_form->getValue('badges'), $profile_id);
         Application_Plugin_Alerts::success($this->view->translate('Page updated'));
         // flush url
         $this->redirect('admin/page/id/' . $profile_id);
     }
 }
 /**
  * Change cover picture
  */
 public function setcoverpictureAction()
 {
     $request = $this->getRequest();
     $profile_name = $request->getParam('name', null);
     $Profiles = new Application_Model_Profiles();
     $profile = $Profiles->getProfile($profile_name, true, true);
     if (!$profile) {
         $this->redirect('');
     }
     if (!isset($this->view->sidebar_nav_menu)) {
         $this->view->sidebar_editprofile = $profile;
         Zend_Registry::get('hooks')->attach('hook_view_sidebar', 5, function () {
             echo Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer')->view->render('/_sidebar/editprofile.phtml');
         });
     }
     $coverpicture_form = new Application_Form_CoverPicture();
     $this->view->cover = $profile->cover;
     $this->view->coverpicture_form = $coverpicture_form;
     // image processing helper
     $this->_helper->imageProcessing('cover', $profile->name, $coverpicture_form, 'coverfile');
 }
 /**
  * Create a page
  */
 public function createpageAction()
 {
     $this->buildMenu(true);
     $request = $this->getRequest();
     $Profiles = new Application_Model_Profiles();
     $profile_form = new Application_Form_AddPage();
     $this->view->profile_form = $profile_form;
     if ($request->isPost() && $profile_form->isValid($_POST)) {
         if ($Profiles->getProfile($profile_form->getValue('name'), true)) {
             $profile_form->getElement('name')->setErrors(array(Zend_Registry::get('Zend_Translate')->translate('This username is not available')));
             return;
         }
         $profile = $Profiles->createRow();
         $profile->owner = Zend_Auth::getInstance()->getIdentity()->id;
         $profile->name = $profile_form->getValue('name');
         $profile->screen_name = $profile_form->getValue('screen_name');
         $profile->profile_privacy = 'public';
         $Profiles->createNewPage($profile);
         $ProfilesMeta = new Application_Model_ProfilesMeta();
         $ProfilesMeta->metaUpdate('description', $profile_form->getValue('description'), $profile->id);
         Application_Plugin_Alerts::success($this->view->translate('New page created'));
         $this->redirect('editprofile/listpages');
     }
 }
 /**
  * Change language
  */
 public function languageAction()
 {
     Application_Plugin_Common::redirectOnDemoAccount();
     $request = $this->getRequest();
     $session = new Zend_Session_Namespace('Default');
     $new_lang = $request->getParam('code');
     $translate = Zend_Registry::get('Zend_Translate');
     // change current language
     if ($new_lang && in_array($new_lang, $translate->getList())) {
         $session->language = $new_lang;
         if (Zend_Auth::getInstance()->hasIdentity()) {
             // update user's default language
             $Profiles = new Application_Model_Profiles();
             $Profiles->updateField(Zend_Auth::getInstance()->getIdentity()->name, 'language', $new_lang);
         }
     }
     $this->redirect('');
 }
Esempio n. 20
0
        $Profiles = new Application_Model_Profiles();
        $profile = $Profiles->getProfile($match[2]);
        if ($profile && $profile->type == 'user') {
            $Notifications = new Application_Model_Notifications();
            $Notifications->pushNotification(array($profile->id), 1001, 'post', $post_id);
        }
    }, $content);
});
// push comment mention notifications
$this->attach('hook_data_aftersavecomment', 10, function ($data) {
    $comment_id = $data['comment_id'];
    $Comments = new Application_Model_Comments();
    $comment = $Comments->getComment($comment_id);
    $content = $data['content'];
    $users = preg_replace_callback("/(^|[\t\r\n\\s])@(\\w+)/u", function ($match) use($comment_id) {
        $Profiles = new Application_Model_Profiles();
        $profile = $Profiles->getProfile($match[2]);
        if ($profile && $profile->type == 'user') {
            $Notifications = new Application_Model_Notifications();
            $Notifications->pushNotification(array($profile->id), 1001, 'comment', $comment_id);
        }
    }, $content);
});
// notifications
$this->attach('hook_data_notificationsfix', 10, function (&$data) {
    $baseURL = Application_Plugin_Common::getFullBaseUrl();
    $transl = Zend_Registry::get('Zend_Translate');
    foreach ($data as &$row) {
        // user mentioned inside post/comment
        if ($row['notification_type'] == 1001) {
            $row['do_send_email'] = false;
Esempio n. 21
0
 /**
  *
  * Edit User (admin only)
  *
  */
 public function init()
 {
     $cname = explode('_', get_class());
     $this->preInit(end($cname));
     // use template file
     $this->setDecorators(array(array('ViewScript', array('viewScript' => 'forms/AdminUser.phtml'))));
     $request = Zend_Controller_Front::getInstance()->getRequest();
     $request_profile_id = $request->getParam('id');
     // get user from database
     $Profiles = new Application_Model_Profiles();
     $ProfilesMeta = new Application_Model_ProfilesMeta();
     $profile = $Profiles->getProfileByField('id', $request_profile_id);
     $all_meta = $ProfilesMeta->getMetaValues($profile->id);
     if (isset($all_meta['bulk_notifications'])) {
         $notifications_meta = json_decode($all_meta['bulk_notifications'], true);
     }
     // fields
     $role = new Zend_Form_Element_Select('role');
     $role->setDecorators(array('ViewHelper', 'Errors'))->setMultiOptions(array('user' => 'User', 'subscriber' => 'Subscriber', 'reviewer' => 'Reviewer', 'admin' => 'Admin'))->setErrorMessages(array($this->translator->translate('User Role is requiered')))->setLabel($this->translator->translate('User Role'))->setRequired(true)->setValue($profile->role)->setAttrib('class', 'form-control');
     $profile_id = new Zend_Form_Element_Text('id');
     $profile_id->setDecorators(array('ViewHelper', 'Errors'))->setLabel($this->translator->translate('Id'))->setValue($profile->id)->setIgnore(true)->setAttrib('readonly', true)->setAttrib('class', 'form-control');
     $username_minchars = Zend_Registry::get('config')->get('username_minchars');
     $username_maxchars = Zend_Registry::get('config')->get('username_maxchars');
     // lowercase, alnum without whitespaces
     $name = new Zend_Form_Element_Text('name');
     $name->setDecorators(array('ViewHelper', 'Errors'))->setRequired(true)->addFilter('StringToLower')->addValidator('alnum', false, array('allowWhiteSpace' => false))->addValidator('stringLength', false, array($username_minchars, $username_maxchars))->setErrorMessages(array(sprintf($this->translator->translate('Please choose a valid username between %d and %d characters'), $username_minchars, $username_maxchars)))->setAttrib('class', 'form-control alnum-only')->setValue($profile->name)->setLabel($this->translator->translate('Name'));
     $email = new Zend_Form_Element_Text('email');
     $email->setDecorators(array('ViewHelper', 'Errors'))->setLabel($this->translator->translate('Email'))->setValue($profile->email)->setAttrib('class', 'form-control');
     $screenname = new Zend_Form_Element_Text('screen_name');
     $screenname->setDecorators(array('ViewHelper', 'Errors'))->addFilter('StringTrim')->setValue($profile->screen_name)->addValidator('alnum', false, array('allowWhiteSpace' => true))->addValidator('stringLength', false, array($username_minchars, $username_maxchars))->setErrorMessages(array(sprintf($this->translator->translate('Please choose a valid name between %d and %d characters'), $username_minchars, $username_maxchars)))->setLabel($this->translator->translate('Screen Name'))->setRequired(true)->setAttrib('class', 'form-control');
     $description = new Zend_Form_Element_Textarea('description');
     $description->setDecorators(array('ViewHelper', 'Errors'))->setAttrib('COLS', '')->setAttrib('ROWS', '4')->setValue(isset($all_meta['description']) ? $all_meta['description'] : '')->setLabel($this->translator->translate('Description'))->setAttrib('class', 'form-control');
     $profile_privacy = new Zend_Form_Element_Select('profile_privacy');
     $profile_privacy->setDecorators(array('ViewHelper', 'Errors'))->setMultiOptions(Zend_Registry::get('profile_privacy_all'))->setErrorMessages(array($this->translator->translate('Select profile visibility')))->setLabel($this->translator->translate('Profile visibility'))->setRequired(true)->setValue($profile->profile_privacy)->setAttrib('class', 'form-control');
     $default_privacy = new Zend_Form_Element_Select('default_privacy');
     $default_privacy->setDecorators(array('ViewHelper', 'Errors'))->setMultiOptions(Zend_Registry::get('post_privacy_array'))->setLabel($this->translator->translate('Default visibility'))->setRequired(true)->setValue($profile->default_privacy)->setAttrib('class', 'form-control');
     $language = new Zend_Form_Element_Select('language');
     $language->setDecorators(array('ViewHelper', 'Errors'))->setMultiOptions(Zend_Registry::get('languages_array'))->setLabel($this->translator->translate('Language'))->setRequired(true)->setValue($profile->language)->setAttrib('class', 'form-control');
     $birthday = new Application_Form_Element_Date('birthday');
     $birthday->setDecorators(array('ViewHelper', 'Errors'))->setLabel($this->translator->translate('Date of birth'))->setErrorMessages(array($this->translator->translate('Please enter a valid date')));
     $birthday->setYearSpan(1920, date('Y') - 1);
     if (isset($all_meta['birthday'])) {
         $timestamp = strtotime($all_meta['birthday']);
         $birthday->setValue(array('day' => date('d', $timestamp), 'month' => date('m', $timestamp), 'year' => date('Y', $timestamp)));
     }
     $password1 = new Zend_Form_Element_Password('password1');
     $password1->setDecorators(array('ViewHelper', 'Errors'))->setAttrib('autocomplete', 'off')->setLabel($this->translator->translate('New Password:'******'class', 'form-control');
     $activation = new Zend_Form_Element_Text('activationkey');
     $activation->setDecorators(array('ViewHelper', 'Errors'))->setLabel($this->translator->translate('Activation key (or "activated")'))->setValue($profile->activationkey)->setAttrib('class', 'form-control');
     $gender = new Zend_Form_Element_Select('gender');
     $gender->setDecorators(array('ViewHelper', 'Errors'))->setMultiOptions(Zend_Registry::get('genders_array'))->setErrorMessages(array($this->translator->translate('Please select something')))->setLabel($this->translator->translate('Gender'))->setRequired(true)->setValue(isset($all_meta['gender']) ? $all_meta['gender'] : '')->setAttrib('class', 'form-control');
     $online_status = new Zend_Form_Element_Select('show_online_status');
     $online_status->setDecorators(array('ViewHelper', 'Errors'))->setMultiOptions(Zend_Registry::get('onlinestatus_array'))->setErrorMessages(array($this->translator->translate('Select profile visibility')))->setLabel($this->translator->translate('Online Status'))->setRequired(true)->setValue(isset($all_meta['show_online_status']) ? $all_meta['show_online_status'] : 's')->setAttrib('class', 'form-control');
     $contact_privacy = new Zend_Form_Element_Select('contact_privacy');
     $contact_privacy->setDecorators(array('ViewHelper', 'Errors'))->setMultiOptions(Zend_Registry::get('contactprivacy_array'))->setErrorMessages(array($this->translator->translate('Please select something')))->setLabel($this->translator->translate('Who can contact me?'))->setRequired(true)->setValue(isset($all_meta['contact_privacy']) ? $all_meta['contact_privacy'] : 'e')->setAttrib('class', 'form-control');
     $location = new Zend_Form_Element_Text('location');
     $location->setDecorators(array('ViewHelper', 'Errors'))->setRequired(false)->setLabel($this->translator->translate('Location'))->setAttrib('class', 'form-control')->addFilter('StripTags')->setValue(isset($all_meta['location']) ? $all_meta['location'] : '')->setErrorMessages(array($this->translator->translate('Enter a valid location')));
     $website = new Zend_Form_Element_Text('website');
     $website->setDecorators(array('ViewHelper', 'Errors'))->setRequired(false)->setLabel($this->translator->translate('Website'))->setAttrib('class', 'form-control')->addFilter('StripTags')->setValue(isset($all_meta['website']) ? $all_meta['website'] : '')->setErrorMessages(array($this->translator->translate('Enter a valid website')));
     $badges = new Zend_Form_Element_Text('badges');
     $badges->setDecorators(array('ViewHelper', 'Errors'))->setLabel($this->translator->translate('Badges based on Glyphicon font separated by comma (e.g. "bullhorn,earphone")'))->setValue(isset($all_meta['badges']) ? $all_meta['badges'] : '')->setAttrib('class', 'form-control');
     $n1 = new Zend_Form_Element_Checkbox('notification_email_1');
     $n1->setDecorators(array('ViewHelper', 'Errors'))->setValue(isset($notifications_meta['notification_email_1']) && $notifications_meta['notification_email_1'] == 1 ? 1 : 0)->setLabel($this->translator->translate('Email when someone posts a new comment'))->setCheckedValue("1")->setUncheckedValue("0");
     $n2 = new Zend_Form_Element_Checkbox('notification_email_2');
     $n2->setDecorators(array('ViewHelper', 'Errors'))->setValue(isset($notifications_meta['notification_email_2']) && $notifications_meta['notification_email_2'] == 1 ? 1 : 0)->setLabel($this->translator->translate('Email when someone likes your post'))->setCheckedValue("1")->setUncheckedValue("0");
     $n3 = new Zend_Form_Element_Checkbox('notification_email_3');
     $n3->setDecorators(array('ViewHelper', 'Errors'))->setValue(isset($notifications_meta['notification_email_3']) && $notifications_meta['notification_email_3'] == 1 ? 1 : 0)->setLabel($this->translator->translate('Email when someone follows you'))->setCheckedValue("1")->setUncheckedValue("0");
     $n4 = new Zend_Form_Element_Checkbox('notification_email_4');
     $n4->setDecorators(array('ViewHelper', 'Errors'))->setValue(isset($notifications_meta['notification_email_4']) && $notifications_meta['notification_email_4'] == 1 ? 1 : 0)->setLabel($this->translator->translate('Email on new friends'))->setCheckedValue("1")->setUncheckedValue("0");
     $n6 = new Zend_Form_Element_Checkbox('notification_email_6');
     $n6->setDecorators(array('ViewHelper', 'Errors'))->setValue(isset($notifications_meta['notification_email_6']) && $notifications_meta['notification_email_6'] == 1 ? 1 : 0)->setLabel($this->translator->translate('Email when you lose a follower'))->setCheckedValue("1")->setUncheckedValue("0");
     $n7 = new Zend_Form_Element_Checkbox('notification_email_7');
     $n7->setDecorators(array('ViewHelper', 'Errors'))->setValue(isset($notifications_meta['notification_email_7']) && $notifications_meta['notification_email_7'] == 1 ? 1 : 0)->setLabel($this->translator->translate('Email when someone posts on your wall'))->setCheckedValue("1")->setUncheckedValue("0");
     $n8 = new Zend_Form_Element_Checkbox('notification_email_8');
     $n8->setDecorators(array('ViewHelper', 'Errors'))->setValue(isset($notifications_meta['notification_email_8']) && $notifications_meta['notification_email_8'] == 1 ? 1 : 0)->setLabel($this->translator->translate('Email when someone sends you a private message'))->setCheckedValue("1")->setUncheckedValue("0");
     $is_hidden = new Zend_Form_Element_Checkbox('is_hidden');
     $is_hidden->setDecorators(array('ViewHelper', 'Errors'))->setValue(isset($profile->is_hidden) && $profile->is_hidden == 1 ? 1 : 0)->setLabel($this->translator->translate('Hide?'))->setCheckedValue("1")->setUncheckedValue("0");
     $submit = new Zend_Form_Element_Submit('formsubmit');
     $submit->setDecorators(array('ViewHelper'))->setLabel($this->translator->translate('Save'))->setAttrib('class', 'submit btn btn-default');
     $this->addElements(array($profile_id, $role, $name, $email, $screenname, $description, $profile_privacy, $default_privacy, $language, $gender, $online_status, $contact_privacy, $location, $website, $birthday, $password1, $activation, $badges, $n1, $n2, $n3, $n4, $n6, $n7, $n8, $is_hidden, $submit));
     $this->postInit();
 }
Esempio n. 22
0
 /**
  * logged in user actions on each page load, username row db load
  */
 protected function _initUserPreloads()
 {
     // return on guests
     if (!Zend_Auth::getInstance()->hasIdentity()) {
         return;
     }
     // check if cookie is ok
     if (!isset(Zend_Auth::getInstance()->getIdentity()->name) || !isset(Zend_Auth::getInstance()->getIdentity()->id)) {
         Zend_Auth::getInstance()->clearIdentity();
         return;
     }
     // load user from db
     $Profiles = new Application_Model_Profiles();
     $current_user = $Profiles->getProfile(Zend_Auth::getInstance()->getIdentity()->name, true);
     // load users meta from db
     $ProfilesMeta = new Application_Model_ProfilesMeta();
     $current_user_meta = $ProfilesMeta->getMetaValues(Zend_Auth::getInstance()->getIdentity()->id);
     if (!$current_user) {
         Zend_Auth::getInstance()->clearIdentity();
         return;
     }
     // re-login requests, when user has to re-login for some reason
     if ($current_user->relogin_request == 1) {
         $Profiles->updateField($current_user->name, 'relogin_request', 0);
         Zend_Auth::getInstance()->clearIdentity();
     }
     // set default post privacy
     Zend_Registry::set('default_privacy', $current_user->default_privacy);
     // save all profile's meta data
     Zend_Registry::set('current_user_meta', $current_user_meta);
     return;
 }
Esempio n. 23
0
 /**
  * Get post's author data
  */
 public function getProfileDataByPostWall($post_id)
 {
     $post = $this->getPost($post_id);
     $wall_id = $post['wall_id'];
     $Profiles = new Application_Model_Profiles();
     $profile = $Profiles->getProfileByField('id', $wall_id);
     return $profile;
 }
Esempio n. 24
0
 /**
  * Remove all messages: curent_user -> single_user
  */
 public function removeAllMessagesWithUser($username)
 {
     $Profiles = new Application_Model_Profiles();
     $user = $Profiles->getProfile($username);
     if (!$user) {
         return false;
     }
     $current_user_id = (int) Zend_Auth::getInstance()->getIdentity()->id;
     $with_user_id = (int) $user->id;
     $sql = "\r\n\t\t\tUPDATE messages\r\n\t\t\tSET is_hidden = 2 | is_hidden\r\n\t\t\tWHERE \r\n\t\t\t(from_user_id = {$with_user_id} AND to_user_id = {$current_user_id})\r\n\t\t\t";
     $this->getAdapter()->query($sql);
     $sql = "\r\n\t\tUPDATE messages\r\n\t\tSET is_hidden = 4 | is_hidden\r\n\t\tWHERE\r\n\t\t(from_user_id = {$current_user_id} AND to_user_id = {$with_user_id})\r\n\t\t";
     $this->getAdapter()->query($sql);
     return true;
 }
Esempio n. 25
0
/**
 * Register with facebook
 */
function registerWithFacebook()
{
    // flush if already logged in
    Zend_Auth::getInstance()->clearIdentity();
    $session = new Zend_Session_Namespace('Default');
    $email = $session->fb_user_email;
    $avatar = $session->fb_avatar;
    // do not allow direct access - without fb_user_email inside session
    if (!$session->fb_user_email) {
        Zend_Controller_Action_HelperBroker::getStaticHelper('Redirector')->gotoUrl('');
    }
    require_once 'Form.php';
    $registerwithfacebook_form = new Addon_FacebookRegisterForm();
    $Profiles = new Application_Model_Profiles();
    if ($_SERVER['REQUEST_METHOD'] === 'POST') {
        if ($registerwithfacebook_form->isValid($_POST)) {
            $name = $registerwithfacebook_form->getValue('name');
            $user = $Profiles->createRow();
            $user->name = $name;
            $user->email = $email;
            $user->password = '';
            $user->activationkey = 'activated';
            $user->language = Zend_Registry::get('config')->get('default_language');
            $user = $Profiles->createNewUser($user, 'facebook');
            // update last login date
            $ProfilesMeta = new Application_Model_ProfilesMeta();
            $ProfilesMeta->metaUpdate('last_login', Application_Plugin_Common::now(), $user->id);
            $Storage = new Application_Model_Storage();
            $StorageAdapter = $Storage->getAdapter();
            $defaultres = 64;
            $bigres = Zend_Registry::get('config')->get('avatar_size') ? Zend_Registry::get('config')->get('avatar_size') : $defaultres;
            // get the image
            $c = new Zend_Http_Client();
            $c->setUri($avatar);
            $result = $c->request('GET');
            $img = imagecreatefromstring($result->getBody());
            // create regular avatar image, resample and store
            $imgname = 'profileimage_' . $name . '.jpg';
            imagejpeg($img, TMP_PATH . '/' . $imgname);
            Application_Plugin_ImageLib::resample(TMP_PATH . '/' . $imgname, TMP_PATH . '/' . $imgname, $defaultres, $defaultres, false);
            $new_filename = $StorageAdapter->moveFileToStorage($imgname, 'avatar');
            $Profiles->updateField($name, 'avatar', $new_filename);
            // create big avatar image, resample and store
            $imgname = 'bigprofileimage_' . $name . '.jpg';
            imagejpeg($img, TMP_PATH . '/' . $imgname);
            Application_Plugin_ImageLib::resample(TMP_PATH . '/' . $imgname, TMP_PATH . '/' . $imgname, $bigres, $bigres, false);
            $big_avatar = $StorageAdapter->moveFileToStorage($imgname, 'avatar');
            $ProfilesMeta->metaUpdate('big_avatar', $big_avatar, $user->id);
            // free img resource
            imagedestroy($img);
            // login user
            $emailAuthAdapter = Application_Plugin_Common::getEmailAuthAdapter($email);
            $auth = Zend_Auth::getInstance();
            $auth->authenticate($emailAuthAdapter);
            $identity = $emailAuthAdapter->getResultRowObject();
            $authStorage = $auth->getStorage();
            $authStorage->write($identity);
            // clear session data
            $session->fb_user_email = '';
            $session->fb_user_display_name = '';
            $session->fb_avatar = '';
            $user_id = $user->id;
            // trigger hooks
            Zend_Registry::get('hooks')->trigger('hook_firsttimelogin', $user_id);
            // show welcome message
            Application_Plugin_Alerts::success(Zend_Registry::get('Zend_Translate')->translate('Welcome to the network.'), 'on');
            Zend_Controller_Action_HelperBroker::getStaticHelper('Redirector')->gotoUrl('');
        }
    }
    echo $registerwithfacebook_form;
}
 /**
  * Fetch and prepare profiles for view
  */
 public function prepareProfiles($type, $filters = false)
 {
     $Profiles = new Application_Model_Profiles();
     $count = $Profiles->searchProfiles($this->search_term, $filters, $type, true);
     $this->view->pagination_last_page = (int) ceil($count / (int) Zend_Registry::get('config')->get('pagination_limit'));
     $this->view->pagination_current_page = $this->page;
     $Profiles->page_number = $this->page;
     if ($count > 0) {
         $this->view->profiles = $Profiles->searchProfiles($this->search_term, $filters, $type);
     } else {
         Application_Plugin_Alerts::info($this->view->translate('Nothing found...'), 'off');
     }
     // set single view script
     $this->render('profiles');
 }
Esempio n. 27
0
 /**
  * Follow user toggle
  */
 public function toggleFollowed($name)
 {
     if (!Zend_Auth::getInstance()->hasIdentity()) {
         return null;
     }
     $Profiles = new Application_Model_Profiles();
     $Notifications = new Application_Model_Notifications();
     $translator = Zend_Registry::get('Zend_Translate');
     $user_id = Zend_Auth::getInstance()->getIdentity()->id;
     $follow_profile = $Profiles->getProfile($name);
     // no or bad profile
     if (!$follow_profile || !isset($follow_profile->id)) {
         return;
     }
     if ($follow_profile->type === 'page') {
         return;
     }
     $is_group = $follow_profile->type === 'group' ? true : false;
     $follow_id = $follow_profile->id;
     if ($this->isFollowing($user_id, $follow_id)) {
         if ($is_group) {
             // delete mutual connection
             $ret = $this->removeConnections($follow_id, $user_id);
             if ($ret == 2) {
                 Application_Plugin_Alerts::info(sprintf($translator->translate('You have left the group %s'), $follow_profile->screen_name));
             } else {
                 Application_Plugin_Alerts::info($translator->translate('You request has been canceled'));
             }
         } else {
             $Notifications->pushNotification(array($follow_id), 6, 'profile', $user_id);
             $this->delete(array('follow_id = ?' => (int) $follow_id, 'user_id = ?' => (int) $user_id));
             Application_Plugin_Alerts::info(sprintf($translator->translate('You have stopped following %s'), $follow_profile->screen_name));
         }
         return;
     } else {
         if ($is_group) {
             $data = array('user_id' => $user_id, 'follow_id' => $follow_id, 'created_on' => Application_Plugin_Common::now());
             $ret = $this->insert($data);
             if ($follow_profile->profile_privacy === 'friends' && $follow_profile->owner != $user_id) {
                 // admin will have to confirm this
                 Application_Plugin_Alerts::success(sprintf($translator->translate('Your request to join this group has been sent to %s'), $follow_profile->screen_name));
                 // notify group admin that new user has requested membership
                 $Notifications->pushNotification(array($follow_profile->owner), 12, 'profile', $follow_id);
             } else {
                 // join the group by adding mutual follow
                 $data = array('user_id' => $follow_id, 'follow_id' => $user_id, 'created_on' => Application_Plugin_Common::now());
                 $this->insert($data);
                 Application_Plugin_Alerts::success(sprintf($translator->translate('You have joined the group %s'), $follow_profile->screen_name));
             }
         } else {
             $data = array('user_id' => $user_id, 'follow_id' => $follow_id, 'created_on' => Application_Plugin_Common::now());
             $this->insert($data);
             if ($this->areFriends($user_id, $follow_id)) {
                 // follow, areFriends
                 // are friends now, notify user
                 $Notifications->pushNotification(array($follow_id), 4, 'profile', $user_id);
                 if ($is_group) {
                     Application_Plugin_Alerts::success(sprintf($translator->translate('You have joined the group %s'), $follow_profile->screen_name));
                 } else {
                     Application_Plugin_Alerts::success(sprintf($translator->translate('You are now friends with %s'), $follow_profile->screen_name));
                 }
                 return;
             }
             // new follower, notify user
             $Notifications->pushNotification(array($follow_id), 3, 'profile', $user_id);
             Application_Plugin_Alerts::success(sprintf($translator->translate('You are now following %s'), $follow_profile->screen_name));
         }
         // follow
         return;
     }
     return false;
 }
Esempio n. 28
0
 /**
  * Delete all user's images
  */
 public function removeUsersImages($user_id)
 {
     $Profiles = new Application_Model_Profiles();
     $ProfilesMeta = new Application_Model_ProfilesMeta();
     $profile = $Profiles->getProfileByField('id', $user_id);
     if (!$profile) {
         return false;
     }
     $Storage = new Application_Model_Storage();
     $StorageAdapter = $Storage->getAdapter();
     $user_id = (int) $user_id;
     $sql = "\r\n\t\tSELECT\r\n\t\t*\r\n\t\tFROM images\r\n\t\tWHERE uploaded_by = {$user_id}\r\n\t\t";
     $images = $this->getAdapter()->fetchAll($sql);
     if (!empty($images)) {
         foreach ($images as $image) {
             $StorageAdapter->deleteFileFromStorage($image['file_name'], 'posts');
             if ($image['original']) {
                 $StorageAdapter->deleteFileFromStorage($image['original'], 'posts');
             }
             $result = $this->delete(array('id = ?' => $image['id']));
         }
     }
     // remove user avatar, cover and background
     $background_file = $ProfilesMeta->getMetaValue('background_file', $user_id);
     if ($background_file) {
         $ret = $StorageAdapter->deleteFileFromStorage($background_file, 'cover');
     }
     $avatar_file = $profile->avatar;
     if (strpos($avatar_file, 'default') === false) {
         $ret = $StorageAdapter->deleteFileFromStorage($avatar_file, 'avatar');
     }
     $cover_file = $profile->cover;
     if (strpos($cover_file, 'default') === false) {
         $ret = $StorageAdapter->deleteFileFromStorage($cover_file, 'cover');
     }
     return;
 }