public function methodsforinvatesAction() { $request = $this->getRequest(); //user invate friends $this->view->user_invate_friends = array(); $this->view->user_invate_friends[] = array('title' => $this->translate('Email'), 'href' => WM_Router::create($request->getBaseUrl() . '?controller=invates'), 'active' => $request->getController() == 'invates', 'class_icon' => 'icon-invites-email'); $user_invate_friends = Model_Extensions::getByMethod('user_invate_friends'); foreach ($user_invate_friends as $id => $method) { $this->view->user_invate_friends[] = array('title' => $this->translate(ucfirst(strtolower($method))), 'href' => WM_Router::create($request->getBaseUrl() . '?controller=modules_' . $method . '_invates'), 'active' => $request->getController() == 'modules_' . $method . '_invates', 'class_icon' => 'icon-invites-' . $method); } }
public function steptwoAction() { $this->noLayout(true); $request = $this->getRequest(); if (JO_Session::get('user[user_id]')) { if (JO_Session::get('upload_from_file') && file_exists(BASE_PATH . JO_Session::get('upload_from_file'))) { ///////////////// 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->createBoard = WM_Router::create($request->getBaseUrl() . '?controller=boards&action=createboardwithoutcategory'); $temporary = '/cache/review/'; $upload_folder = BASE_PATH . $temporary; $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']); } } $this->view->form_action = WM_Router::create($request->getBaseUrl() . '?controller=addpin_fromfile&action=upload_images'); $this->view->upload_action = WM_Router::create($request->getBaseUrl() . '?controller=addpin_fromfile&action=steptwo'); $this->view->from_url = WM_Router::create($request->getBaseUrl() . '?controller=pin&action=createpin'); $this->view->file = JO_Session::get('upload_from_file_name'); $this->view->full_path = $request->getBaseUrl() . JO_Session::get('upload_from_file'); } else { $this->forward('addpin_fromfile', 'stepone', $this->translate('We couldn\'t find any images')); } } else { $this->redirect(WM_Router::create($request->getBaseUrl() . '?controller=users&action=login')); // $this->view->redirect = WM_Router::create( $request->getBaseUrl() . '?controller=users&action=login' ); } }
public function steptwoAction() { $request = $this->getRequest(); $this->noLayout(true); if (JO_Session::get('user[user_id]')) { $files = JO_Session::get('gallery_upload_images'); if ($files) { $this->view->from_url = WM_Router::create($request->getBaseUrl() . '?controller=pin&action=createpin'); $this->view->createBoard = WM_Router::create($request->getBaseUrl() . '?controller=boards&action=createboardwithoutcategory'); $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']); } } $imageObject = new Helper_Images(); $this->view->images = array(); foreach ($files as $file) { $this->view->images[] = array('src' => $request->getBaseUrl() . $file['path'] . $file['tmp_name'], 'thumb' => $imageObject->resize('/../' . $file['path'] . $file['tmp_name'], 75, 75, true)); } ///////////////// 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); } } } else { $this->forward('addpin_gallery', 'stepone', true); } } else { $this->redirect(WM_Router::create($request->getBaseUrl() . '?controller=users&action=login')); } }
public function steptwoAction() { $this->noLayout(true); $request = $this->getRequest(); if (JO_Session::get('user[user_id]')) { $this->view->images = array(); if ($request->isGet() && $request->getQuery('url')) { $cleared = preg_replace('/^www./i', '', JO_Validate::validateHost($request->getQuery('url'))); $cleared = mb_strtolower($cleared, 'utf-8'); if (Model_Blacksources::is_exists($cleared)) { $this->view->error = sprintf($this->translate('Source %s is blocked!'), $cleared); $this->setViewChange('stepone'); } else { $video_url = $request->getQuery('url'); $video_url = trim($video_url); if (strpos($video_url, 'http') === false) { $video_url = 'http://' . $video_url; } $http = new JO_Http(); $http->setUseragent('Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.9) Gecko/20071025 Firefox/2.0.0.9'); $http->setReferrer($video_url); $http->useCurl(true); $http->execute($video_url, $request->getBaseUrl(), 'GET'); $http->setMaxredirect(5); /*if(isset($http->headers['location']) && $http->headers['location']) { $new_url = $http->headers['location']; $http = new JO_Http(); $http->setUseragent('Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.9) Gecko/20071025 Firefox/2.0.0.9'); $http->setReferrer($video_url); $http->useCurl(true); $http->execute($new_url, $request->getBaseUrl(), 'GET'); if(is_array($new_url)) { $video_url = array_shift($new_url); } else if($new_url) { $video_url = $new_url; } }*/ $videoObject = new Helper_AutoEmbed(); $parsedVideo = $videoObject->parseUrl($video_url); $video_image = false; if ($parsedVideo) { $video_image = $videoObject->getImageURL(); } $config_image_minimum_size = (int) Helper_Config::get('config_image_minimum_size'); if (!$config_image_minimum_size) { $config_image_minimum_size = 80; } if ($http->error) { $this->view->error = str_replace("'", "\\'", $http->error); } elseif ($video_url && ($imagesize = @getimagesize($video_url)) !== false) { if ($imagesize && $imagesize[0] >= $config_image_minimum_size && $imagesize[1] >= $config_image_minimum_size) { $this->view->images[] = array('src' => $video_url, 'width' => $imagesize[0], 'height' => $imagesize[1]); } } elseif ($video_image && ($imagesize = @getimagesize($video_image)) !== false) { if ($imagesize && $imagesize[0] >= $config_image_minimum_size && $imagesize[1] >= $config_image_minimum_size) { $this->view->images[] = array('src' => $video_image, 'width' => $imagesize[0], 'height' => $imagesize[1]); } } else { $html = $http->result; $dom = new JO_Dom_Query($html); $meta = $dom->query('meta'); $charset = false; if ($meta->count()) { for ($i = 0; $i < $meta->count(); $i++) { $content = $meta->getItem($i)->getAttribute('content'); if (preg_match('/charset=([^\\"\']+)/', $content, $match)) { $charset = trim($match[1]); } } } if ($charset) { $html = iconv($charset, "UTF-8", $html); } else { $html = JO_Utf8::convertToUtf8($http->result); } $this->view->title = ''; if (preg_match('/<title>(.*)<\\/title>/sim', $html, $match)) { $this->view->title = $match[1]; } $meta_image = $dom->query('meta[property="og:image"]'); $meta_image_src = null; if ($meta_image->count()) { $meta_image_src = $meta_image->rewind()->getAttribute('content'); } if ($meta_image_src) { if (($imagesize = @getimagesize($meta_image_src)) !== false) { if ($imagesize && $imagesize[0] >= $config_image_minimum_size && $imagesize[1] >= $config_image_minimum_size) { $this->view->images[] = array('src' => $meta_image_src, 'width' => $imagesize[0], 'height' => $imagesize[1]); } } } $images = $dom->query('img'); if ($images->count() > 0) { $images_array = array(); for ($i = 0; $i < $images->count(); $i++) { $src = $images->getItem($i)->getAttribute('src'); $image_full = JO_Url_Relativetoabsolute::toAbsolute($request->getQuery('url'), $src); $images_array[$image_full] = $image_full; } foreach ($images_array as $image_full) { $imagesize = @getimagesize($image_full); if ($imagesize && $imagesize[0] >= $config_image_minimum_size && $imagesize[1] >= $config_image_minimum_size) { $this->view->images[] = array('src' => $image_full, 'width' => $imagesize[0], 'height' => $imagesize[1]); } } } } $this->view->from = $video_url; } } $this->view->total_images = count($this->view->images); if ($this->view->total_images < 1) { $this->view->form_action = WM_Router::create($request->getBaseUrl() . '?controller=addpin_fromurl&action=steptwo'); $this->view->error_total_images = true; $this->setViewChange('stepone'); } else { $this->view->createBoard = WM_Router::create($request->getBaseUrl() . '?controller=boards&action=createboardwithoutcategory'); $this->view->from_url = WM_Router::create($request->getBaseUrl() . '?controller=pin&action=createpin'); $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); } } } } else { // $this->view->redirect = WM_Router::create( $request->getBaseUrl() . '?controller=users&action=login' ); $this->redirect(WM_Router::create($request->getBaseUrl() . '?controller=users&action=login')); } }
public function __construct($pin_id) { $db = JO_Db::getDefaultAdapter(); try { $db->beginTransaction(); $pin_info = new Model_Pins_Pin($pin_id); if (!$pin_info->count()) { return $this; } $pin_info = $pin_info->data; $result = null; if ($pin_info['pin_image']) { $res = Helper_Db::create('pins_images_for_delete', array('pin_id' => $pin_info['pin_pin_id'], 'date_added' => $pin_info['pin_date_added'], 'image' => $pin_info['pin_image'], 'store' => $pin_info['pin_store'], 'gallery_id' => 0)); if (!$result) { $result = $res; } } $gallery = new Model_Pins_Gallery($pin_info['pin_pin_id']); if ($gallery->count()) { foreach ($gallery->data as $gal) { $res = Helper_Db::create('pins_images_for_delete', array('pin_id' => $gal['pin_id'], 'date_added' => $pin_info['pin_date_added'], 'image' => $gal['image'], 'store' => $gal['store'], 'gallery_id' => $gal['gallery_id'])); if (!$result) { $result = $res; } } } if ($pin_info['pin_comments']) { $comments = Model_Comments::getComments2(array('filter_pin_id' => $pin_id)); foreach ($comments as $comment) { $del = new Model_Pins_DeleteComment($comment['comment_id']); if (!$result) { $result = $del->affected_rows; } } } $res = Helper_Db::delete('pins', array('pin_id = ?' => $pin_id)); if (!$result) { $result = $res; } $res = Helper_Db::delete('pins_invert', array('pin_id = ?' => $pin_id)); if (!$result) { $result = $res; } if ($pin_info['pin_likes']) { $res = Helper_Db::delete('pins_likes', array('pin_id = ?' => $pin_id)); if (!$result) { $result = $res; } } $res = Helper_Db::delete('pins_reports', array('pin_id = ?' => $pin_id)); if (!$result) { $result = $res; } $res = Helper_Db::delete('pins_views', array('pin_id = ?' => $pin_id)); if (!$result) { $result = $res; } $res = Helper_Db::delete('users_history', array('pin_id = ?' => $pin_id)); if (!$result) { $result = $res; } $res = Helper_Db::delete('pins_images', array('pin_id = ?' => $pin_id)); if (!$result) { $result = $res; } $res = Helper_Db::update('users', array('likes' => new JO_Db_Expr('(' . $db->select()->from('pins_likes', 'COUNT(like_id)')->where('pin_id IN (?)', new JO_Db_Expr('(' . $db->select()->from('pins', 'pin_id')->where('user_id = ?', $pin_info['user_user_id']) . ')'))->limit(1) . ')')), array('user_id=?' => $pin_info['user_user_id'])); if (!$result) { $result = $res; } ///////////////// update latest pins for user and board ///////////////////// new Model_Users_UpdateLatestPins($pin_info['user_user_id']); new Model_Boards_UpdateLatestPins($pin_info['board_board_id']); ///////////////// Extension on delete ////////////////// $extensions = Model_Extensions::getByMethod('pin_ondelete'); if ($extensions) { $front = JO_Front::getInstance(); foreach ($extensions as $id => $ext) { $res = call_user_func(array($front->formatModuleName('model_' . $ext . '_pin'), 'ondelete'), $pin_id); if (!$result) { $result = $res; } } } $this->affected_rows = $result; $db->commit(); } catch (JO_Exception $e) { $db->rollBack(); } }
public function __construct($pin_id, $data = array()) { $db = JO_Db::getDefaultAdapter(); try { $db->beginTransaction(); $pin_info = new Model_Pins_Pin($pin_id); if (!$pin_info->count()) { return $this; } $pin_info = $pin_info->data; if (isset($data['board_id'])) { $board_info = new Model_Boards_Board($data['board_id']); if ($board_info->count()) { $data['board_id'] = $board_info['board_board_id']; $data['category_id'] = $board_info['board_category_id']; $data['public'] = $board_info['board_public']; } else { $data['board_id'] = 0; } } $data['likes'] = new JO_Db_Expr('(SELECT COUNT(DISTINCT user_id) FROM pins_likes WHERE pin_id = pins.pin_id)'); $data['comments'] = new JO_Db_Expr('(SELECT COUNT(DISTINCT comment_id) FROM pins_comments WHERE pin_id = pins.pin_id)'); $data['date_modified'] = WM_Date::format(time(), 'yy-mm-dd H:i:s'); $data['source_id'] = 0; //sorce if (isset($data['from']) && $data['from']) { $source = new Model_Sources_GetSourceByUrl($data['from']); if ($source->source_id) { $data['source_id'] = $source->source_id; } } $data['from_md5'] = md5(isset($data['from']) ? $data['from'] : time()); /* price */ //$data['price'] = 0; if (isset($data['price']) && $data['price']) { $currencies = WM_Currency::getCurrencies(); $price_left = array(); $price_right = array(); if ($currencies) { foreach ($currencies as $currency) { if (trim($currency['symbol_left'])) { $price_left[] = preg_quote(trim($currency['symbol_left'])); } if (trim($currency['symbol_right'])) { $price_right[] = preg_quote(trim($currency['symbol_right'])); } } if ($price_left) { if (preg_match('/(' . implode('|', $price_left) . ')([\\s]{0,2})?(?:(?:\\d{1,5}(?:\\,\\d{3})+)|(?:\\d+))(?:\\.\\d{2})?/', $data['price'], $match)) { $price_tmp = trim(str_replace(trim($match[1]), '', $match[0])); $currency = self::getCurrencyBySimbol(trim($match[1])); if ($currency) { $data['price'] = round($price_tmp / $currency, 4); } } } if (!$data['price'] && $price_right) { if (preg_match('/(?:(?:\\d{1,5}(?:\\,\\d{3})+)|(?:\\d+))(?:\\.\\d{2})?([\\s]{0,2})?(' . implode('|', $price_right) . ')/', $data['price'], $match)) { $price_tmp = trim(str_replace(trim($match[2]), '', $match[0])); $currency = self::getCurrencyBySimbol(trim($match[2])); if ($currency) { $data['price'] = round($price_tmp / $currency, 4); } } } } } /* end price */ $from = isset($data['from']) ? $data['from'] : time(); $data['is_video'] = isset($data['is_video']) && $data['is_video'] == 'true' ? 1 : 0; if (!$data['is_video']) { $auto = new Helper_AutoEmbed(); if ($auto->parseUrl($from)) { $data['is_video'] = 1; } } /* is video */ ///////////////// Event onComplete ///////////////////// $on_add_call = Helper_Config::get('pin_onbefore_edit'); if ($on_add_call) { foreach ($on_add_call as $call) { call_user_func($call, $data); } } //edit pin $result = Helper_Db::update('pins', $data, array('pin_id = ?' => $pin_id)); ///////////////// update latest pins for board ///////////////////// if (isset($data['board_id']) && $data['board_id'] && $pin_info['pin_board_id'] != $data['board_id']) { new Model_Boards_UpdateLatestPins($data['board_id']); new Model_Boards_UpdateLatestPins($pin_info['pin_board_id']); $board_info = new Model_Boards_Board($data['board_id']); if ($board_info->count()) { if ($board_info['board_cover'] == $pin_id) { $res = Helper_Db::update('boards', array('cover' => 0), array('board_id = >' => $pin_info['pin_board_id'])); if (!$result && $res) { $result = $res; } } } } ///////////////// update latest pins for user ///////////////////// new Model_Users_UpdateLatestPins($pin_info['pin_user_id']); ///////////////// Word for search index's ///////////////////// $spl = JO_Utf8::str_word_split(strip_tags(html_entity_decode($data['description'], ENT_QUOTES, 'utf-8')), self::$searchWordLenght); $words = array(); foreach ($spl as $word) { $word = mb_strtolower($word, 'utf-8'); if (!in_array($word, self::blackWordsDictionary()) && $word[0] . $word[1] != '&#') { $words[$word] = $word; } } ///////////////// Word for search index's insert ///////////////////// Helper_Db::delete('pins_invert', array('pin_id = ?' => $pin_id)); foreach ($words as $word => $data1) { $dic_id = $db->fetchOne($db->select()->from('pins_dictionary', 'dic_id')->where('word = ?', $word)); if (!$dic_id) { $dic_id = Helper_Db::insert('pins_dictionary', array('word' => $word)); } if ($dic_id) { $res = Helper_Db::insert('pins_invert', array('pin_id' => $pin_id, 'dic_id' => $dic_id)); if (!$result && $res) { $result = $res; } } } ///////////////// Extension on edit ////////////////// $extensions = Model_Extensions::getByMethod('pin_onedit'); if ($extensions) { $front = JO_Front::getInstance(); foreach ($extensions as $id => $ext) { $pin_data_ext = call_user_func(array($front->formatModuleName('model_' . $ext . '_pin'), 'onedit'), $pin_id, $data); if ($pin_data_ext && is_array($pin_data_ext)) { $data = array_merge(data, $pin_data_ext); } } } ///////////////// Event onComplete ///////////////////// $trigger = new Helper_Triggers_PinOnEdit(); $trigger->bind($pin_id); $this->affected_rows = $result; $db->commit(); } catch (JO_Exception $e) { echo $e; exit; $db->rollBack(); } }
private function profileHelp() { $request = $this->getRequest(); $user_data = new Model_Users_User($request->getRequest('user_id')); if (!$user_data->count()) { $this->forward('error', 'error404'); } if (!$user_data['facebook_connect']) { $user_data['facebook_id'] = 0; } if (!$user_data['twitter_connect']) { $user_data['twitter_id'] = 0; } $user_data['avatars'] = Helper_Uploadimages::userAvatars($user_data); //$user_data['image_href'] = $user_data['avatar']; if ($user_data['user_id'] == JO_Session::get('user[user_id]')) { $user_data['image_href'] = WM_Router::create($request->getBaseUrl() . '?controller=settings'); } else { $user_data['image_href'] = WM_Router::create($request->getBaseUrl() . '?controller=users&action=profile&user_id=' . $user_data['user_id']); } $this->view->active = 'boards'; if ($user_data['website'] && !preg_match('/^https?:\\/\\//', $user_data['website'])) { $user_data['website'] = 'http://' . $user_data['website']; } $this->view->userdata = $user_data; $this->view->self_profile = WM_Router::create($request->getBaseUrl() . '?controller=users&action=profile&user_id=' . $user_data['user_id']); $this->view->user_pins = WM_Router::create($request->getBaseUrl() . '?controller=users&action=pins&user_id=' . $user_data['user_id']); $this->view->user_pins_likes = WM_Router::create($request->getBaseUrl() . '?controller=users&action=pins&user_id=' . $user_data['user_id'] . '&filter=likes'); $this->view->settings = WM_Router::create($request->getBaseUrl() . '?controller=settings'); $this->view->user_activity = WM_Router::create($request->getBaseUrl() . '?controller=users&action=activity&user_id=' . $user_data['user_id']); $this->view->user_followers = WM_Router::create($request->getBaseUrl() . '?controller=users&action=followers&user_id=' . $user_data['user_id']); $this->view->user_following = WM_Router::create($request->getBaseUrl() . '?controller=users&action=following&user_id=' . $user_data['user_id']); $this->view->edit_description = WM_Router::create($request->getBaseUrl() . '?controller=users&action=editDescription'); $this->view->enable_edit = JO_Session::get('user[user_id]') && JO_Session::get('user[user_id]') == $user_data['user_id']; /* v2.2 mod */ $this->view->enable_follow = JO_Session::get('user[user_id]') && JO_Session::get('user[user_id]') != $user_data['user_id'] && (Helper_Config::get('config_enable_follow_private_profile') ? $user_data['enable_follow'] : true); /* v2.2 mod */ $this->view->order_boards = WM_Router::create($request->getBaseUrl() . '?controller=boards&action=sort_order'); $this->view->reload_page = $request->getFullUrl(); if (JO_Session::get('user[user_id]') && $user_data['user_id'] != JO_Session::get('user[user_id]')) { $this->view->userIsFollow = Model_Users::isFollowUser($user_data['user_id']); $this->view->follow_user = WM_Router::create($request->getBaseUrl() . '?controller=users&action=follow&user_id=' . $user_data['user_id']); } $this->view->class_contaner = $request->getAction(); $data = array('start' => 0, 'limit' => 3, 'filter_history_action' => Model_History_Abstract::REPIN); $history = new Model_History_Activity($data, 'from_user_id', $user_data['user_id']); $this->view->history_data = array(); $this->view->title_right = $this->translate('Repins from'); if (!$history->count()) { $this->view->title_right = $this->translate('Following'); $data['filter_history_action'] = Model_History_Abstract::FOLLOW_USER; $history = new Model_History_Activity($data, 'from_user_id', $user_data['user_id']); } if ($history->count()) { foreach ($history as $r) { $ud = array(); foreach ($r as $k => $v) { if (strpos($k, 'user_') === 0) { $ud[substr($k, 5)] = $v; } } $this->view->history_data[] = array('title' => $r['user_fullname'], 'href' => WM_Router::create($request->getBaseUrl() . '?controller=users&action=profile&user_id=' . $r['user_user_id']), 'avatars' => Helper_Uploadimages::userAvatars($ud)); } } //extensions $user_data['user_social_icons'] = array(); $user_login_buttons = Model_Extensions::getByMethod('user_login'); $tmp = $user_data; foreach ($user_login_buttons as $id => $login) { $user_data['user_social_icons'][] = $this->view->callChildren('modules_' . $login . '_profileicons', (array) $tmp); } ////metas $user_data['meta_title'] = $user_data['fullname'] . ' ' . sprintf($this->translate('on %s'), Helper_Config::get('site_name')); $this->getLayout()->placeholder('title', $user_data['meta_title']); JO_Layout::getInstance()->placeholder('header_metas', $this->view->callChildren('users/header_metas', $user_data)); return $user_data; }
public function configAction() { $request = $this->getRequest(); $this->noLayout(true); /* price formats */ $currencies = WM_Currency::getCurrencies(); $price_left = array(); $price_right = array(); if ($currencies) { foreach ($currencies as $currency) { if (trim($currency['symbol_left'])) { $price_left[] = preg_quote(trim($currency['symbol_left'])); } if (trim($currency['symbol_right'])) { $price_right[] = preg_quote(trim($currency['symbol_right'])); } } } $price = array(); if ($price_left) { $price['price_left'] = 'js:/(' . implode('|', $price_left) . ')([\\s]{0,2})?(?:(?:\\d{1,5}(?:\\,\\d{3})+)|(?:\\d+))(?:\\.\\d{2})?/'; } if ($price_right) { $price['price_right'] = 'js:/(?:(?:\\d{1,5}(?:\\,\\d{3})+)|(?:\\d+))(?:\\.\\d{2})?([\\s]{0,2})?(' . implode('|', $price_right) . ')/'; } /* config data */ $loged = JO_Session::get('user[user_id]'); $config = array('loged' => $loged, 'load_dynamically_extensions' => array(), 'load_dynamically_extensions_css' => array(), 'facebook_app_id' => null, 'regExPrice' => $price, 'comments_list' => (int) Helper_Config::get('config_comments_list'), 'disable_js' => (int) Helper_Config::get('config_disable_js'), 'invate_limit' => 5, 'baseUrl' => $request->getBaseUrl(), 'search_autocomplete' => WM_Router::create($request->getBaseUrl() . '?controller=search&action=autocomplete'), 'get_user_friends' => WM_Router::create($request->getBaseUrl() . '?controller=users&action=friends'), 'edit_description' => WM_Router::create($request->getBaseUrl() . '?controller=users&action=editDescription'), 'order_boards' => WM_Router::create($request->getBaseUrl() . '?controller=boards&action=sort_order'), 'resend_email_verification' => WM_Router::create($request->getBaseUrl() . '?controller=users&action=resend'), 'createboardwithoutcategory' => WM_Router::create($request->getBaseUrl() . '?controller=boards&action=createboardwithoutcategory'), 'text' => array('text_save_description' => $this->translate('Save Description'), 'text_rearrange_boards' => $this->translate('Rearrange Boards'), 'text_save_arrangement' => $this->translate('Save Arrangement'), 'text_create_board_input' => $this->translate('Create New Board'), 'text_create_board_button' => $this->translate('Create'))); $other_config = Model_Extensions::getByMethod('extensions_config_js'); if (is_array($other_config)) { $front = $this->getFrontController(); foreach ($other_config as $ext) { $settings = Model_Extensions::getSettingsPairs($ext); if (isset($settings[$ext . '_module_status_enable']) && $settings[$ext . '_module_status_enable']) { $call = $front->formatModuleName('model_' . $ext . '_jsConfig'); $config = call_user_func(array($call, 'extendsConfig'), $config); } } } //format config $this->view->config_data = JO_Javascript::encode($config); $response = $this->getResponse(); $response->addHeader('Cache-Control: no-cache, must-revalidate'); $response->addHeader('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); $response->addHeader('Content-type: application/javascript; charset=utf-8'); }
public function editAction() { // var_dump( htmlspecialchars('⚐') );exit; $request = $this->getRequest(); $pin_id = $request->getRequest('pin_id'); // $pin_info = Model_Pins::getPin($pin_id); $pin_info = new Model_Pins_Pin($pin_id); if (!$pin_info->count() || $pin_info->data['pin_user_id'] != JO_Session::get('user[user_id]')) { $this->forward('error', 'error404'); } $pin_info = $pin_info->data; if ($request->isPost()) { $validate = new Helper_Validate(); if ($pin_info['pin_from']) { $validate->_set_rules($request->getPost('from'), $this->translate('Link'), 'not_empty;min_length[3];domain'); } else { if (trim($request->getPost('from'))) { $validate->_set_rules($request->getPost('from'), $this->translate('Link'), 'not_empty;min_length[3];domain'); } } $data = $request->getPost(); if ($validate->_valid_form()) { $edit = new Model_Pins_Edit($pin_id, $request->getPost()); $this->redirect(WM_Router::pinAction($pin_info['pin_pin_id'])); } else { $this->view->error = $validate->_get_error_messages(); } foreach ($data as $k => $v) { if (isset($pin_info['pin_' . $k])) { $pin_info['pin_' . $k] = $v; } } } $pin_info['images'] = Helper_Uploadimages::pinThumbs($pin_info); if ($pin_info['pin_gift']) { $pin_info['price_formated'] = WM_Currency::format($pin_info['pin_price']); } else { $pin_info['price_formated'] = ''; $pin_info['pin_price'] = 0; } $pin_info['href'] = WM_Router::pinAction($pin_info['pin_pin_id']); $this->view->pin_info = $pin_info; $view->get_user_friends = WM_Router::create($request->getBaseUrl() . '?controller=users&action=friends'); $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 edit ////////////////// $this->view->form_extensions = array(); $extensions = Model_Extensions::getByMethod('pin_oneditform'); if ($extensions) { $front = JO_Front::getInstance(); foreach ($extensions as $id => $ext) { $this->view->form_extensions[] = array('html' => $this->view->callChildren('modules_' . $ext . '_oneditform'), 'view' => $this->view->callChildrenView('modules_' . $ext . '_oneditform'), 'key' => $ext); } } $this->view->pin_delete = WM_Router::pinAction($pin_id, 'delete'); $this->view->children = array('header_part' => 'layout/header_part', 'footer_part' => 'layout/footer_part'); }
public function __construct($data = array()) { $db = JO_Db::getDefaultAdapter(); $data['category_id'] = 0; $data['public'] = 1; if (isset($data['board_id'])) { $board_info = new Model_Boards_Board($data['board_id']); if ($board_info->count()) { $data['board_id'] = $board_info['board_board_id']; $data['category_id'] = $board_info['board_category_id']; $data['public'] = $board_info['board_public']; } else { $data['board_id'] = 0; } } else { $data['board_id'] = 0; } $data['date_added'] = WM_Date::format(time(), 'yy-mm-dd H:i:s'); $data['date_modified'] = $data['date_added']; $data['user_id'] = isset($data['user_id']) ? $data['user_id'] : (string) JO_Session::get('user[user_id]'); $data['store'] = Helper_Config::get('file_upload_method') ? Helper_Config::get('file_upload_method') : 'Model_Upload_Locale'; $data['source_id'] = 0; //sorce if (isset($data['from']) && $data['from']) { $source = new Model_Sources_GetSourceByUrl($data['from']); if ($source->source_id) { $data['source_id'] = $source->source_id; } } $data['from_md5'] = md5(isset($data['from']) ? $data['from'] : time()); /* price */ //$data['price'] = 0; if (isset($data['price']) && $data['price']) { $currencies = WM_Currency::getCurrencies(); $price_left = array(); $price_right = array(); if ($currencies) { foreach ($currencies as $currency) { if (trim($currency['symbol_left'])) { $price_left[] = preg_quote(trim($currency['symbol_left'])); } if (trim($currency['symbol_right'])) { $price_right[] = preg_quote(trim($currency['symbol_right'])); } } if ($price_left) { if (preg_match('/(' . implode('|', $price_left) . ')([\\s]{0,2})?(?:(?:\\d{1,5}(?:\\,\\d{3})+)|(?:\\d+))(?:\\.\\d{2})?/', $data['price'], $match)) { $price_tmp = trim(str_replace(trim($match[1]), '', $match[0])); $currency = self::getCurrencyBySimbol(trim($match[1])); if ($currency) { $data['price'] = round($price_tmp / $currency, 4); } } } if (!$data['price'] && $price_right) { if (preg_match('/(?:(?:\\d{1,5}(?:\\,\\d{3})+)|(?:\\d+))(?:\\.\\d{2})?([\\s]{0,2})?(' . implode('|', $price_right) . ')/', $data['price'], $match)) { $price_tmp = trim(str_replace(trim($match[2]), '', $match[0])); $currency = self::getCurrencyBySimbol(trim($match[2])); if ($currency) { $data['price'] = round($price_tmp / $currency, 4); } } } } } /* end price */ $from = isset($data['from']) ? $data['from'] : time(); $data['is_video'] = isset($data['is_video']) && $data['is_video'] == 'true' ? 1 : 0; if (!$data['is_video']) { $auto = new Helper_AutoEmbed(); if ($auto->parseUrl($from)) { $data['is_video'] = 1; } } /* is video */ ///////////////// Event onComplete ///////////////////// $on_add_call = Helper_Config::get('pin_onbefore_create'); if ($on_add_call) { foreach ($on_add_call as $call) { call_user_func($call, $data); } } ///////////////// upload image ///////////////////// $image = false; if (isset($data['media']) && !isset($data['image'])) { $image = $data['media']; } else { if (isset($data['image'])) { $image = $data['image']; } } if (!isset($data['gallery']) && !$image) { return $this; } $data['image'] = ''; //create pin $data['pin_id'] = Helper_Db::insert('pins', $data); if (!$data['pin_id']) { return $this; } if (isset($data['gallery'])) { if (is_array($data['gallery']) && count($data['gallery']) > 0) { $method_for_upload = Helper_Config::get('file_upload_method'); if ($method_for_upload) { foreach ($data['gallery'] as $row => $image_get) { if ($this->error) { return $this; } $image = call_user_func(array($method_for_upload, 'uploadPin'), $image_get, isset($data['title']) && $data['title'] ? $data['title'] : $data['description'], $data['pin_id']); $this->error = call_user_func(array($method_for_upload, 'getError')); if ($image && isset($image['image'])) { if ($row == 0) { Helper_Db::update('pins', array('image' => $image['image'], 'store' => $image['store'], 'height' => $image['height'], 'width' => $image['width']), array('pin_id = ?' => (string) $data['pin_id'])); } else { $gal_id = Helper_Db::insert('pins_gallery', array('image' => $image['image'], 'store' => $image['store'], 'pin_id' => $data['pin_id'], 'sort_order' => $row)); if (!$gal_id) { return $this; } } } else { return $this; } } } else { Helper_Db::delete('pins', array('pin_id = ?' => (string) $data['pin_id'])); return $this; } } else { Helper_Db::delete('pins', array('pin_id = ?' => (string) $data['pin_id'])); return $this; } } else { $method_for_upload = Helper_Config::get('file_upload_method'); if ($method_for_upload && $image) { $image = call_user_func(array($method_for_upload, 'uploadPin'), $image, isset($data['title']) && $data['title'] ? $data['title'] : $data['description'], $data['pin_id']); $this->error = call_user_func(array($method_for_upload, 'getError')); if ($image && isset($image['image'])) { Helper_Db::update('pins', array('image' => $image['image'], 'store' => $image['store'], 'height' => $image['height'], 'width' => $image['width']), array('pin_id = ?' => (string) $data['pin_id'])); } else { Helper_Db::delete('pins', array('pin_id = ?' => (string) $data['pin_id'])); return $this; } } else { Helper_Db::delete('pins', array('pin_id = ?' => (string) $data['pin_id'])); return $this; } } ///////////////// update latest pins for board ///////////////////// if (isset($data['board_id']) && $data['board_id']) { new Model_Boards_UpdateLatestPins($data['board_id']); } ///////////////// update latest pins for user ///////////////////// new Model_Users_UpdateLatestPins($data['user_id']); ///////////////// Pin total repins ///////////////////// if (isset($data['repin_from']) && $data['repin_from']) { $pin_repin = new Model_Pins_Pin($data['repin_from']); if ($pin_repin->count()) { Helper_Db::update('pins', array('repins' => $db->fetchOne($db->select()->from('pins', 'COUNT(pin_id)')->where('repin_from = ?', $data['repin_from'])->limit(1))), array('pin_id = ?' => $data['repin_from'])); } } ///////////////// Word for search index's ///////////////////// $spl = JO_Utf8::str_word_split(strip_tags(html_entity_decode($data['description'], ENT_QUOTES, 'utf-8')), self::$searchWordLenght); $words = array(); foreach ($spl as $word) { $word = mb_strtolower($word, 'utf-8'); if (!in_array($word, self::blackWordsDictionary()) && $word[0] . $word[1] != '&#') { $words[$word] = $word; } } ///////////////// Word for search index's insert ///////////////////// foreach ($words as $word => $data1) { $dic_id = $db->fetchOne($db->select()->from('pins_dictionary', 'dic_id')->where('word = ?', $word)); if (!$dic_id) { $db->insert('pins_dictionary', array('word' => $word)); $dic_id = $db->lastInsertId(); } if ($dic_id) { $db->insert('pins_invert', array('pin_id' => $data['pin_id'], 'dic_id' => $dic_id)); } } Helper_Db::delete('pins_images', array('pin_id = ?' => $data['pin_id'])); ///////////////// Extension on create ////////////////// $extensions = Model_Extensions::getByMethod('pin_oncreate'); if ($extensions) { $front = JO_Front::getInstance(); foreach ($extensions as $id => $ext) { $pin_data_ext = call_user_func(array($front->formatModuleName('model_' . $ext . '_pin'), 'oncreate'), $data['pin_id'], $data); if ($pin_data_ext && is_array($pin_data_ext)) { $data = array_merge(data, $pin_data_ext); } } } ///////////////// Event onComplete ///////////////////// $trigger = new Helper_Triggers_PinOnCreate(); $trigger->bind($data['pin_id']); $this->data = $data; // parent::__construct($data); }
public function fromatList($pin) { static $extensions = null; if ($extensions === null) { $extensions = Model_Extensions::getByMethod('pin_list'); } $pin = array_merge($pin, Helper_Pin::formatPinData($pin)); $pin_data = array('template' => 'pins', 'pin_id' => $pin['pin_id'], 'pin_row' => $pin['pin_pin_row'], 'category_id' => $pin['board_category_id'], 'loged' => JO_Session::get('user[user_id]') ? true : false, 'is_liked' => $pin['pin_is_liked'], 'from' => $pin['pin_from'], 'vip' => $pin['pin_vip'], 'gift' => $pin['pin_gift'], 'price' => $pin['pin_price_formated'], 'date_added' => $pin['pin_date_added'], 'is_video' => $pin['pin_is_video'], 'description' => str_replace('&', '&', $pin['pin_description']), 'likes' => $pin['pin_likes'], 'comments' => $pin['pin_comments'], 'repins' => $pin['pin_repins'], 'set_activity_title' => isset($pin['set_activity_title']) ? $pin['set_activity_title'] : false, 'via_profile' => $pin['via_profile'] ? $pin['via_profile'] : false, 'self_profile' => $pin['self_profile'], 'author_profile' => array('avatars' => $pin['user_avatars'], 'fullname' => $pin['user_fullname'], 'user_id' => $pin['user_user_id'], 'href' => $pin['user_href']), 'url_repin' => $pin['pin_url_repin'], 'url_edit' => $pin['pin_edit'], 'url_like' => $pin['pin_url_like'], 'url_comment' => $pin['pin_url_comment'], 'pin_url' => $pin['pin_href'], 'board_url' => $pin['pin_onto_href'], 'pin_comments_data' => $pin['pin_latest_comments'] ? $pin['pin_latest_comments'] : false, 'images' => $pin['pin_thumbs'], 'text_vip' => $this->translate('VIP'), 'text_add_comment' => $this->translate('Add a comment...'), 'text_delete_comment' => $this->translate('Delete Comment'), 'text_via' => $pin['via_profile'] ? $this->translate('via') : '', 'text_onto' => $this->translate('onto'), 'text_repin' => $this->translate('Repin'), 'text_edit' => $this->translate('Edit'), 'text_like_unlike' => $pin['pin_is_liked'] ? $this->translate('Unlike') : $this->translate('Like'), 'text_comment' => $this->translate('Comment'), 'text_total_likes' => sprintf($this->translate('%d like' . ($pin['pin_likes'] == 1 ? '' : 's')), $pin['pin_likes']), 'text_total_comments' => sprintf($this->translate('%d comment' . ($pin['pin_comments'] == 1 ? '' : 's')), $pin['pin_comments']), 'text_total_repins' => sprintf($this->translate('%d repin' . ($pin['pin_repins'] == 1 ? '' : 's')), $pin['pin_repins']), 'text_date_dif' => sprintf($this->translate('%d %s ago'), $pin['pin_date_dif']['value'], $this->translate($pin['pin_date_dif']['key'])), 'text_board' => $pin['board_title'], 'text_all_comments' => $pin['pin_comments'] && $pin['pin_comments'] > (int) Helper_Config::get('config_comments_list') ? sprintf($this->translate('All %d comments...'), $pin['pin_comments']) : false); if ($extensions) { $front = JO_Front::getInstance(); foreach ($extensions as $id => $ext) { $pin_data_ext = call_user_func(array($front->formatModuleName('model_' . $ext . '_pin'), 'listing'), $pin, $pin_data); if ($pin_data_ext && is_array($pin_data_ext)) { $pin_data = array_merge($pin_data, $pin_data_ext); } } } return $pin_data; }
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 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 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'); }