/** * 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; }
/** * 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; }
/** * 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; }
/** * 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; }
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; }
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); }
/** * 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'); }
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'); }
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'); } } }
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'); }
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); }
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'); } } }
/** * 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'); }
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); } }
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(); } } } }
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'); } }