Example #1
0
File: user.php Project: anqh/anqh
 /**
  * Get notification as HTML.
  *
  * @static
  * @param   Model_Notification
  * @return  string
  */
 public static function get(Model_Notification $notification)
 {
     $text = '';
     switch ($notification->type) {
         case self::TYPE_FRIEND:
             $friend = Model_User::find_user($notification->user_id);
             if ($friend->loaded()) {
                 $text = __(':friend added you as a friend', array(':friend' => HTML::user($friend)));
             } else {
                 $notification->delete();
             }
             break;
     }
     return $text;
 }
Example #2
0
 /**
  * Function to create a new account.
  *
  * This function creates a new account, admin user for the account, admin user's profile and sets default values for
  * the admin user. It also sends mail to the user and the admin.
  * @param array $userData   array of account informatio.
  * @return int $accountId   id of the account created.
  */
 public function registerUser($userData)
 {
     $modelWep = new Model_Wep();
     $data = array();
     $data['email'] = $userData['email'];
     $data['first_name'] = $userData['first_name'];
     $data['last_name'] = $userData['last_name'];
     $data['account_identifier'] = $userData['account_identifier'];
     $data['user_name'] = $userData['user_name'];
     $data['password'] = $userData['password'];
     $data['org_name'] = trim($userData['org_name']);
     $data['org_address'] = $userData['org_address'];
     //Save Organisation Info
     $account['name'] = $data['org_name'];
     $account['address'] = $data['org_address'];
     $account['username'] = trim($data['account_identifier']);
     $account['uniqid'] = md5(date('Y-m-d H:i:s'));
     $accountId = $modelWep->insertRowsToTable('account', $account);
     //Save User Info
     $user['user_name'] = trim($data['user_name']);
     $user['password'] = md5($data['password']);
     $user['role_id'] = 1;
     $user['email'] = $data['email'];
     $user['account_id'] = $accountId;
     $user['status'] = 1;
     $user_id = $modelWep->insertRowsToTable('user', $user);
     //Save User Profile
     $admin['first_name'] = $data['first_name'];
     $admin['last_name'] = $data['last_name'];
     $admin['user_id'] = $user_id;
     $admin_id = $modelWep->insertRowsToTable('profile', $admin);
     //Create defaults
     $defaults = new Model_Defaults();
     $defaults->createDefaults($data, $accountId);
     //Send notification
     $notification = new Model_Notification();
     $notification->sendRegistrationNotifications($data);
     return $accountId;
 }
Example #3
0
 /**
  * Get notification as HTML.
  *
  * @static
  * @param   Model_Notification
  * @return  string
  */
 public static function get(Model_Notification $notification)
 {
     $text = '';
     switch ($notification->type) {
         case self::TYPE_IMAGE_COMMENT:
             $user = Model_User::find_user($notification->user_id);
             $image = Model_Image::factory($notification->data_id);
             if ($user->loaded() && $image->loaded()) {
                 $gallery = $image->gallery();
                 $text = __(':user commented your :photo: <em>:comment</em>', array(':user' => HTML::user($user), ':photo' => HTML::anchor(Route::url('gallery_image', array('gallery_id' => Route::model_id($gallery), 'id' => $image->id, 'action' => '')), __('photo'), array('class' => 'hoverable')), ':comment' => Text::smileys(Text::auto_link_urls(HTML::chars($notification->text)))));
             } else {
                 $notification->delete();
             }
             break;
         case self::TYPE_IMAGE_NOTE:
             $user = Model_User::find_user($notification->user_id);
             $image = Model_Image::factory($notification->data_id);
             if ($user->loaded() && $image->loaded()) {
                 $gallery = $image->gallery();
                 $text = __(':user tagged you to a :photo', array(':user' => HTML::user($user), ':photo' => HTML::anchor(Route::url('gallery_image', array('gallery_id' => Route::model_id($gallery), 'id' => $image->id, 'action' => '')), __('photo'), array('class' => 'hoverable'))));
             } else {
                 $notification->delete();
             }
             break;
         case self::TYPE_IMAGE_REPORT:
             $user = Model_User::find_user($notification->user_id);
             $image = Model_Image::factory($notification->data_id);
             if ($user->loaded() && $image->loaded()) {
                 $gallery = $image->gallery();
                 $text = __(':user reported a :photo: <em>:reason</em>', array(':user' => HTML::user($user), ':photo' => HTML::anchor(Route::url('gallery_image', array('gallery_id' => Route::model_id($gallery), 'id' => $image->id, 'action' => '')), __('photo'), array('class' => 'hoverable')), ':reason' => $notification->text ? HTML::chars($notification->text) : __('No reason')));
             } else {
                 $notification->delete();
             }
             break;
     }
     return $text;
 }
Example #4
0
 /**
  * Get user's notifications.
  *
  * @param   Model_User  $target
  * @return  array
  */
 public static function get_notifications(Model_User $target)
 {
     $notifications = array();
     /** @var  Model_Notification  $notification */
     foreach (Model_Notification::factory()->find_by_target($target) as $notification) {
         // Ignored?
         if ($target->is_ignored($notification->user_id)) {
             $notification->delete();
             continue;
         }
         $class = 'Notification_' . $notification->class;
         if (method_exists($class, 'get') && ($text = call_user_func(array($class, 'get'), $notification))) {
             $notifications[$notification->id] = $text;
         }
     }
     return $notifications;
 }
Example #5
0
    public static function report($id)
    {
        if (!JO_Session::get('user_id')) {
            return false;
        }
        $info = self::get($id);
        if (!$info) {
            return;
        }
        $user = Model_Users::getUser($info['user_id']);
        if (!$user) {
            $user = array('username' => '');
        }
        $db = JO_Db::getDefaultAdapter();
        $db->update('items_comments', array('report_by' => JO_Session::get('user_id')), array('id = ?' => (int) $id));
        $request = JO_Request::getInstance();
        $domain = $request->getDomain();
        $translate = JO_Translate::getInstance();
        $mail = new JO_Mail();
        if (JO_Registry::get('mail_smtp')) {
            $mail->setSMTPParams(JO_Registry::forceGet('mail_smtp_host'), JO_Registry::forceGet('mail_smtp_port'), JO_Registry::forceGet('mail_smtp_user'), JO_Registry::forceGet('mail_smtp_password'));
        }
        $mail->setFrom('no-reply@' . $domain);
        $not_template = Model_Notification::getNotification('comment_report');
        $href = '<a href="' . WM_Router::create($request->getBaseUrl() . '?controller=items&action=comments&item_id=' . $info['item_id'] . '&filter=' . ($info['reply_to'] ? $info['reply_to'] : $info['id'])) . '">' . $info['item_name'] . '</a>';
        if ($not_template) {
            $title = $not_template['title'];
            $html = html_entity_decode($not_template['template'], ENT_QUOTES, 'utf-8');
            $html = str_replace('{USERNAME}', $user['username'], $html);
            $html = str_replace('{REPORT}', JO_Session::get('username'), $html);
            $html = str_replace('{URL}', $href, $html);
        } else {
            $title = "[" . $domain . "] " . $translate->translate('Have new reported comment');
            $html = nl2br(JO_Session::get('username') . '
					
			 =======================================
			' . $translate->translate('Report about irregularity in comment.'));
        }
        $mail->setSubject($title);
        $mail->setHTML($html);
        $mail->send(array(JO_Registry::get('report_mail')), JO_Registry::get('mail_smtp') ? 'smtp' : 'mail');
        return true;
    }
Example #6
0
 public function sendWelcomeAction()
 {
     if (JO_Session::get('user[user_id]')) {
         new Model_Users_Edit(JO_Session::get('user[user_id]'), array('first_login' => '0'));
         JO_Session::clear('category_id');
         $this->view->user_info = JO_Session::get('user');
         $this->view->user_info['first_login'] = 0;
         JO_Session::set('user', $this->view->user_info);
         $template = Model_Notification::getTemplate('welcome');
         if ($template) {
             $template_data = array('user_id' => JO_Session::get('user[user_id]'), 'user_firstname' => JO_Session::get('user[firstname]'), 'user_lastname' => JO_Session::get('user[lastname]'), 'user_fullname' => JO_Session::get('user[fullname]'), 'user_username' => JO_Session::get('user[username]'), 'site_url' => $this->getRequest()->getBaseUrl(), 'site_name' => Helper_Config::get('site_name'), 'mail_footer' => html_entity_decode(Helper_Config::get('mail_footer'), ENT_QUOTES, 'utf-8'));
             if (!$template['title']) {
                 $template['title'] = $this->translate('Welcome to ${site_name}!');
             }
             $title = Model_Notification::parseTemplate(html_entity_decode($template['title'], ENT_QUOTES, 'utf-8'), $template_data);
             $body = Model_Notification::parseTemplate(html_entity_decode($template['template'], ENT_QUOTES, 'utf-8'), $template_data);
             Model_Email::send(JO_Session::get('user[email]'), Helper_Config::get('noreply_mail'), $title, $body);
         }
     }
     $this->noViewRenderer(true);
 }
Example #7
0
 /**
  * Controller default action
  */
 public function action_index()
 {
     // Dismiss notification?
     if ($dismiss = (int) Arr::get($_REQUEST, 'dismiss')) {
         $notification = Model_Notification::factory($dismiss);
         if ($notification->loaded()) {
             Permission::required($notification, Model_Notification::PERMISSION_DELETE);
             $notification->delete();
             /*				if ($this->_request_type == self::REQUEST_AJAX) {
             					$this->response->body('');
             
             					return;
             				}*/
         }
     }
     $section = $this->section_notifications(Notification::get_notifications(Visitor::$user));
     if ($this->_request_type == self::REQUEST_AJAX) {
         $this->response->body($section);
     } else {
         $this->view = new View_Page('Notifications');
         $this->view->add(View_Page::COLUMN_CENTER, $section);
     }
 }
 public function indexAction()
 {
     $request = $this->getRequest();
     $user_data = Model_Users::getUser(JO_Session::get('user[user_id]'));
     $upload = new JO_Upload_SessionStore();
     $upload->setName('upload_avatar');
     $info = $upload->getFileInfo();
     if (JO_Session::get('successfu_edite')) {
         $this->view->successfu_edite = true;
         JO_Session::clear('successfu_edite');
     }
     if (JO_Session::get('connect_error')) {
         $this->view->error = JO_Session::get('connect_error');
         JO_Session::clear('connect_error');
     }
     $this->view->config_enable_follow_private_profile = Helper_Config::get('config_enable_follow_private_profile');
     if ($request->isPost()) {
         $validate = new Helper_Validate();
         $validate->_set_rules($request->getPost('username'), $this->translate('Username'), 'not_empty;min_length[3];max_length[100];username');
         $validate->_set_rules($request->getPost('firstname'), $this->translate('First name'), 'not_empty;min_length[3];max_length[100]');
         $validate->_set_rules($request->getPost('lastname'), $this->translate('Last name'), 'not_empty;min_length[3];max_length[100]');
         $validate->_set_rules($request->getPost('email'), $this->translate('Email'), 'not_empty;min_length[5];max_length[100];email');
         $data = $request->getPost();
         if ($validate->_valid_form()) {
             if (Model_Users::isExistEmail($request->getPost('email'), JO_Session::get('user[email]'))) {
                 $validate->_set_form_errors($this->translate('This e-mail address is already used'));
                 $validate->_set_valid_form(false);
             }
             if (Model_Users::isExistUsername($request->getPost('username'), JO_Session::get('user[username]'))) {
                 $validate->_set_form_errors($this->translate('This username is already used'));
                 $validate->_set_valid_form(false);
             }
         }
         if ($validate->_valid_form()) {
             $data['dont_search_index'] = (int) $request->issetPost('dont_search_index');
             $data['facebook_timeline'] = (int) $request->issetPost('facebook_timeline');
             /* v2.2 */
             if ($this->view->config_enable_follow_private_profile) {
                 $data['enable_follow'] = (int) (!$request->issetPost('enable_follow'));
                 $data['public'] = (int) (!$request->issetPost('public'));
             }
             /* v2.2 */
             if ($info) {
                 if (!@file_exists(BASE_PATH . '/cache/avatar/') || !is_dir(BASE_PATH . '/cache/avatar/')) {
                     mkdir(BASE_PATH . '/cache/avatar/');
                 }
                 $filename = BASE_PATH . '/cache/avatar/' . md5(mt_rand() . time()) . $upload->get_extension($info['name']);
                 if (file_put_contents($filename, $info['data'])) {
                     $data['avatar'] = $filename;
                 }
             }
             $new_email_key = md5(JO_Session::get('user[email]') . mt_rand() . time());
             if (JO_Session::get('user[email]') != $request->getPost('email')) {
                 $data['new_email_key'] = $new_email_key;
             } else {
                 $data['new_email_key'] = '';
             }
             $data['new_email'] = $data['email'];
             unset($data['email']);
             $result = new Model_Users_Edit(JO_Session::get('user[user_id]'), $data);
             if ($result->affected_rows) {
                 JO_Session::set('successfu_edite', true);
                 $upload->getFileInfo(true);
                 if (JO_Session::get('user[email]') != $request->getPost('email')) {
                     /*$this->view->verify_email_href = WM_Router::create( $request->getBaseUrl() . '?controller=users&action=login&user_id='.JO_Session::get('user[user_id]').'&verify=' . $new_email_key );
                     		$this->view->user_info = $user_data;
                     		Model_Email::send(
                       	        	$request->getPost('email'),
                       	        	Helper_Config::get('noreply_mail'),
                       	        	$this->translate('Please verify your email'),
                       	        	$this->view->render('verify_email', 'mail')
                       	        );*/
                     $template = Model_Notification::getTemplate('verify_email');
                     if ($template) {
                         $template_data = array('user_id' => JO_Session::get('user[user_id]'), 'user_firstname' => JO_Session::get('user[firstname]'), 'user_lastname' => JO_Session::get('user[lastname]'), 'user_fullname' => JO_Session::get('user[fullname]'), 'user_username' => JO_Session::get('user[username]'), 'verify_email_url' => WM_Router::create($request->getBaseUrl() . '?controller=users&action=login&user_id=' . JO_Session::get('user[user_id]') . '&verify=' . $new_email_key), 'site_url' => $request->getBaseUrl(), 'site_name' => Helper_Config::get('site_name'), 'user_message' => '', 'mail_footer' => html_entity_decode(Helper_Config::get('mail_footer'), ENT_QUOTES, 'utf-8'));
                         if (!$template['title']) {
                             $template['title'] = $this->translate('Please verify your email');
                         }
                         $title = Model_Notification::parseTemplate(html_entity_decode($template['title'], ENT_QUOTES, 'utf-8'), $template_data);
                         $body = Model_Notification::parseTemplate(html_entity_decode($template['template'], ENT_QUOTES, 'utf-8'), $template_data);
                         Model_Email::send($request->getPost('email'), Helper_Config::get('noreply_mail'), $title, $body);
                     }
                 }
                 $this->redirect(WM_Router::create($request->getBaseUrl() . '?controller=settings'));
             } else {
                 $this->view->error = $this->translate('There was a problem with the record. Please try again!');
             }
         } else {
             $this->view->error = $validate->_get_error_messages();
         }
         foreach ($data as $k => $v) {
             if (isset($user_data[$k])) {
                 $user_data[$k] = $v;
             }
         }
     }
     if ($info) {
         $user_data['avatar'] = WM_Router::create($request->getBaseUrl() . '?controller=settings&action=temporary_avatar&s=' . microtime(true));
         $user_data['has_avatar'] = true;
     } else {
         $avatar = Helper_Uploadimages::avatar($user_data, '_C');
         $user_data['avatar'] = $avatar['image'] . '?s=' . microtime(true);
         $user_data['has_avatar'] = @getimagesize($user_data['avatar']) ? true : false;
     }
     $this->view->instagram_enable = JO_Registry::get('oauth_in_key');
     $this->view->twitteroauth_enable = JO_Registry::get('oauth_tw_key');
     $this->view->facebook_enable = JO_Registry::get('oauth_fb_key');
     $this->view->user_data = $user_data;
     $this->view->form_action = WM_Router::create($request->getBaseUrl() . '?controller=settings&action=upload_avatar');
     $this->view->check_username = WM_Router::create($request->getBaseUrl() . '?controller=settings&action=check_username');
     $this->view->delete_username = WM_Router::create($request->getBaseUrl() . '?controller=users&action=delete&user_id=' . $user_data['user_id']);
     $this->view->prefs_action = WM_Router::create($request->getBaseUrl() . '?controller=prefs');
     $this->view->new_password = WM_Router::create($request->getBaseUrl() . '?controller=password&action=change');
     $this->view->site_name = JO_Registry::get('site_name');
     $this->view->base_href = $request->getBaseUrl();
     $this->view->delete_account = '';
     if (JO_Registry::get('delete_account')) {
         $page_description = Model_Pages::getPage(JO_Registry::get('delete_account'));
         if ($page_description) {
             $this->view->delete_account = html_entity_decode($page_description['description'], ENT_QUOTES, 'utf-8');
         }
     }
     //extensions
     $this->view->user_login_buttons = array();
     $user_login_buttons = Model_Extensions::getByMethod('user_login');
     foreach ($user_login_buttons as $id => $login) {
         $this->view->user_login_buttons[] = $this->view->callChildren('modules_' . $login . '_connect', WM_Router::create($request->getBaseUrl() . '?controller=modules_' . $login . '_register'));
     }
     $this->view->user_avatars = array();
     $user_login_buttons = Model_Extensions::getByMethod('user_avatar');
     foreach ($user_login_buttons as $id => $login) {
         $this->view->user_avatars[] = $this->view->callChildren('modules_' . $login . '_useravatar', WM_Router::create($request->getBaseUrl() . '?controller=modules_' . $login . '_register'));
     }
     $this->view->children = array('header_part' => 'layout/header_part', 'footer_part' => 'layout/footer_part');
 }
 public function indexAction()
 {
     $request = $this->getRequest();
     $this->view->invate_limit = 5;
     if ($request->isPost()) {
         $emails = array();
         $this->view->send = array();
         for ($i = 1; $i < $this->view->invate_limit; $i++) {
             $this->view->send[$i] = array('success' => false, 'error' => false);
             $validate = new Helper_Validate();
             if ($request->getPost('email-' . $i) != $this->translate('Email Adress ' . $i)) {
                 $validate->_set_rules($request->getPost('email-' . $i), $this->translate('Email Adress ' . $i), 'not_empty;min_length[5];max_length[100];email');
                 if ($validate->_valid_form()) {
                     $shared_content = Model_Users::sharedContentInvate($request->getPost('email-' . $i));
                     if ($shared_content == 1) {
                         $this->view->send[$i]['error'] = $this->translate('With this email address is already registered users!');
                     } else {
                         if ($shared_content == 2) {
                             $this->view->send[$i]['error'] = $this->translate('To this email has been sent an invitation!');
                         } else {
                             $inser_key = Model_Users::sharedContent($request->getPost('email-' . $i));
                             if ($inser_key == -1) {
                                 $this->view->send[$i]['error'] = $this->translate('There was an error. Please try again later!');
                             } else {
                                 $template = Model_Notification::getTemplate('send_invate');
                                 if ($template) {
                                     $template_data = array('user_id' => JO_Session::get('user[user_id]'), 'user_firstname' => JO_Session::get('user[firstname]'), 'user_lastname' => JO_Session::get('user[lastname]'), 'user_fullname' => JO_Session::get('user[fullname]'), 'user_message' => $request->getPost('note') != $this->translate('Add a personal note') ? $request->getPost('note') : '', 'site_url' => $request->getBaseUrl(), 'site_name' => Helper_Config::get('site_name'), 'invate_url' => WM_Router::create($request->getBaseUrl() . '?controller=users&action=register&user_id=' . JO_Session::get('user[user_id]') . '&key=' . $inser_key), 'mail_footer' => html_entity_decode(Helper_Config::get('mail_footer'), ENT_QUOTES, 'utf-8'));
                                     if (!$template['title']) {
                                         $template['title'] = $this->translate('Join and create your own pinboards');
                                     }
                                     $title = Model_Notification::parseTemplate(html_entity_decode($template['title'], ENT_QUOTES, 'utf-8'), $template_data);
                                     $template = Model_Notification::parseTemplate(html_entity_decode($template['template'], ENT_QUOTES, 'utf-8'), $template_data);
                                     $result = Model_Email::send($request->getPost('email-' . $i), Helper_Config::get('noreply_mail'), $title, $template);
                                     if ($result) {
                                         $this->view->send[$i]['success'] = $this->translate('The invitation was sent successfully!');
                                     } else {
                                         $this->view->send[$i]['error'] = $this->translate('There was an error. Please try again later!');
                                     }
                                 } else {
                                     $this->view->send[$i]['error'] = $this->translate('There was an error. Please try again later!');
                                 }
                             }
                         }
                     }
                 } else {
                     $this->view->send[$i]['error'] = strip_tags($validate->_get_error_messages());
                 }
             }
         }
         if ($request->isXmlHttpRequest()) {
             echo $this->renderScript('json');
             exit;
         } else {
             JO_Session::set('result_from_invate', $this->view->send);
             $this->redirect(WM_Router::create($request->getBaseUrl() . '?controller=invites'));
         }
     }
     if (JO_Session::get('result_from_invate')) {
         $this->view->result_from_invate = JO_Session::get('result_from_invate');
         JO_Session::clear('result_from_invate');
     }
     $this->view->children = array('header_part' => 'layout/header_part', 'footer_part' => 'layout/footer_part', 'methodsforinvates' => 'invates/methodsforinvates');
 }
Example #10
0
 public function pinMediaCallbackAction()
 {
     $request = $this->getRequest();
     if (JO_Session::get('user[user_id]')) {
         $media = Model_Instagram_Media::getMedia($request->getPost('media_id'));
         if ($media) {
             if ($media['user_id'] == JO_Session::get('user[user_id]')) {
                 $result = new Model_Pins_Create(array('title' => $media['title'], 'from' => $media['from'], 'image' => $media['media'], 'description' => $media['title'], 'board_id' => JO_Session::get('instagram_media[board_id]')));
                 if ($result->count()) {
                     $result = $result->data;
                     $this->view->pin_url = WM_Router::pinAction($result['pin_id']);
                     Model_Instagram_Media::setPinMedia($media['media_id'], $result['pin_id']);
                     ///add history
                     new Model_History_AddHistory(JO_Session::get('user[user_id]'), Model_History_Abstract::ADDPIN, $result['pin_id']);
                     //send notification
                     $users = new Model_Users_GroupBoardUsers(JO_Session::get('instagram_media[board_id]'));
                     if ($users->count()) {
                         $template = Model_Notification::getTemplate('group_board');
                         if ($template) {
                             $pin_info = new Model_Pins_Pin($result['pin_id']);
                             if ($pin_info->count()) {
                                 $mail_footer = html_entity_decode(Helper_Config::get('mail_footer'), ENT_QUOTES, 'utf-8');
                                 foreach ($users as $user) {
                                     if ($user['email_interval'] == 1 && $user['groups_pin_email']) {
                                         $template_data = array('user_id' => $user['user_id'], 'user_firstname' => $user['firstname'], 'user_lastname' => $user['lastname'], 'user_fullname' => $user['fullname'], 'user_username' => $user['username'], 'author_url' => WM_Router::create($request->getBaseUrl() . '?controller=users&action=profile&user_id=' . $pin_info['user_user_id']), 'author_fullname' => $pin_info['user_fullname'], 'board_url' => WM_Router::create($request->getBaseUrl() . '?controller=boards&action=view&user_id=' . $pin_info['user_user_id'] . '&board_id=' . $pin_info['board_board_id']), 'board_name' => $pin_info['board_title'], 'pin_url' => WM_Router::pinAction($pin_info['pin_pin_id']), 'mail_footer' => $mail_footer);
                                         if (!$template['title']) {
                                             $template['title'] = '${author_fullname} ' . $this->translate('added new pin to a group board');
                                         }
                                         $title = Model_Notification::parseTemplate(html_entity_decode($template['title'], ENT_QUOTES, 'utf-8'), $template_data);
                                         $body = Model_Notification::parseTemplate(html_entity_decode($template['template'], ENT_QUOTES, 'utf-8'), $template_data);
                                         Model_Email::send($user['email'], Helper_Config::get('noreply_mail'), $title, $body);
                                     }
                                 }
                             }
                         }
                     }
                     $this->view->ok = true;
                 } else {
                     $this->view->error = $this->translate('There was a problem with the record. Please try again!');
                 }
             } else {
                 $this->view->error = $this->translate('Private media!');
             }
         } else {
             $this->view->error = $this->translate('Media not found!');
         }
     } else {
         $this->view->location = WM_Router::create($request->getBaseUrl() . '?controller=users&action=login');
     }
     echo $this->renderScript('json');
 }
Example #11
0
 public function supportAction()
 {
     if (isset($_POST)) {
         $data = $this->getRequest()->getPost();
         $form = new Form_General_Support();
         if ($form->isValid($data)) {
             $modelSupport = new Model_Support();
             $modelSupport->saveSupportRequest($data);
             $notification = new Model_Notification();
             $notification->sendSupportNotifications($data);
             $this->_helper->FlashMessenger->addMessage(array('message' => 'Thank you. Your query has been received.'));
         } else {
             $this->_helper->FlashMessenger->addMessage(array('error' => 'Sorry your support mail could not be sent'));
         }
         if ($this->_getParam('referer')) {
             $this->_redirect($this->_getParam('referer'));
         } else {
             $this->_redirect('/wep/dashboard');
         }
     }
 }
Example #12
0
 public function followAction()
 {
     $this->noViewRenderer(true);
     $request = $this->getRequest();
     if ($request->isXmlHttpRequest()) {
         if ((int) JO_Session::get('user[user_id]')) {
             $user_id = $request->getRequest('user_id');
             $user_info = new Model_Users_User($user_id);
             if ($user_info->count()) {
                 $follow = new Model_Users_Follow($user_id);
                 if ($user_info['following_user']) {
                     $result = $follow->unfollowUser();
                     if ($result === true) {
                         new Model_History_AddHistory($user_id, Model_History_Abstract::UNFOLLOW_USER);
                         $this->view->ok = $this->translate('Follow');
                         $this->view->classs = 'add';
                         $this->view->boardauthorid = $user_id;
                     } else {
                         $this->view->error = $this->translate('There was a problem with the record. Please try again!');
                     }
                 } else {
                     $result = $follow->followUser();
                     if ($result === true) {
                         new Model_History_AddHistory($user_id, Model_History_Abstract::FOLLOW_USER);
                         $this->view->ok = $this->translate('Unfollow');
                         $this->view->classs = 'remove';
                         $this->view->boardauthorid = $user_id;
                         if ($user_info['email_interval'] && $user_info['follows_email']) {
                             $template = Model_Notification::getTemplate('follow_user');
                             if ($template) {
                                 $template_data = array('user_id' => $user_info['user_id'], 'user_firstname' => $user_info['firstname'], 'user_lastname' => $user_info['lastname'], 'user_fullname' => $user_info['fullname'], 'user_username' => $user_info['username'], 'author_url' => WM_Router::create($request->getBaseUrl() . '?controller=users&action=profile&user_id=' . JO_Session::get('user[user_id]')), 'author_fullname' => JO_Session::get('user[fullname]'), 'mail_footer' => html_entity_decode(Helper_Config::get('mail_footer'), ENT_QUOTES, 'utf-8'));
                                 if (!$template['title']) {
                                     $template['title'] = '${author_fullname} ' . $this->translate('now follow you');
                                 }
                                 $title = Model_Notification::parseTemplate(html_entity_decode($template['title'], ENT_QUOTES, 'utf-8'), $template_data);
                                 $body = Model_Notification::parseTemplate(html_entity_decode($template['template'], ENT_QUOTES, 'utf-8'), $template_data);
                                 Model_Email::send($user_info['email'], Helper_Config::get('noreply_mail'), $title, $body);
                             }
                         }
                     } else {
                         $this->view->error = $this->translate('There was a problem with the record. Please try again!');
                     }
                 }
             } else {
                 $this->view->error = $this->translate('There was a problem with the record. Please try again!');
             }
         } else {
             $this->view->location = WM_Router::create($request->getBaseUrl() . '?controller=landing');
         }
     } else {
         $this->forward('error', 'error404');
     }
     echo $this->renderScript('json');
 }
Example #13
0
 public function emailAction()
 {
     $request = $this->getRequest();
     $pin_id = $request->getRequest('pin_id');
     $pin_info = new Model_Pins_Pin($pin_id);
     if (!$pin_info->count()) {
         $this->forward('error', 'error404');
     }
     $pin_info = $pin_info->data;
     $this->view->pin_id = $pin_id;
     $this->view->pin_href = WM_Router::create($request->getBaseUrl() . '?controller=pin&pin_id=' . $pin_id);
     $this->view->url_form = WM_Router::create($request->getBaseUrl() . '?controller=pin&action=email&pin_id=' . $pin_id);
     if ($request->issetPost('name')) {
         $this->view->Recipient_name = $request->getPost('name');
     } else {
         $this->view->Recipient_name = '';
     }
     if ($request->issetPost('email')) {
         $this->view->Recipient_email = $request->getPost('email');
     } else {
         $this->view->Recipient_email = '';
     }
     if ($request->issetPost('message')) {
         $this->view->Recipient_message = $request->getPost('message');
     } else {
         $this->view->Recipient_message = '';
     }
     $this->view->pins_details = $this->view->render('email', 'pin');
     $this->view->error = '';
     if ($request->isPost()) {
         $validate = new Helper_Validate();
         $validate->_set_rules($request->getPost('name'), $this->translate('Recipient Name'), 'not_empty;min_length[3];max_length[100]');
         $validate->_set_rules($request->getPost('email'), $this->translate('Recipient Email'), 'not_empty;min_length[5];max_length[100];email');
         //			$validate->_set_rules($request->getPost('message'), $this->translate('Message'), 'not_empty;min_length[15]');
         if ($validate->_valid_form()) {
             $this->view->is_posted = true;
             $shared_content = new Model_Users_Invate($request->getPost('email'));
             $shared_content_url = $request->getBaseUrl();
             if (!$shared_content->is_user) {
                 if ($shared_content->key) {
                     $shared_content_url = WM_Router::create($request->getBaseUrl() . '?controller=users&action=register&user_id=' . JO_Session::get('user[user_id]') . '&key=' . $shared_content->key);
                 }
             }
             $template = Model_Notification::getTemplate('send_pin');
             if ($template) {
                 $template_data = array('user_id' => JO_Session::get('user[user_id]'), 'user_firstname' => JO_Session::get('user[firstname]'), 'user_lastname' => JO_Session::get('user[lastname]'), 'user_fullname' => JO_Session::get('user[fullname]'), 'user_username' => JO_Session::get('user[username]'), 'recipient_name' => $request->getPost('name'), 'site_url' => $request->getBaseUrl(), 'site_name' => Helper_Config::get('site_name'), 'invate_url' => $shared_content_url, 'pin_url' => WM_Router::pinAction($pin_id), 'user_message' => nl2br($request->getPost('message')), 'mail_footer' => html_entity_decode(Helper_Config::get('mail_footer'), ENT_QUOTES, 'utf-8'));
                 if (!$template['title']) {
                     $template['title'] = $this->translate('Shared content from') . ' ${user_firstname}';
                 }
                 $title = Model_Notification::parseTemplate(html_entity_decode($template['title'], ENT_QUOTES, 'utf-8'), $template_data);
                 $body = Model_Notification::parseTemplate(html_entity_decode($template['template'], ENT_QUOTES, 'utf-8'), $template_data);
                 $result = Model_Email::send($request->getPost('email'), Helper_Config::get('noreply_mail'), $title, $body);
                 if ($result) {
                     $this->setViewChange('message_email');
                 } else {
                     $this->view->error = $this->translate('There was an error. Please try again later!');
                 }
             } else {
                 $this->view->error = $this->translate('There was an error. Please try again later!');
             }
         } else {
             $this->view->error = $validate->_get_error_messages();
         }
     }
     if ($this->view->error) {
         $this->setViewChange('email');
     }
     $this->noLayout(true);
 }
Example #14
0
    public function daily_summary_mailAction()
    {
        $this->noViewRenderer(true);
        $request = $this->getRequest();
        $users = Model_Users::getDailySummary();
        if ($users) {
            $domain = $request->getDomain();
            $mail = new JO_Mail();
            if (JO_Registry::get('mail_smtp')) {
                $mail->setSMTPParams(JO_Registry::forceGet('mail_smtp_host'), JO_Registry::forceGet('mail_smtp_port'), JO_Registry::forceGet('mail_smtp_user'), JO_Registry::forceGet('mail_smtp_password'));
            }
            $mail->setFrom('no-reply@' . $domain);
            $not_template = Model_Notification::getNotification('daily_summary');
            foreach ($users as $user) {
                $user['to_date'] = WM_Date::format($user['to_date'], 'Y-mm-dd H:i');
                $user['from_date'] = WM_Date::format($user['from_date'], 'Y-mm-dd H:i');
                if ($not_template) {
                    $title = $not_template['title'];
                    $html = html_entity_decode($not_template['template'], ENT_QUOTES, 'utf-8');
                    $html = str_replace('{USERNAME}', $user['username'], $html);
                    $html = str_replace('{SALES}', $user['cnt'], $html);
                    $html = str_replace('{SUM}', WM_Currency::format($user['daily_sum']), $html);
                    $html = str_replace('{TO_DATE}', $user['to_date'], $html);
                    $html = str_replace('{FROM_DATE}', $user['from_date'], $html);
                } else {
                    $title = "[" . $domain . "] " . $this->translate('Daily summary');
                    $html = nl2br($this->translate('Daily summary') . '
					
					 from ' . $user['from_date'] . ' to ' . $user['to_date'] . '		
					 Sales: ' . $user['cnt'] . ', Receive money: ' . WM_Currency::format($user['daily_sum']) . '
					 
					 ===============================================================================================
					 
					 ' . JO_Registry::forceGet('meta_title') . '
					');
                }
                $mail->setSubject($title);
                $mail->setHTML($html);
                $mail->send(array($user['email']), JO_Registry::get('mail_smtp') ? 'smtp' : 'mail');
            }
        }
    }
Example #15
0
 /**
  * Function to register an organisation by Superadmin
  */
 public function registerAction()
 {
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         $is_admin = false;
         $identity = $auth->getIdentity();
         if ($identity->role == "superadmin") {
             $this->view->blockManager()->disable('partial/primarymenu.phtml');
             $this->view->blockManager()->disable('partial/add-activity-menu.phtml');
             $this->view->blockManager()->disable('partial/usermgmtmenu.phtml');
             $this->view->blockManager()->disable('partial/published-list.phtml');
             $this->view->blockManager()->enable('partial/superadmin-menu.phtml');
             $this->view->blockManager()->enable('partial/dashboard.phtml');
             $is_admin = true;
         }
     }
     $defaultFieldsValues = new Iati_WEP_AccountDefaultFieldValues();
     $default['field_values'] = $defaultFieldsValues->getDefaultFields();
     $defaultFieldGroup = new Iati_WEP_AccountDisplayFieldGroup();
     $default['fields'] = $defaultFieldGroup->getProperties();
     $form = new Form_Wep_Accountregister();
     $form->add($default);
     if ($this->getRequest()->isPost()) {
         try {
             $data = $this->getRequest()->getPost();
             $model = new Model_Wep();
             if (!$form->isValid($data)) {
                 $form->populate($data);
             } else {
                 //Save Account Info
                 $account['name'] = $data['organisation_name'];
                 $account['address'] = $data['organisation_address'];
                 $account['username'] = $data['organisation_username'];
                 $account['uniqid'] = md5(date('Y-m-d H:i:s'));
                 $account_id = $model->insertRowsToTable('account', $account);
                 //Save User Info
                 $user['user_name'] = trim($data['organisation_username']) . "_admin";
                 $user['password'] = md5($data['password']);
                 $user['role_id'] = 1;
                 $user['email'] = $data['email'];
                 $user['account_id'] = $account_id;
                 $user['status'] = 1;
                 $user_id = $model->insertRowsToTable('user', $user);
                 //Save User Profile
                 $admin['first_name'] = $data['first_name'];
                 $admin['middle_name'] = $data['middle_name'];
                 $admin['last_name'] = $data['last_name'];
                 $admin['user_id'] = $user_id;
                 $admin_id = $model->insertRowsToTable('profile', $admin);
                 //Save Default Fields
                 $default = new Model_Defaults();
                 $default->createDefaults($data, $account_id);
                 $privilegeFields['resource'] = serialize($defaultKey);
                 $privilegeFields['owner_id'] = $account_id;
                 $privilegeFieldId = $model->insertRowsToTable('Privilege', $privilegeFields);
                 //Send notification
                 $data['user_name'] = $user['user_name'];
                 $notification = new Model_Notification();
                 $notification->sendRegistrationNotifications($data);
                 $this->_helper->FlashMessenger->addMessage(array('message' => "Account successfully registered."));
                 $this->_redirect('admin/list-organisation');
             }
         } catch (Exception $e) {
             print $e->getMessage();
         }
     }
     // Populate form with basic recommended default groups.
     $basic['default_fields'] = Iati_WEP_AccountDisplayFieldGroup::$defaults;
     $form->populate($basic);
     $this->view->form = $form;
     $this->view->blockManager()->disable('partial/primarymenu.phtml');
 }
Example #16
0
 public function header_partAction()
 {
     $request = $this->getRequest();
     if (JO_Session::get('user[user_id]') && JO_Session::get('category_id')) {
         new Model_Users_Edit(JO_Session::get('user[user_id]'), array('first_login' => '0'));
         JO_Session::clear('category_id');
         $template = Model_Notification::getTemplate('welcome');
         if ($template) {
             $template_data = array('user_id' => JO_Session::get('user[user_id]'), 'user_firstname' => JO_Session::get('user[firstname]'), 'user_lastname' => JO_Session::get('user[lastname]'), 'user_fullname' => JO_Session::get('user[fullname]'), 'user_username' => JO_Session::get('user[username]'), 'site_url' => $request->getBaseUrl(), 'site_name' => Helper_Config::get('site_name'), 'mail_footer' => html_entity_decode(Helper_Config::get('mail_footer'), ENT_QUOTES, 'utf-8'));
             if (!$template['title']) {
                 $template['title'] = $this->translate('Welcome to ${site_name}!');
             }
             $title = Model_Notification::parseTemplate(html_entity_decode($template['title'], ENT_QUOTES, 'utf-8'), $template_data);
             $body = Model_Notification::parseTemplate(html_entity_decode($template['template'], ENT_QUOTES, 'utf-8'), $template_data);
             Model_Email::send(JO_Session::get('user[email]'), Helper_Config::get('noreply_mail'), $title, $body);
         }
     }
     $this->view->show_landing = !Helper_Config::get('enable_free_registration');
     $this->getLayout()->placeholder('site_name', Helper_Config::get('site_name'));
     $this->view->site_name = Helper_Config::get('site_name');
     $this->view->meta_title = Helper_Config::get('meta_title');
     $this->getLayout()->placeholder('google_analytics', html_entity_decode(Helper_Config::get('google_analytics'), ENT_QUOTES, 'utf-8'));
     $this->view->baseUrl = $request->getBaseUrl();
     $this->view->site_logo = $request->getBaseUrl() . 'data/images/logo.png';
     if (Helper_Config::get('site_logo') && file_exists(BASE_PATH . '/uploads' . Helper_Config::get('site_logo'))) {
         $this->view->site_logo = $request->getBaseUrl() . 'uploads' . Helper_Config::get('site_logo');
     }
     ///global metas
     if (!JO_Layout::getInstance()->placeholder('header_metas')) {
         $to_title = '';
         if (JO_Session::get('user[user_id]')) {
             $to_title = JO_Session::get('user[fullname]') . ' / ';
         }
         $this->getLayout()->placeholder('title', $to_title . Helper_Config::get('meta_title'));
         JO_Layout::getInstance()->placeholder('header_metas', $this->view->callChildren('layout/header_metas', array('meta_title' => Helper_Config::get('meta_title'), 'meta_description' => Helper_Config::get('meta_description'), 'meta_keywords' => Helper_Config::get('meta_keywords'), 'site_logo' => $this->view->site_logo)));
     }
     if (Helper_Config::get('favicon') && file_exists(BASE_PATH . '/uploads' . Helper_Config::get('favicon'))) {
         $this->getLayout()->placeholder('favicon', $request->getBaseUrl() . 'uploads' . Helper_Config::get('favicon'));
     }
     $this->getLayout()->placeholder('site_logo', $this->view->site_logo);
     $this->view->show_header_invate = !JO_Session::get('user[user_id]');
     $this->view->controller_open = $request->getController();
     //==== brand =====//
     $this->view->show_brand = false;
     /*if( JO_Registry::get('license_powered_check') == 'false' && Helper_Config::get('config_hide_brand') ) {
     			$this->view->show_brand = false;
     		}*/
     ////////// CURRENCY
     //autoupdate currency if set
     if (Helper_Config::get('config_currency_auto_update')) {
         WM_Currency::updateCurrencies();
     }
     //////////// Categories ////////////
     $this->view->categories = array();
     $this->view->category_active = false;
     $categories = Model_Categories::getCategories(array('filter_status' => 1));
     foreach ($categories as $category) {
         $category['href'] = WM_Router::create($request->getBaseUrl() . '?controller=category&category_id=' . $category['category_id']);
         $category['active'] = $category['category_id'] == $request->getRequest('category_id');
         if ($category['active']) {
             $this->view->category_active = $category['title'];
         } else {
         }
         $this->view->categories[] = $category;
     }
     ////////////////////////////// USER MENU ///////////////////////////
     $this->view->is_loged = JO_Session::get('user[user_id]');
     if ($this->view->is_loged) {
         $model_images = new Helper_Images();
         $avatar = Helper_Uploadimages::avatar(JO_Session::get('user'), '_A');
         $this->view->self_avatar = Helper_Uploadimages::userAvatars(JO_Session::get('user'));
         $this->view->self_profile = WM_Router::create($request->getBaseUrl() . '?controller=users&action=profile&user_id=' . $this->view->is_loged);
         $this->view->self_firstname = JO_Session::get('user[firstname]');
         $this->view->logout = WM_Router::create($request->getBaseUrl() . '?controller=users&action=logout');
         $this->view->user_pins = WM_Router::create($request->getBaseUrl() . '?controller=users&action=pins&user_id=' . $this->view->is_loged);
         $this->view->user_pins_likes = WM_Router::create($request->getBaseUrl() . '?controller=users&action=pins&user_id=' . $this->view->is_loged . '&filter=likes');
         $this->view->settings = WM_Router::create($request->getBaseUrl() . '?controller=settings');
     }
     $this->view->login = WM_Router::create($request->getBaseUrl() . '?controller=users&action=login');
     $this->view->landing = WM_Router::create($request->getBaseUrl() . '?controller=landing');
     $this->view->registration = WM_Router::create($request->getBaseUrl() . '?controller=users&action=register');
     ////////////////////////////// GIFTS ///////////////////////////
     $this->view->gifts = WM_Router::create($request->getBaseUrl() . '?controller=gifts');
     $this->view->giftSums = array();
     $sums = Model_Gifts::getAll();
     foreach ($sums as $sum) {
         if ($sum['price_from'] || $sum['price_to']) {
             $title = WM_Currency::format($sum['price_from']);
             $url = '';
             if ($sum['price_to']) {
                 $title .= ' - ';
                 $title .= WM_Currency::format($sum['price_to']);
                 $url = '&price_to=' . $sum['price_to'];
             } else {
                 $title .= '+';
             }
             $this->view->giftSums[] = array('title' => $title, 'href' => WM_Router::create($request->getBaseUrl() . '?controller=gifts&price_from=' . $sum['price_from'] . $url));
         }
     }
     //////////// Video ////////////
     $this->view->video_url = WM_Router::create($request->getBaseUrl() . '?controller=videos');
     //////////// Popular ////////////
     $this->view->popular_url = WM_Router::create($request->getBaseUrl() . '?controller=popular');
     //////////// ALL PINS ////////////
     $this->view->all_url = WM_Router::create($request->getBaseUrl() . '?controller=all');
     ////////////////////////////// SEARCH ///////////////////////////
     //$this->view->search_action = WM_Router::create($request->getBaseUrl() . '?controller=search');
     if ($request->getAction() != 'index' && $request->getController() == 'search') {
         $with_action = $request->getAction();
         $this->view->search_action = WM_Router::create($request->getBaseUrl() . '?controller=search&action=' . $request->getAction());
     } else {
         $with_action = 0;
         $this->view->search_action = WM_Router::create($request->getBaseUrl() . '?controller=search');
     }
     $this->view->search_autocomplete = WM_Router::create($request->getBaseUrl() . '?controller=search&action=autocomplete');
     if (strpos($this->view->search, '?') !== false) {
         $this->view->show_hidden = true;
         $this->view->with_action = $with_action;
     }
     $this->view->keywords = $request->issetQuery('q') ? $request->getQuery('q') : $this->translate('Search');
     ////////////////////////////// ADD PIN ///////////////////////////
     $this->view->addPin = WM_Router::create($request->getBaseUrl() . '?controller=addpin');
     ////////////////////////////// user ignore search engine ///////////////////////////
     if ($request->getRequest('user_id')) {
         $user_info = Model_Users::getUser($request->getRequest('user_id'));
         if ($user_info && $user_info['dont_search_index']) {
             $this->getLayout()->placeholder('inhead', '<meta name="robots" content="noindex"/>');
         }
     }
     ////////////////////////////// ABOUT MENU ///////////////////////////
     $about_menu = Model_Pages::getMenu(0);
     $this->view->about_menu = array();
     foreach ($about_menu as $row => $page) {
         $class = '';
         if ($row == 0) {
             $class .= ' first';
         } else {
             if (count($about_menu) - 1 == $row) {
                 $class .= ' last';
             }
         }
         if ($page['page_id'] == -1) {
             $has = true;
         } else {
             if ($page['status']) {
                 if (isset($has) && $has) {
                     $class .= " group";
                     $has = false;
                 }
                 $this->view->about_menu[] = array('class' => trim($class), 'title' => $page['title'], 'href' => WM_Router::create($this->getRequest()->getBaseUrl() . '?controller=pages&action=read&page_id=' . $page['page_id']));
             }
             $has = false;
         }
     }
     ////////////////////////////// NEW PASSWORD ///////////////////////////
     $this->view->show_new_password = false;
     if (JO_Session::get('user[user_id]') && JO_Session::get('user[email]') != JO_Session::get('user[new_email]')) {
         /*switch(true) {
         			case 'index' == $request->getController():
         			case 'all' == $request->getController():
         			case 'category' == $request->getController():
         			case 'videos' == $request->getController():
         			case 'popular' == $request->getController():
         			case 'gifts' == $request->getController():
         				$this->view->show_new_password = true;
         			break;
         		}*/
         $this->view->show_new_password = true;
     }
     ////////////////////////////// Board category ///////////////////////////
     if (($board_info = JO_Registry::forceGet('board_category_change')) instanceof ArrayObject) {
         $this->view->board_category_change = array('title' => $board_info['board_title'], 'href' => WM_Router::create($request->getBaseUrl() . '?controller=boards&action=edit&user_id=' . $board_info['board_user_id'] . '&board_id=' . $board_info['board_board_id']));
     }
     ///////////////////// invate menu user /////////////////////////////
     $methodsforinvates = $this->view->callChildrenView('invates/methodsforinvates');
     $this->view->methodsforinvates = (array) $methodsforinvates->user_invate_friends;
     ///////////////////// extra metatags /////////////////////////////
     $extra_metas = '';
     $extra_metas_get = Model_Extensions::getByMethod('extra_metas');
     foreach ($extra_metas_get as $id => $mod) {
         $extra_metas .= $this->view->callChildren('modules_' . $mod . '_extrametas');
     }
     if ($extra_metas) {
         JO_Layout::getInstance()->placeholder('header_metas', $extra_metas);
     }
 }
Example #17
0
    public function doeditAction()
    {
        $this->noViewRenderer(true);
        $request = $this->getRequest();
        if ($request->issetPost('item_id')) {
            $itemID = (int) $request->getPost('item_id');
            $item = Model_Items::get($itemID);
            $error = array();
            if (!$item) {
                $error['msg_error'] = $this->translate('Item not found');
            }
            if (trim($request->getPost('name')) == '') {
                $error['ename'] = $this->translate('You have to input a name');
            }
            if (trim($request->getPost('description')) == '') {
                $error['edescription'] = $this->translate('You have to input a description');
            }
            $base_upload_folder = realpath(BASE_PATH . '/uploads');
            $temp_upload_folder = $base_upload_folder . '/temporary/' . JO_Date::getInstance(JO_Session::get('register_datetime'), 'yy/mm', true) . '/';
            $fileTypes = JO_Registry::get('upload_theme');
            if (isset($fileTypes['archives'])) {
                $ew = explode(',', $fileTypes['archives']);
                foreach ($ew as $ar) {
                    $allow_archives[] = '.' . strtolower($ar);
                }
            }
            $allow_images = array();
            if (isset($fileTypes['images'])) {
                $ew = explode(',', $fileTypes['images']);
                foreach ($ew as $ar) {
                    $allow_images[] = '.' . strtolower($ar);
                }
            }
            if (trim($request->getPost('theme_preview')) != '') {
                if (!in_array(strtolower(strrchr($request->getPost('theme_preview'), '.')), $allow_images)) {
                    $error['etheme_preview'] = $this->translate('Theme preview should be ' . implode(', ', $allow_images) . ' file');
                }
            }
            if (trim($request->getPost('theme_preview_zip')) == '') {
                $error['etheme_preview_zip'] = $this->translate('You have to choose a file');
            } else {
                if (!in_array(strtolower(strrchr($request->getPost('theme_preview_zip'), '.')), $allow_archives)) {
                    $error['etheme_preview_zip'] = $this->translate('Preview archive file should be ' . implode(', ', $allow_archives) . ' file');
                } elseif (!file_exists($temp_upload_folder . $request->getPost('theme_preview_zip'))) {
                    $error['etheme_preview_zip'] = $this->translate('Preview archive file should be ' . implode(', ', $allow_archives) . ' file');
                }
            }
            if (trim($request->getPost('main_file')) != '') {
                if (!in_array(strtolower(strrchr($request->getPost('main_file'), '.')), $allow_archives)) {
                    $error['emain_file'] = $this->translate('Main file should be ' . implode(', ', $allow_archives) . ' file');
                } elseif (!file_exists($temp_upload_folder . $request->getPost('main_file'))) {
                    $error['emain_file'] = $this->translate('Main file should be ' . implode(', ', $allow_archives) . ' file');
                }
            }
            if (!$request->getPost('category')) {
                $error['ecategory'] = $this->translate('You have to choose a category');
            } elseif (!is_array($request->getPost('category'))) {
                $error['ecategory'] = $this->translate('You have to choose a category');
            } elseif (!count($request->getPost('category'))) {
                $error['ecategory'] = $this->translate('You have to choose a category');
            }
            $attributes = Model_Attributes::getAllWithCategories("attributes_categories.categories LIKE '%," . (int) $request->getPost('category_id') . ",%'");
            if (is_array($attributes)) {
                $attributesError = false;
                $cnt = count($attributes);
                for ($i = 0; $i < $cnt; $i++) {
                    if (!$request->getPost('attributes[' . $attributes[$i]['head_id'] . ']') && $attributes[$i]['required']) {
                        $attributesError = true;
                        break;
                    }
                }
                if ($attributesError) {
                    $error['eattributes'] = $this->translate('You have to mark all the attributes');
                }
            }
            if (trim($request->getPost('tags')) == '') {
                $error['etags'] = $this->translate('You have to fill the field with tags');
            }
            if (!$request->getPost('source_license')) {
                $error['esource_license'] = $this->translate('You have to confirm that you have rights to use all the materials in your template');
            }
            if ($request->getPost('demo_url') && filter_var($request->getPost('demo_url'), FILTER_VALIDATE_URL) === false) {
                $error['edemo_url'] = $this->translate('Please enter valid url for demo preview');
            }
            if (!$request->getPost('suggested_price') || !preg_match('#^\\d+(?:\\.\\d{1,})?$#', $request->getPost('suggested_price'))) {
                $error['esuggested_price'] = $this->translate('Suggested price should be in the format: number(.number)');
            }
            if (count($error) > 0) {
                $error['msg_error'] = $this->translate('Upload error');
                JO_Session::set('msg_error', $error);
                JO_Session::set('data', $request->getParams());
                $this->redirect($request->getServer('HTTP_REFERER'));
            } else {
                $free_request = $request->getPost('free_request') ? 'true' : 'false';
                if (!$request->getPost('free_request')) {
                    $free_request = 'false';
                } else {
                    $free_request = 'true';
                }
                Model_Items::updateItem(array('id' => $itemID, 'name' => $request->getPost('name'), 'description' => $request->getPost('description'), 'demo_url' => $request->getPost('demo_url'), 'free_request' => $free_request, 'reviewer_comment' => $request->getPost('reviewer_comment'), 'suggested_price' => $request->getPost('suggested_price'), 'default_module' => $item['module']));
                Model_Attributes::deleteItem($itemID);
                if ($request->getPost('attributes')) {
                    Model_Attributes::addToItem($itemID, $request->getPost('attributes'));
                }
                if ($request->getPost('theme_preview') != '' || $request->getPost('theme_preview_zip') != '' || $request->getPost('main_file') != '') {
                    $upload_folder = $base_upload_folder . '/items/' . JO_Date::getInstance($item['datetime'], 'yy/mm/', true)->toString() . $item['id'] . '/';
                    if (!file_exists($upload_folder . 'temp/') || !is_dir($upload_folder . 'temp/')) {
                        mkdir($upload_folder . 'temp/', 0777, true);
                    }
                    if (trim($request->getPost('theme_preview')) != '') {
                        $theme_preview = $request->getPost('theme_preview');
                        copy($temp_upload_folder . $theme_preview, $upload_folder . 'temp/' . $theme_preview);
                    }
                    if (trim($request->getPost('theme_preview_zip')) != '') {
                        $zip_file = $request->getPost('theme_preview_zip');
                        copy($temp_upload_folder . $zip_file, $upload_folder . 'temp/' . $zip_file);
                    }
                    if (trim($request->getPost('main_file')) != '') {
                        $main_file = $request->getPost('main_file');
                        copy($temp_upload_folder . $main_file, $upload_folder . 'temp/' . $main_file);
                    }
                    $uploaded_files = JO_Session::get('uploaded_files');
                    $upload_file = array();
                    if (isset($theme_preview)) {
                        $found = false;
                        foreach ($uploaded_files as $k => $uf) {
                            foreach ($uf as $f) {
                                if ($f['filename'] == $theme_preview) {
                                    $upload_file = $f;
                                    break;
                                }
                            }
                        }
                        if ($upload_file && file_exists($temp_upload_folder . $upload_file['filename'])) {
                            $preview = $upload_folder . 'temp/' . $upload_file['filename'];
                            copy($temp_upload_folder . $upload_file['filename'], $preview);
                            $found = true;
                        }
                    } else {
                        $found = true;
                    }
                    $zip = new ZipArchive();
                    if (isset($zip_file)) {
                        $res = $zip->open($upload_folder . 'temp/' . $zip_file);
                        if ($res == true) {
                            if (is_dir($upload_folder . 'temp/preview/')) {
                                Model_Items::unlink($upload_folder . 'temp/preview/', false);
                            } else {
                                mkdir($upload_folder . 'temp/preview/', 0777, true);
                            }
                            for ($i = 0; $i < $zip->numFiles; $i++) {
                                $file = $zip->getNameIndex($i);
                                if (stripos($file, '_MACOSX') !== false) {
                                    continue;
                                }
                                if (in_array(strtolower(strrchr($file, '.')), $allow_images)) {
                                    $fileinfo = pathinfo($file);
                                    $prw_filename = $this->rename_if_exists($upload_folder . 'temp/preview/', $fileinfo['basename']);
                                    copy("zip://" . $upload_folder . 'temp/' . $zip_file . "#" . $file, $upload_folder . 'temp/preview/' . $prw_filename);
                                    if (!$found && isset($theme_preview) && !empty($fileinfo['basename']) && $fileinfo['basename'] == $upload_file['name']) {
                                        $found = true;
                                        $filename = $this->rename_if_exists($upload_folder . 'temp/', $fileinfo['basename']);
                                        if (copy("zip://" . $upload_folder . 'temp/' . $zip_file . "#" . $file, $upload_folder . 'temp/' . $filename)) {
                                            $preview = $filename;
                                        }
                                    }
                                }
                            }
                            $zip->close();
                        }
                    }
                    if (isset($main_file)) {
                        $res = $zip->open($upload_folder . 'temp/' . $main_file);
                        for ($i = 0; $i < $zip->numFiles; $i++) {
                            $file = $zip->getNameIndex($i);
                            if (stripos($file, '_MACOSX') !== false) {
                                continue;
                            }
                            if (in_array(strtolower(strrchr($file, '.')), $allow_images)) {
                                $fileinfo = pathinfo($file);
                                if (!$found && !empty($fileinfo['basename']) && $fileinfo['basename'] == $upload_file['name']) {
                                    $filename = $this->rename_if_exists($upload_folder, $fileinfo['basename']);
                                    if (copy("zip://" . $upload_folder . 'temp/' . $main_file . "#" . $file, $upload_folder . 'temp/' . $filename)) {
                                        $preview = $filename;
                                    }
                                }
                            }
                        }
                        $zip->close();
                    }
                    $item_folder = str_replace($base_upload_folder, '', $upload_folder);
                    $uploaded_arhives = JO_Session::get('uploaded_arhives');
                    $upload_zip = array();
                    foreach ($uploaded_arhives[0] as $f) {
                        if ($f['filename'] == $request->getPost('main_file')) {
                            $upload_zip = $f;
                            break;
                        }
                    }
                    $preview = isset($preview) ? str_replace($base_upload_folder, '', $preview) : '';
                    if ($preview && strpos($preview, 'temp/') === false) {
                        $preview = $item_folder . 'temp/' . $preview;
                    }
                    Model_Items::updateTempPics(array('id' => $itemID, 'thumbnail' => $preview, 'theme_preview_thumbnail' => $preview, 'theme_preview' => isset($zip_file) ? $item_folder . 'temp/' . $zip_file : '', 'main_file' => isset($main_file) ? $item_folder . 'temp/' . $main_file : '', 'main_file_name' => isset($main_file) ? $item_folder . 'temp/' . $upload_zip['name'] : ''));
                }
                Model_Categories::deleteTempToItem($itemID);
                Model_Categories::updateToItem($itemID, $request->getPost('category'), $request->getPost('category_id'));
                Model_Attributes::deleteTempToItem($itemID);
                if ($request->getPost('attributes')) {
                    Model_Attributes::updateToItem($itemID, $request->getPost('attributes'));
                }
                Model_Tags::deleteTempToItem($itemID);
                $arr = explode(',', $request->getPost('tags'));
                Model_Tags::updateToItem($itemID, $arr);
                if ($uploaded_files) {
                    foreach ($uploaded_files[0] as $f) {
                        if (file_exists($temp_upload_folder . $f['filename'])) {
                            unlink($temp_upload_folder . $f['filename']);
                        }
                    }
                }
                JO_Session::clear('uploaded_files');
                if ($uploaded_arhives) {
                    foreach ($uploaded_arhives[0] as $f) {
                        if (file_exists($temp_upload_folder . $f['filename'])) {
                            unlink($temp_upload_folder . $f['filename']);
                        }
                    }
                }
                JO_Session::clear('uploaded_arhives');
                $is_mail_smtp = JO_Registry::forceGet('config_mail_smtp');
                $not_template = Model_Notification::getNotification('item_added');
                $mail = new JO_Mail();
                if ($is_mail_smtp) {
                    $mail->setSMTPParams(JO_Registry::forceGet('config_mail_smtp_host'), JO_Registry::forceGet('config_mail_smtp_port'), JO_Registry::forceGet('config_mail_smtp_user'), JO_Registry::forceGet('config_mail_smtp_password'));
                }
                $domain = $request->getDomain();
                $mail->setFrom('no-reply@' . $domain);
                $mail->setReturnPath('no-reply@' . $domain);
                $mail->setSubject($this->translate('Updated item for approval') . ' ' . JO_Registry::get('store_meta_title'));
                if ($not_template) {
                    $title = $not_template['title'];
                    $html = html_entity_decode($not_template['template'], ENT_QUOTES, 'utf-8');
                    $html = str_replace('{URL}', $request->getBaseUrl() . '/admin/queueupdateditems/edit/?m=' . $item['module'] . '&id=' . $itemID, $html);
                } else {
                    $html = nl2br('Hello,

					There is a updated item waiting for approval. You can see it on ' . $request->getBaseUrl() . '/admin/queueupdateditems/edit/?m=' . $item['module'] . '&id=' . $itemID . '');
                }
                $mail->setHTML($html);
                $result = (int) $mail->send(array(JO_Registry::get('report_mail')), $is_mail_smtp ? 'smtp' : 'mail');
                JO_Session::set('msg_success', $this->translate('Your item has been updated successfully!'));
                $this->redirect(WM_Router::create($request->getBaseUrl() . '?controller=users&action=dashboard'));
            }
        }
        $this->redirect($request->getServer('HTTP_REFERER'));
    }
 public function indexAction()
 {
     $request = $this->getRequest();
     if (!JO_Session::get('user[user_id]')) {
         $this->redirect(WM_Router::create($request->getBaseUrl() . '?controller=users&action=login&popup=true&next=' . urlencode($request->getFullUrl())));
     }
     $this->view->createBoard = WM_Router::create($request->getBaseUrl() . '?controller=boards&action=create');
     $boards = new Model_Boards_BoardsWithShared(array('filter_user_id' => JO_Session::get('user[user_id]')));
     $this->view->boards = array();
     if ($boards->count()) {
         foreach ($boards as $board) {
             $this->view->boards[] = array('board_id' => $board['board_board_id'], 'title' => $board['board_title']);
         }
     }
     ///////////////// Extension on create //////////////////
     $this->view->form_extensions = array();
     $extensions = Model_Extensions::getByMethod('pin_oncreateform');
     if ($extensions) {
         $front = JO_Front::getInstance();
         foreach ($extensions as $id => $ext) {
             $this->view->form_extensions[] = array('html' => $this->view->callChildren('modules_' . $ext . '_oncreateform'), 'view' => $this->view->callChildrenView('modules_' . $ext . '_oncreateform'), 'key' => $ext);
         }
     }
     $this->view->title = JO_Utf8::convertToUtf8($request->getQuery('title'));
     $this->view->url = JO_Utf8::convertToUtf8(urldecode($request->getQuery('url')));
     $this->view->media = JO_Utf8::convertToUtf8($request->getQuery('media'));
     $this->view->is_video = JO_Utf8::convertToUtf8($request->getQuery('is_video'));
     $this->view->description = JO_Utf8::convertToUtf8($request->getQuery('description'));
     $this->view->charset = JO_Utf8::convertToUtf8($request->getQuery('charset'));
     if (is_array($request->getPost())) {
         foreach ($request->getPost() as $k => $v) {
             $this->view->{$k} = $v;
         }
     }
     if (!trim($this->view->description)) {
         $this->view->description = $this->view->title;
     }
     if (JO_Session::get('success_added')) {
         return $this->success();
     } else {
         if ($request->isPost()) {
             $validate = new Helper_Validate();
             $validate->_set_rules($request->getPost('description'), $this->translate('Description'), 'not_empty;min_length[1];max_length[500]');
             $validate->_set_rules($request->getPost('board_id'), $this->translate('Board'), 'not_empty;');
             if ($validate->_valid_form()) {
                 $result = new Model_Pins_Create($request->getPost());
                 if ($result->count()) {
                     $result = $result->data;
                     ///add history
                     new Model_History_AddHistory(JO_Session::get('user[user_id]'), Model_History_Abstract::ADDPIN, $result['pin_id']);
                     //send notification
                     $users = new Model_Users_GroupBoardUsers($request->getPost('board_id'));
                     if ($users->count()) {
                         $template = Model_Notification::getTemplate('group_board');
                         if ($template) {
                             $pin_info = new Model_Pins_Pin($result['pin_id']);
                             if ($pin_info->count()) {
                                 $mail_footer = html_entity_decode(Helper_Config::get('mail_footer'), ENT_QUOTES, 'utf-8');
                                 foreach ($users as $user) {
                                     if ($user['email_interval'] == 1 && $user['groups_pin_email']) {
                                         $template_data = array('user_id' => $user['user_id'], 'user_firstname' => $user['firstname'], 'user_lastname' => $user['lastname'], 'user_fullname' => $user['fullname'], 'user_username' => $user['username'], 'author_url' => WM_Router::create($request->getBaseUrl() . '?controller=users&action=profile&user_id=' . $pin_info['user_user_id']), 'author_fullname' => $pin_info['user_fullname'], 'board_url' => WM_Router::create($request->getBaseUrl() . '?controller=boards&action=view&user_id=' . $pin_info['user_user_id'] . '&board_id=' . $pin_info['board_board_id']), 'board_name' => $pin_info['board_title'], 'pin_url' => WM_Router::pinAction($result['pin_id']), 'mail_footer' => $mail_footer);
                                         if (!$template['title']) {
                                             $template['title'] = '${author_fullname} ' . $this->translate('added new pin to a group board');
                                         }
                                         $title = Model_Notification::parseTemplate(html_entity_decode($template['title'], ENT_QUOTES, 'utf-8'), $template_data);
                                         $body = Model_Notification::parseTemplate(html_entity_decode($template['template'], ENT_QUOTES, 'utf-8'), $template_data);
                                         Model_Email::send($user['email'], Helper_Config::get('noreply_mail'), $title, $body);
                                     }
                                 }
                             }
                         }
                     }
                     JO_Session::set('success_added', $result['pin_id']);
                     $this->redirect($request->getBaseUrl() . '?controller=bookmarklet');
                 } else {
                     if ($result->error) {
                         $this->view->error = $result->error;
                     } else {
                         $this->view->error = $this->translate('There was a problem with the record. Please try again!');
                     }
                 }
             } else {
                 $this->view->error = $validate->_get_error_messages();
             }
         }
     }
 }
Example #19
0
 public function createAction()
 {
     $request = $this->getRequest();
     if (JO_Session::get('user[user_id]')) {
         if ($request->isPost()) {
             $validate = new Helper_Validate();
             $validate->_set_rules($request->getPost('newboard'), $this->translate('Board Name'), 'not_empty;min_length[3];max_length[100]');
             $validate->_set_rules($request->getPost('category_id'), $this->translate('Board Category'), 'not_empty');
             if ($validate->_valid_form()) {
                 $postData = array_merge($request->getPost(), array('title' => $request->getPost('newboard')));
                 if (Helper_Config::get('config_private_boards')) {
                     $postData['public'] = (int) (!$request->issetPost('public'));
                 }
                 $result = new Model_Boards_Create($postData);
                 if ($result->board_id) {
                     $this->view->redirect = WM_Router::create($request->getBaseUrl() . '?controller=boards&action=view&user_id=' . JO_Session::get('user[user_id]') . '&board_id=' . $result->board_id);
                     $this->view->created = true;
                     //send notifications
                     if (is_array($request->getPost('friends'))) {
                         $template = Model_Notification::getTemplate('board_invite');
                         if ($template) {
                             $mail_footer = html_entity_decode(Helper_Config::get('mail_footer'), ENT_QUOTES, 'utf-8');
                             foreach ($request->getPost('friends') as $user_id) {
                                 $user = new Model_Users_User($user_id);
                                 if ($user->count()) {
                                     if ($user['email_interval'] == 1 && $user['groups_pin_email']) {
                                         $template_data = array('user_id' => $user['user_id'], 'user_firstname' => $user['firstname'], 'user_lastname' => $user['lastname'], 'user_fullname' => $user['fullname'], 'user_username' => $user['username'], 'author_url' => WM_Router::create($request->getBaseUrl() . '?controller=users&action=profile&user_id=' . JO_Session::get('user[user_id]')), 'author_fullname' => JO_Session::get('user[fullname]'), 'board_url' => WM_Router::create($request->getBaseUrl() . '?controller=boards&action=view&user_id=' . JO_Session::get('user[user_id]') . '&board_id=' . $result->board_id), 'board_name' => $request->getPost('newboard'), 'mail_footer' => $mail_footer);
                                         if (!$template['title']) {
                                             $template['title'] = '${author_fullname} ' . $this->translate('invited you to add pins');
                                         }
                                         $title = Model_Notification::parseTemplate(html_entity_decode($template['title'], ENT_QUOTES, 'utf-8'), $template_data);
                                         $body = Model_Notification::parseTemplate(html_entity_decode($template['template'], ENT_QUOTES, 'utf-8'), $template_data);
                                         Model_Email::send($user['email'], Helper_Config::get('noreply_mail'), $title, $body);
                                     }
                                 }
                             }
                         }
                     }
                 } else {
                     $this->view->error = $this->translate('There was a problem with the record. Please try again!');
                 }
             } else {
                 $this->view->error = $validate->_get_error_messages();
             }
             echo $this->renderScript('json');
         } else {
             $this->view->avatars = Helper_Uploadimages::userAvatars(JO_Session::get('user'));
             $this->view->fullname = JO_Session::get('user[fullname]');
             $this->view->userhref = WM_Router::create($request->getBaseUrl() . '?controller=users&action=profile&user_id=' . JO_Session::get('user[user_id]'));
             $this->view->friends_href = WM_Router::create($request->getBaseUrl() . '?controller=users&action=friends');
             $this->view->form_action = WM_Router::create($request->getBaseUrl() . '?controller=boards&action=create');
             $this->view->private = 1;
             /////private boards
             $this->view->enable_private_boards = Helper_Config::get('config_private_boards');
             $private_boards = Model_Pages::getPage(Helper_Config::get('page_private_boards'));
             if ($private_boards) {
                 $this->view->text_private_boards = WM_Router::create($this->getRequest()->getBaseUrl() . '?controller=pages&action=read&page_id=' . Helper_Config::get('page_private_boards'));
             }
             //////////// Categories ////////////
             $this->view->categories = Model_Categories::getCategories(array('filter_status' => 1));
             $this->view->config_board_description_enable = Helper_Config::get('config_board_description_enable');
             $this->view->popup_main_box = $this->view->render('popup_form', 'boards');
             $this->setViewChange('form');
             if ($request->isXmlHttpRequest()) {
                 $this->view->popup = true;
                 echo $this->view->popup_main_box;
                 $this->noViewRenderer(true);
             } else {
                 $this->view->children = array('header_part' => 'layout/header_part', 'footer_part' => 'layout/footer_part', 'left_part' => 'layout/left_part');
             }
         }
     } else {
         $this->view->redirect = WM_Router::create($request->getBaseUrl() . '?controller=users&action=login');
         // 			echo $this->renderScript('json');
         $this->setViewChange('redirect');
     }
 }