コード例 #1
0
 private function initInstagram(array $options = array())
 {
     $config = array('client_id' => JO_Registry::get('oauth_in_key'), 'client_secret' => JO_Registry::get('oauth_in_secret'), 'grant_type' => 'authorization_code', 'redirect_uri' => WM_Router::create($this->getRequest()->getBaseUrl() . '?controller=instagram'));
     $this->instagram = new WM_Instagram(JO_Array::array_extend($config, $options));
     if ($this->user_data) {
         return true;
     }
     if (JO_Session::get('user[user_id]')) {
         if (JO_Session::get('user[instagram_connect]') != 1 && !$this->getRequest()->getParam('state')) {
             return false;
         }
     }
     $InstagramAccessToken = $this->instagram->getAccessToken();
     $user_data = JO_Json::decode($this->instagram->getUser(), true);
     if (isset($user_data['meta']['code']) && $user_data['meta']['code'] == 200) {
         JO_Session::set('InstagramAccessToken', $InstagramAccessToken);
         $this->user_data = $user_data['data'];
     } elseif ($InstagramAccessToken) {
         JO_Session::set('InstagramAccessToken', $InstagramAccessToken);
         $this->instagram->setAccessToken($InstagramAccessToken);
     } elseif (JO_Session::get('InstagramAccessToken')) {
         $this->instagram->setAccessToken(JO_Session::get('InstagramAccessToken'));
     } elseif (JO_Session::get('user[instagram_token]')) {
         $this->instagram->setAccessToken(JO_Session::get('user[instagram_token]'));
     }
     if (!$this->user_data) {
         $user_data = JO_Json::decode($this->instagram->getUser(), true);
         if (isset($user_data['meta']['code']) && $user_data['meta']['code'] == 200) {
             $this->user_data = $user_data['data'];
         }
     }
     return $this->user_data ? true : false;
 }
コード例 #2
0
ファイル: Tags.php プロジェクト: noikiy/PD
    public function updateToItem($item_id, $data)
    {
        $db = JO_Db::getDefaultAdapter();
        $data = array_filter($data, create_function('$a', 'return trim($a)!="";'));
        $all_tags = $db->fetchAll("SELECT name FROM tags");
        $all_tag_names = JO_Array::multi_array_to_single_uniq($all_tags);
        $diff = array_diff($data, $all_tag_names);
        if ($diff) {
            $query = 'INSERT INTO `tags` (name) 
					VALUES (\'' . implode('\'), (\'', $diff) . '\')';
            $db->query($query);
        }
        $query = 'SELECT id FROM `tags` WHERE name IN (\'' . implode('\',\'', $data) . '\')';
        $tags = $db->fetchAll($query);
        $query = 'INSERT INTO `temp_items_tags` (item_id, tag_id) VALUES (\'';
        $values = JO_Array::multi_array_to_single_uniq($tags);
        $vals = array();
        foreach ($values as $val) {
            $vals[] = (int) $item_id . '\', \'' . (int) $val;
        }
        $query .= implode('\'), (\'', $vals) . '\')';
        $db->query($query);
    }
コード例 #3
0
ファイル: TagsController.php プロジェクト: noikiy/PD
 public function indexAction()
 {
     $request = $this->getRequest();
     $this->setViewChange('../search/index');
     $tag = $request->getParam('tags');
     /* CRUMBS */
     $this->view->crumbs = array(array('name' => $this->view->translate('Home'), 'href' => $request->getBaseUrl()), array('name' => $this->translate('Search')));
     if ($tag) {
         $page = (int) $request->getRequest('page', 1);
         if ($page < 1) {
             $page = 1;
         }
         $limit = JO_Registry::get('front_limit');
         $order = $request->getRequest('order');
         if (is_null($order)) {
             $order = 'desc';
         }
         $sort = $request->getRequest('sort');
         if (is_null($sort)) {
             $sort = 'datetime';
         }
         if ($sort == 'username') {
             $prefix = 'users.';
         } else {
             $prefix = 'items.';
         }
         $tag = trim(urldecode($tag));
         $this->view->searchText = $this->translate('Tag') . ': ' . $tag;
         $this->getLayout()->meta_title = $this->translate('Items by tag') . ' ' . $tag;
         $this->getLayout()->meta_description = $this->translate('Items by tag') . ' ' . $tag;
         $all_cats_link = $link = $request->getBaseUrl() . '?controller=tags&tag=' . urlencode($tag);
         $category = $request->getRequest('category');
         if ($category) {
             $link .= '&category=' . $category;
         }
         $this->view->sort_by = array(array('name' => $this->view->translate('date'), 'href' => WM_Router::create($link . '&sort=datetime'), 'is_selected' => $sort == 'datetime' ? true : false), array('name' => $this->view->translate('title'), 'href' => WM_Router::create($link . '&sort=name'), 'is_selected' => $sort == 'name' ? true : false), array('name' => $this->view->translate('rating'), 'href' => WM_Router::create($link . '&sort=rating'), 'is_selected' => $sort == 'rating' ? true : false), array('name' => $this->view->translate('sales'), 'href' => WM_Router::create($link . '&sort=sales'), 'is_selected' => $sort == 'sales' ? true : false), array('name' => $this->view->translate('price'), 'href' => WM_Router::create($link . '&sort=price'), 'is_selected' => $sort == 'price' ? true : false), array('name' => $this->view->translate('author name'), 'href' => WM_Router::create($link . '&sort=username'), 'is_selected' => $sort == 'username' ? true : false));
         /* ORDER */
         $link .= '&sort=' . $sort;
         $this->view->orders = array(array('name' => '&raquo;', 'href' => WM_Router::create($link . '&order=desc'), 'is_selected' => $order == 'desc' ? true : false), array('name' => '&laquo;', 'href' => WM_Router::create($link . '&order=asc'), 'is_selected' => $order == 'asc' ? true : false));
         $link .= '&order=' . $order;
         $total_records = Model_Tags::getAllSearchItems($tag, ($sort == 'price' ? 'rprice' : $sort) . ' ' . $order, $category);
         if ($total_records) {
             $this->view->total_result = $cnt_total_records = count($total_records);
             $this->view->categories = array();
             $categories = Model_Tags::getCategories($tag, $category);
             if ($categories) {
                 if ($category) {
                     $this->view->all_cats_link = WM_Router::create($all_cats_link);
                     $exists = array();
                     foreach ($categories as $cat) {
                         if (substr_count($cat['categories'], '|||') > 1) {
                             continue;
                         }
                         $cat_parts = explode('|||', $cat['categories']);
                         foreach ($cat_parts as $part) {
                             $sub_parts = explode('@@@', $part);
                             if (in_array($sub_parts[0], $exists)) {
                                 continue;
                             }
                             $exists[] = $sub_parts[0];
                             $this->view->categories[] = array('name' => $sub_parts[1], 'href' => WM_Router::create($link . '&category=' . $sub_parts[0]));
                         }
                     }
                     $this->view->categories[0] = array('name' => $this->view->categories[0]['name']);
                     $this->view->cnt_categories = count($this->view->categories) - 1;
                     $this->view->subcategories = $this->view->cnt_categories == 1 ? $this->translate('Subcategory') : $this->translate('Subcategories');
                 } else {
                     foreach ($categories as $cat) {
                         if (strpos($cat['categories'], '|||')) {
                             continue;
                         }
                         $cat_parts = explode('@@@', $cat['categories']);
                         $this->view->categories[] = array('name' => $cat_parts[1], 'href' => WM_Router::create($link . '&category=' . $cat_parts[0]));
                     }
                     $this->view->cnt_categories = count($this->view->categories);
                     $this->view->subcategories = $this->view->cnt_categories == 1 ? $this->translate('Category') : $this->translate('Categories');
                 }
             }
             $start = $page * $limit - $limit;
             if ($start > $cnt_total_records) {
                 $page = max(ceil($cnt_total_records / $limit), 1);
                 $start = $page * $limit - $limit;
             } elseif ($start < 0) {
                 $start = 0;
             }
             $items = array_slice($total_records, $start, $limit);
             $this->view->items = array();
             foreach ($items as $n => $item) {
                 $item['demo_url'] = WM_Router::create($request->getBaseUrl() . '?controller=items&action=preview&item_id=' . $item['id'] . '&name=' . WM_Router::clearName($item['name']));
                 $item['categories'] = trim($item['categories'], ',');
                 $item['categories'] = explode(',', $item['categories']);
                 $item['categories'] = JO_Array::multi_array_to_single_uniq($item['categories']);
                 $item['categories'] = array_filter($item['categories'], create_function('$a', 'return $a!="";'));
                 $this->view->items[] = Helper_Items::returnViewIndex($item, 'category');
             }
             $pagination = new Model_Pagination();
             $pagination->setLimit($limit);
             $pagination->setPage($page);
             $pagination->setText(array('text_prev' => $this->view->translate('Prev'), 'text_next' => $this->view->translate('Next')));
             $pagination->setTotal($cnt_total_records);
             $pagination->setUrl(WM_Router::create($link . '&page={page}'));
             $this->view->pagination = $pagination->render();
             if (!empty($this->view->pagination)) {
                 $this->view->pagination = str_replace('{of}', $this->view->translate('OF'), $this->view->pagination);
             }
         }
         $this->view->children = array();
         $this->view->children['header_part'] = 'layout/header_part';
         $this->view->children['footer_part'] = 'layout/footer_part';
     } else {
         $this->redirect($request->getBaseUrl() . '?controller=categories&action=recent');
     }
 }
コード例 #4
0
ファイル: ItemsController.php プロジェクト: noikiy/PD
 public function editAction()
 {
     $request = $this->getRequest();
     if (!JO_Session::get('user_id')) {
         JO_Session::set('msg_error', $this->translate('You must be logged to access that page'));
         $this->redirect(WM_Router::create($request->getBaseUrl() . '?controller=users&action=login'));
     }
     $itemID = $request->getRequest('edit');
     $item = Model_Items::get($itemID);
     if (JO_Session::get('user_id') != $item['user_id']) {
         $this->redirect(WM_Router::create($request->getBaseUrl() . '?module=' . $item['module'] . '&controller=items&item_id=' . $item['id'] . '&name=' . WM_Router::clearName($item['name'])));
     }
     $this->getLayout()->meta_title = $item['name'];
     $this->getLayout()->meta_description = substr(strip_tags(html_entity_decode($item['description'], ENT_QUOTES, 'utf-8')), 0, 255);
     $this->view->item_link = WM_Router::create($request->getBaseUrl() . '?controller=items&item_id=' . $item['id'] . '&name=' . WM_Router::clearName($item['name']));
     $faqs_data = Model_Faq::getAll($itemID);
     if (JO_Session::get('user_id') == $item['user_id'] || $faqs_data) {
         $this->view->faq_link = WM_Router::create($request->getBaseUrl() . '?controller=items&action=faq&item_id=' . $item['id'] . '&name=' . WM_Router::clearName($item['name']));
     }
     if (JO_Session::get('user_id') == $item['user_id']) {
         $this->view->edit_link = WM_Router::create($request->getBaseUrl() . '?controller=items&action=edit&item_id=' . $item['id'] . '&name=' . WM_Router::clearName($item['name']));
         $this->view->delete_link = WM_Router::create($request->getBaseUrl() . '?controller=items&action=delete&item_id=' . $item['id'] . '&name=' . WM_Router::clearName($item['name']));
     }
     $this->view->crumbs = array(array('name' => $this->translate('Home'), 'href' => $request->getBaseUrl()), array('name' => $this->translate('Portfolio'), 'href' => WM_Router::create($request->getBaseUrl() . '?controller=users&username='******'username')))), array('name' => $item['name'], 'href' => $this->view->item_link), array('name' => $this->translate('Edit')));
     $this->view->comment_link = WM_Router::create($request->getBaseUrl() . '?controller=items&action=comments&item_id=' . $item['id'] . '&name=' . WM_Router::clearName($item['name']));
     $categories = Model_Categories::getMain();
     if ($categories) {
         foreach ($categories as $category) {
             $this->view->categories[] = array('id' => $category['id'], 'href' => WM_Router::create($request->getBaseUrl() . '?controller=upload&action=get_categories&category_id=' . $category['id']), 'name' => $category['name']);
         }
     }
     $this->view->mainCategories = $categories;
     if (JO_Session::get('msg_success')) {
         $this->view->msg_success = JO_Session::get('msg_success');
         JO_Session::clear('msg_success');
     } elseif (JO_Session::get('msg_error')) {
         $this->view->error = JO_Session::get('msg_error');
         $data = JO_Session::get('data');
         JO_Session::clear('msg_error');
         JO_Session::clear('data');
     }
     $this->view->sel_category = isset($data) ? $data['category_id'] : reset($item['categories'][0]);
     $allCategories = Model_Categories::getWithChilds();
     $this->view->categoriesSelect = array();
     $categoriesSelect = Model_Categories::generateSelect($allCategories, $this->view->sel_category, $this->view->sel_category);
     if ($categoriesSelect) {
         $categories = explode('|', $categoriesSelect);
         foreach ($categories as $category) {
             if (!empty($category)) {
                 $c = explode('>', $category);
                 $this->view->categoriesSelect[] = array('id' => $c[0], 'name' => $c[1]);
             }
         }
     }
     $this->view->attributes = Model_Attributes::getAllWithCategories("attributes_categories.categories LIKE '%," . (int) $this->view->sel_category . ",%'");
     $this->view->total_sales_cnt = JO_Session::get('sales');
     $this->view->total_balance = WM_Currency::format(JO_Session::get('total'));
     $user = array('user_id' => JO_Session::get('user_id'), 'sold' => JO_Session::get('sold'));
     $this->view->percent = Model_Percentes::getPercentRow($user);
     if (isset($data)) {
         $item['name'] = $data['name'];
         $item['description'] = $data['description'];
         $item['theme_preview'] = $data['theme_preview'];
         $item['theme_preview_zip'] = $data['theme_preview_zip'];
         $item['main_file'] = $data['main_file'];
         $item['reviewer_comment'] = $data['reviewer_comment'];
         $item['attributes'] = $data['attributes'];
         isset($data['source_license']) && ($item['source_license'] = $data['source_license']);
         isset($data['free_request']) && ($item['free_file'] = true);
     }
     $item['suggested_price'] = isset($data['suggested_price']) ? $data['suggested_price'] : $item['price'];
     $item['selected_categories'] = isset($data['category']) ? $data['category'] : JO_Array::multi_array_to_single_uniq($item['categories']);
     $item['selected_attributes'] = isset($data['attributes']) ? JO_Array::multi_array_to_single_uniq($data['attributes']) : JO_Array::multi_array_to_single_uniq($item['attributes']);
     $item['selected_tags'] = isset($data['tags']) ? $data['tags'] : implode(', ', JO_Array::multi_array_to_single_uniq($item['tags']));
     $help = Model_Pages::get(JO_Registry::forceGet('page_upload_item'));
     if ($help) {
         $this->view->page_upload_item = array('name' => $help['name'], 'href' => WM_Router::create($request->getBaseUrl() . '?controller=pages&page_id=' . $help['id']));
     }
     $this->view->uploaded_files = JO_Session::get('uploaded_files');
     $this->view->uploaded_arhives = JO_Session::get('uploaded_arhives');
     $this->view->file_upload = WM_Router::create($request->getBaseUrl() . '?module=' . $item['module'] . '&controller=upload&action=doupload');
     $this->view->action_upload = WM_Router::create($request->getBaseUrl() . '?module=' . $item['module'] . '&controller=items&action=doedit');
     $this->view->d = $item;
     $this->view->autocomplete = WM_Router::create($request->getBaseUrl() . '?controller=items&action=auto');
     $this->view->children = array();
     $this->view->children['header_part'] = 'layout/header_part';
     $this->view->children['footer_part'] = 'layout/footer_part';
 }
コード例 #5
0
ファイル: UploadController.php プロジェクト: noikiy/PD
 public function formAction()
 {
     $request = $this->getRequest();
     if (!JO_Session::get('user_id')) {
         JO_Session::set('msg_error', $this->translate('You must be logged to upload an item'));
         $this->redirect(WM_Router::create($request->getBaseUrl() . '?controller=users&action=login'));
     }
     if (JO_Session::get('quiz') != 'true') {
         JO_Session::set('msg_error', $this->translate('In order to upload your files for sale first you have to pass our quiz.'));
         $this->redirect(WM_Router::create($request->getBaseUrl() . '?controller=quiz'));
     }
     if ($request->getRequest('form')) {
         $category_id = $request->getRequest('form');
     }
     $redir_link = WM_Router::create($request->getBaseUrl() . '?controller=upload');
     if (!$category_id) {
         $this->redirect($redir_link);
     }
     $this->getLayout()->meta_title = $this->translate('Item upload');
     $this->getLayout()->meta_description = $this->translate('Item upload');
     $mainCategories = Model_Categories::getMain();
     $cnt = count($mainCategories);
     for ($i = 0; $i < $cnt; $i++) {
         $mainCategories[$i]['href'] = WM_Router::create($request->getBaseUrl() . '?controller=upload&action=get_categories&category_id=' . $mainCategories[$i]['id']);
     }
     $category_info = Model_Categories::get($category_id);
     $has_category = JO_Array::multi_array_search($mainCategories, 'id', $category_id);
     if (!$category_info) {
         JO_Session::set('msg_error', $this->translate('You have choosen a non existing category'));
         $this->redirect($redir_link);
     } elseif (empty($has_category)) {
         JO_Session::set('msg_error', $this->translate('You have choosen a non existing category'));
         $this->redirect($redir_link);
     }
     if (JO_Session::get('msg_error')) {
         $this->view->error = JO_Session::get('msg_error');
         JO_Session::clear('msg_error');
     }
     if (JO_Session::get('data')) {
         $this->view->d = JO_Session::get('data');
         JO_Session::clear('data');
     }
     $fileTypes = JO_Registry::get('upload_theme');
     $types = '';
     if ($fileTypes) {
         foreach ($fileTypes as $type) {
             $tp = explode(',', $type);
             foreach ($tp as $t) {
                 $types .= '*.' . $t . ';';
             }
         }
     }
     $this->view->sel_category = $category_id;
     $this->view->mainCategories = $mainCategories;
     $allCategories = Model_Categories::getWithChilds();
     $categoriesSelect = Model_Categories::generateSelect($allCategories, $category_id, $category_id);
     if ($categoriesSelect) {
         $categories = explode('|', $categoriesSelect);
         foreach ($categories as $category) {
             if (!empty($category)) {
                 $c = explode('>', $category);
                 $this->view->categoriesSelect[] = array('id' => $c[0], 'name' => trim($c[1]));
             }
         }
     }
     $this->view->fileTypes = $types;
     $this->view->attributes = Model_Attributes::getAllWithCategories("attributes_categories.categories LIKE '%," . (int) $category_id . ",%'");
     $fileTypes_allow = JO_Registry::get('upload_theme');
     $allow_archives = array();
     if (isset($fileTypes_allow['archives'])) {
         $ew = explode(',', $fileTypes_allow['archives']);
         foreach ($ew as $ar) {
             $allow_archives[] = '.' . strtolower($ar);
         }
     }
     $allow_images = array();
     if (isset($fileTypes_allow['images'])) {
         $ew = explode(',', $fileTypes_allow['images']);
         foreach ($ew as $ar) {
             $allow_images[] = '.' . strtolower($ar);
         }
     }
     $this->view->uploaded_files = JO_Session::get('uploaded_files');
     $this->view->uploaded_arhives = JO_Session::get('uploaded_arhives');
     $this->view->crumbs = array(array('name' => $this->translate('Home'), 'href' => $request->getBaseUrl()), array('name' => $this->translate('Upload')));
     $user = Model_Users::getByUsername(JO_Session::get('username'));
     $this->view->author_header = Helper_Author::authorHeader($user);
     $this->view->action_upload = WM_Router::create($request->getBaseUrl() . '?controller=upload&action=upload');
     $this->view->autocomplete = WM_Router::create($request->getBaseUrl() . '?controller=items&action=auto');
     $this->view->total_sales_cnt = JO_Session::get('sales');
     $this->view->total_balance = WM_Currency::format(JO_Session::get('total'));
     $this->view->percent = Model_Percentes::getPercentRow($user);
     $help = Model_Pages::get(JO_Registry::forceGet('page_upload_item'));
     if ($help) {
         $this->view->page_upload_item = array('name' => $help['name'], 'href' => WM_Router::create($request->getBaseUrl() . '?controller=pages&page_id=' . $help['id'] . '&name=' . WM_Router::clearName($help['name'])));
     }
     $this->view->file_upload = WM_Router::create($request->getBaseUrl() . '?module=themes&controller=upload&action=doupload');
     $this->view->children = array();
     $this->view->children['header_part'] = 'layout/header_part';
     $this->view->children['footer_part'] = 'layout/footer_part';
 }
コード例 #6
0
ファイル: Author.php プロジェクト: noikiy/PD
 public static function returnFollowing($follower, $owner, $followers = false)
 {
     $view = JO_View::getInstance();
     $model_images = new Helper_Images();
     $request = JO_Request::getInstance();
     $list_type = $request->getParam('list_type');
     $user = Model_Users::getByUsername($follower['username']);
     $view->badges = self::userBadges($user);
     if ($user['avatar']) {
         $user['avatar'] = $model_images->resize($user['avatar'], JO_Registry::forceGet('user_avatar_width'), JO_Registry::forceGet('user_avatar_height'), true);
     } else {
         $user['avatar'] = 'data/themes/images/noavatar.png';
     }
     $user['portfolio_href'] = WM_Router::create($request->getBaseUrl() . '?controller=users&username='******'&', '-', $user['username']));
     $log_user = JO_Session::get('user_id');
     if ($log_user) {
         $following = JO_Array::multi_array_search(JO_Session::get('following'), 'follow_id', $user['user_id']);
         if ($following) {
             $user['follow_href_name'] = $view->translate('Unfollow');
             $user['follow_href'] = WM_Router::create($request->getBaseUrl() . '?controller=users&action=unfollow&username='******'&', '-', $user['username']));
         } elseif ($log_user != $user['user_id']) {
             $user['follow_href_name'] = $view->translate('Follow');
             $user['follow_href'] = WM_Router::create($request->getBaseUrl() . '?controller=users&action=follow&username='******'&', '-', $user['username']));
         }
     }
     $view->user = $user;
     $user_items = Model_Items::getByUser($user['user_id'], 0, 3, 'rand()');
     if (empty($user_items)) {
         $user_items = array(array('no_items' => true, 'thumbnail' => 'data/themes/images/missing-item.png', 'module' => 'themes'));
     }
     $view->user_items = array();
     if ($user_items) {
         foreach ($user_items as $item) {
             if (isset($item['demo_url'])) {
                 $item['demo_url'] = WM_Router::create($request->getBaseUrl() . '?controller=demo&href=' . $item['demo_url']);
             }
             $view->user_items[] = Helper_Items::returnViewIndex($item);
         }
     }
     return $view->renderByModule('single_user/following', 'users', 'themes');
 }