public static function createUser($data) { $db = JO_Db::getDefaultAdapter(); if (!$data['username'] || Model_Users::getByUsername($data['username'])) { return false; } if (!$data['email'] || Model_Users::getByEmail($data['email'])) { return false; } $db->insert(Model_Users::getPrefixDB() . 'users', array('username' => $data['username'], 'password' => $data['password'], 'email' => $data['email'], 'firstname' => $data['firstname'], 'lastname' => $data['lastname'], 'firmname' => $data['firmname'], 'profile_title' => $data['profile_title'], 'profile_desc' => $data['profile_desc'], 'register_datetime' => $data['register_datetime'], 'status' => 'activate')); $user_id = $db->lastInsertId(); if ($user_id) { $upload_path = BASE_PATH . '/uploads'; $user_path = '/users/' . JO_Date::getInstance($data['register_datetime'], 'yy/mm/')->toString() . $user_id . '/'; $upload_path .= $user_path; if ($data['avatar'] && @getimagesize($data['avatar'])) { $name = basename($data['avatar']); if (copy($data['avatar'], $upload_path . $name)) { $db->update('users', array('avatar' => $user_path . $name), array('user_id' => $user_id)); } } if ($data['homeimage'] && @getimagesize($data['homeimage'])) { $name = basename($data['homeimage']); if (copy($data['homeimage'], $upload_path . $name)) { $db->update('users', array('homeimage' => $user_path . $name), array('user_id' => $user_id)); } } return Model_Users::getUser($user_id); } }
public function indexAction() { $where = ''; $category = null; if ($this->getRequest()->getQuery('username')) { $userinfo = Model_Users::getByUsername($this->getRequest()->getQuery('username')); if ($userinfo) { $where = "users.username = '******'username') . "'"; } } if ($this->getRequest()->getQuery('category')) { $catinfo = Model_Categories::get($this->getRequest()->getQuery('category')); if ($catinfo) { $category = $this->getRequest()->getQuery('category'); } } $items = Model_Items::getAll($category, 0, 20, 'id desc', $where); $this->view->item = array(); if ($items) { $model_images = new Model_Images(); $categories = Model_Categories::get_all(); foreach ($items as $item) { $categories_string = ''; if ($category) { foreach ($item['categories'] as $cats) { if (in_array($category, $cats)) { foreach ($cats as $cat) { if (isset($categories[$cat]['name'])) { $categories_string .= $categories_string ? ' › ' : ''; $categories_string .= $categories[$cat]['name']; } } break; } } } else { $cats = array_pop($item['categories']); if ($cats && is_array($cats)) { foreach ($cats as $cat) { if (isset($categories[$cat]['name'])) { $categories_string .= $categories_string ? ' › ' : ''; $categories_string .= $categories[$cat]['name']; } } } } if ((int) JO_Registry::get($item['module'] . '_items_preview_width') && (int) JO_Registry::get($item['module'] . '_items_preview_height')) { $item['theme_preview_thumbnail'] = $this->getRequest()->getBaseUrl() . $model_images->resize($item['theme_preview_thumbnail'], JO_Registry::forceGet($item['module'] . '_items_preview_width'), JO_Registry::forceGet($item['module'] . '_items_preview_height'), true); } elseif ((int) JO_Registry::get($item['module'] . '_items_preview_width')) { $item['theme_preview_thumbnail'] = $this->getRequest()->getBaseUrl() . $model_images->resizeWidth($item['theme_preview_thumbnail'], JO_Registry::forceGet($item['module'] . '_items_preview_width')); } elseif ((int) JO_Registry::get($item['module'] . '_items_preview_height')) { $item['theme_preview_thumbnail'] = $this->getRequest()->getBaseUrl() . $model_images->resizeHeight($item['theme_preview_thumbnail'], JO_Registry::forceGet($item['module'] . '_items_preview_height')); } else { $item['theme_preview_thumbnail'] = false; } $this->view->item[] = array('title' => $item['name'], 'link' => WM_Router::create($this->getRequest()->getBaseUrl() . '?module=' . $item['module'] . '&controller=items&item_id=' . $item['id']), 'description' => html_entity_decode($item['description'], ENT_QUOTES, 'utf-8'), 'author' => $item['username'], 'category' => $categories_string, 'guid' => $item['id'], 'enclosure' => $item['theme_preview_thumbnail'], 'pubDate' => JO_Date::getInstance($item['datetime'], JO_Date::RSS_FULL, true)->toString()); } } echo $this->renderScript('rss'); }
public function indexAction() { if ($this->session->get('successfu_edite')) { $this->view->successfu_edite = true; $this->session->clear('successfu_edite'); } $this->view->page_num = $page = $this->getRequest()->getRequest('page', 1); $data = array('start' => $page * JO_Registry::get('admin_limit') - JO_Registry::get('admin_limit'), 'limit' => JO_Registry::get('admin_limit')); $this->view->contacts = array(); $contacts = Model_Contacts::getContacts($data); if ($contacts) { foreach ($contacts as $contact) { $contact['datetime'] = JO_Date::getInstance($contact['datetime'], 'dd MM yy', true)->toString(); $contact['has_response'] = $contact['answer_datetime'] != '0000-00-00 00:00:00'; if ($contact['answer_datetime'] != '0000-00-00 00:00:00') { $contact['answer_datetime'] = JO_Date::getInstance($contact['answer_datetime'], 'dd MM yy', true)->toString(); } else { $contact['answer_datetime'] = ''; } $this->view->contacts[] = $contact; } } $total_records = Model_Contacts::getTotalContacts($data); $this->view->total_pages = ceil($total_records / JO_Registry::get('admin_limit')); $this->view->total_rows = $total_records; $pagination = new Model_Pagination(); $pagination->setLimit(JO_Registry::get('admin_limit')); $pagination->setPage($page); $pagination->setTotal($total_records); $pagination->setUrl($this->getRequest()->getModule() . '/contacts/?page={page}'); $this->view->pagination = $pagination->render(); }
public static function edit($id, $data) { $db = JO_Db::getDefaultAdapter(); if (isset($data['topbanner'])) { Model_Settings::updateAll(array('topbanner' => $data['topbanner'])); } return $db->update('topbanner', array('name' => $data['name'], 'url' => $data['url'], 'html' => $data['html'], 'background' => $data['background'], 'photo' => $data['photo'], 'from' => $data['from'] ? JO_Date::getInstance($data['from'], 'yy-mm-dd', true)->toString() : '0000-00-00', 'to' => $data['to'] ? JO_Date::getInstance($data['to'], 'yy-mm-dd', true)->toString() : '0000-00-00', 'close' => $data['close'], 'width' => (int) $data['width'], 'height' => (int) $data['height'], 'cookie' => (int) $data['cookie']), array('id = ?' => (int) $id)); }
public static function getDaysListBetweenTwoDate($startDate, $endDate = 'now') { $date = JO_Date::getInstance(); $date->setFormat('yy-mm-dd'); $pastDateTS = $date->dateToUnix($startDate); $currentDateArray = array(); for ($currentDateTS = $pastDateTS; $currentDateTS < strtotime($endDate); $currentDateTS += 86400) { $currentDateArray[] = $date->setDate($currentDateTS)->toString(); } return $currentDateArray; }
public static function updateCurrencies($code = null, $from_admin = false) { if (extension_loaded('curl')) { $db = JO_Db::getDefaultAdapter(); $query = $db->select()->from('currency')->where('code != ?', (string) ($code ? $code : JO_Registry::get('config_currency'))); if (!$from_admin) { $query->where('date_modified < ?', JO_Date::getInstance('-1 day', 'yy-mm-dd H:i:s', true)->toString()); } $data = array(); $results = $db->fetchAll($query); if ($results) { foreach ($results as $result) { $data[] = JO_Registry::get('config_currency') . $result['code'] . '=X'; } } if ($data) { if (ini_get('allow_url_fopen')) { $content = file_get_contents('http://download.finance.yahoo.com/d/quotes.csv?s=' . implode(',', $data) . '&f=sl1&e=.csv'); } else { $content = self::file_get_contents_curl('http://download.finance.yahoo.com/d/quotes.csv?s=' . implode(',', $data) . '&f=sl1&e=.csv'); } $lines = explode("\n", trim($content)); foreach ($lines as $line) { $currency = substr($line, 4, 3); $value = substr($line, 11, 6); if ((double) $value) { $db->update('currency', array('value' => (double) $value, 'date_modified' => new JO_Db_Expr('NOW()')), array('code = ?' => $currency)); } } $db->update('currency', array('value' => '1.00000', 'date_modified' => new JO_Db_Expr('NOW()')), array('code = ?' => JO_Registry::get('config_currency'))); } } }
public function delete($item_id) { $db = JO_Db::getDefaultAdapter(); $info = self::get($item_id); if (!$info) { return; } $db->delete('items', array('id=?' => $item_id)); $db->delete('temp_items', array('id=?' => $item_id)); $db->delete('temp_items_tags', array('item_id=?' => $item_id)); $db->delete('items_attributes', array('item_id=?' => $item_id)); $db->delete('items_collections', array('item_id=?' => $item_id)); $db->delete('items_comments', array('item_id=?' => $item_id)); $db->delete('items_faqs', array('item_id=?' => $item_id)); $db->delete('items_rates', array('item_id=?' => $item_id)); $db->delete('items_tags', array('item_id=?' => $item_id)); $db->delete('items_to_category', array('item_id=?' => $item_id)); $db->update(Model_Users::getPrefixDB() . 'users', array('items' => new JO_Db_Expr('items - 1')), array('user_id = ?' => $info['user_id'])); self::unlink(BASE_PATH . '/uploads/items/' . JO_Date::getInstance($info['datetime'], 'yy/mm/', true)->toString() . $item_id . '/'); self::unlink(BASE_PATH . '/uploads/cache/items/' . JO_Date::getInstance($info['datetime'], 'yy/mm/', true)->toString() . $item_id . '/'); }
public static function editItemUpdate($id, $data) { $db = JO_Db::getDefaultAdapter(); $info = self::getItem($id); if (!$info) { return; } $info_update = self::getItemUpdate($id); if (!$info_update) { return; } ///thumb $thumb = $info['thumbnail']; $model_images = new Model_Images(); if ($info_update['thumbnail'] && file_exists(BASE_PATH . '/uploads/' . $info_update['thumbnail'])) { if ($info['thumbnail'] && file_exists(BASE_PATH . '/uploads/' . $info['thumbnail'])) { $model_images->deleteImages($info['thumbnail'], true); } if (copy(BASE_PATH . '/uploads/' . $info_update['thumbnail'], BASE_PATH . '/uploads/' . str_replace('/temp/', '/', $info_update['thumbnail']))) { $thumb = str_replace('/temp/', '/', $info_update['thumbnail']); } } ///theme_preview_thumbnail $theme_preview_thumbnail = $info['theme_preview_thumbnail']; if ($info_update['theme_preview_thumbnail'] && file_exists(BASE_PATH . '/uploads/' . $info_update['theme_preview_thumbnail'])) { if ($info['theme_preview_thumbnail'] && file_exists(BASE_PATH . '/uploads/' . $info['theme_preview_thumbnail'])) { $model_images->deleteImages($info['theme_preview_thumbnail'], true); } if (copy(BASE_PATH . '/uploads/' . $info_update['theme_preview_thumbnail'], BASE_PATH . '/uploads/' . str_replace('/temp/', '/', $info_update['theme_preview_thumbnail']))) { $theme_preview_thumbnail = str_replace('/temp/', '/', $info_update['theme_preview_thumbnail']); } } ///theme_preview $theme_preview = $info['theme_preview']; if ($info_update['theme_preview'] && file_exists(BASE_PATH . '/uploads/' . $info_update['theme_preview'])) { if ($info['theme_preview'] && file_exists(BASE_PATH . '/uploads/' . $info['theme_preview'])) { unlink($info['theme_preview']); } if (copy(BASE_PATH . '/uploads/' . $info_update['theme_preview'], BASE_PATH . '/uploads/' . str_replace('/temp/', '/', $info_update['theme_preview']))) { $theme_preview = str_replace('/temp/', '/', $info_update['theme_preview']); if (file_exists(BASE_PATH . '/uploads/' . dirname($theme_preview) . '/temp/preview')) { self::unlink(BASE_PATH . '/uploads/' . dirname($theme_preview) . '/preview', false); self::recursiveCopy(BASE_PATH . '/uploads/' . dirname($theme_preview) . '/temp/preview', BASE_PATH . '/uploads/' . dirname($theme_preview) . '/preview'); } } } ///main_file $main_file = $info['main_file']; if ($info_update['main_file'] && file_exists(BASE_PATH . '/uploads/' . $info_update['main_file'])) { if ($info['main_file'] && file_exists(BASE_PATH . '/uploads/' . $info['main_file'])) { unlink($info['main_file']); } if (copy(BASE_PATH . '/uploads/' . $info_update['main_file'], BASE_PATH . '/uploads/' . str_replace('/temp/', '/', $info_update['main_file']))) { $main_file = str_replace('/temp/', '/', $info_update['main_file']); } } //preview $path = BASE_PATH . '/uploads/items/' . JO_Date::getInstance($info['datetime'], 'yy/mm/')->toString() . $id . '/temp/preview/'; $path2 = BASE_PATH . '/uploads/items/' . JO_Date::getInstance($info['datetime'], 'yy/mm/')->toString() . $id . '/preview/'; if (file_exists($path) && is_dir($path)) { if (file_exists($path2) && is_dir($path2)) { self::unlink($path2, false); } self::recursiveCopy($path, $path2); } if (isset($data['free_file'])) { // $db->update('items', array( // 'free_file' => 'false' // )); self::addUserStatus($id, 'freefile'); } $db->update('items', array('name' => $data['name'], 'thumbnail' => $thumb, 'theme_preview_thumbnail' => $theme_preview_thumbnail, 'theme_preview' => $theme_preview, 'main_file' => $main_file, 'description' => $data['description'], 'price' => $data['price'], 'free_file' => isset($data['free_file']) ? 'true' : 'false', 'demo_url' => $data['demo_url'], 'weekly_from' => $data['weekly_from'] ? WM_Date::format($data['weekly_from'], 'yy-mm-dd') : '0000-00-00', 'weekly_to' => $data['weekly_to'] ? WM_Date::format($data['weekly_to'], 'yy-mm-dd') : '0000-00-00'), array('id = ?' => (int) $id)); if (isset($data['set_status']) && $data['set_status'] == 'active') { $db->update('items', array('status' => $data['set_status']), array('id = ?' => (int) $id)); } if (isset($data['weekly_to']) && trim($data['weekly_to']) != '') { self::addUserStatus($id, 'featured'); } $db->delete('items_to_category', array('item_id = ?' => (int) $id)); if (isset($data['category_id'])) { foreach ($data['category_id'] as $category_id) { $categories = Model_Categories::getCategoryParents(Model_Categories::getCategories(array('filter_id_key' => true)), $category_id); $categories = explode(',', $categories); array_pop($categories); $categories = array_reverse($categories); $categories = ',' . implode(',', $categories) . ','; $db->insert('items_to_category', array('item_id' => (int) $id, 'categories' => $categories)); } } $db->delete('items_attributes', array('item_id = ?' => (int) $id)); if (isset($data['attributes']) && is_array($data['attributes'])) { foreach ($data['attributes'] as $cid => $value) { if (is_array($value)) { foreach ($value as $val) { $db->insert('items_attributes', array('item_id' => $id, 'attribute_id' => $val, 'category_id' => (int) $cid)); } } elseif ($value) { $db->insert('items_attributes', array('item_id' => $id, 'attribute_id' => $value, 'category_id' => (int) $cid)); } } } $db->delete('items_tags', array('item_id = ?' => (int) $id)); if (isset($data['tags']) && $data['tags']) { $tags = explode(',', $data['tags']); foreach ($tags as $tag) { $tag = trim($tag); if ($tag) { $tag_id = Model_Tags::getTagByTitleAndInsert($tag); if ($tag_id) { $db->insert('items_tags', array('item_id' => $id, 'tag_id' => (int) $tag_id, 'type' => '')); } } } } /////////// send email if ($info['item_note'] == 'true') { $request = JO_Request::getInstance(); $translate = JO_Translate::getInstance(); $not_template = Model_Notificationtemplates::get('queue_update'); $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@' . $request->getDomain()); $href = '<a href="' . WM_Router::create($request->getBaseUrl() . '?module=' . $info['module'] . '&controller=items&item_id=' . $id) . '">' . $info['name'] . '</a>'; if ($not_template) { $user_info = Model_Users::getUser($info['user_id']); $title = $not_template['title']; $html = html_entity_decode($not_template['template'], ENT_QUOTES, 'utf-8'); $html = str_replace('{USERNAME}', $user_info['username'], $html); $html = str_replace('{ITEM}', $info['name'], $html); $html = str_replace('{URL}', $href, $html); } else { $title = "[" . $request->getDomain() . "] " . $data['name']; $html = nl2br($translate->translate('Item') . ' ' . $href . ' ' . $translate->translate('is updated')); } $mail->setSubject($title); $mail->setHTML($html); $result = $mail->send(array($user_info['email']), JO_Registry::get('mail_smtp') ? 'smtp' : 'mail'); unset($mail); } ////////////////////// self::unlink(BASE_PATH . '/uploads/items/' . JO_Date::getInstance($info['datetime'], 'yy/mm/', true)->toString() . $id . '/temp/'); self::unlink(BASE_PATH . '/uploads/cache/items/' . JO_Date::getInstance($info['datetime'], 'yy/mm/', true)->toString() . $id . '/'); $db->delete('temp_items', array('id = ?' => (int) $id)); $db->delete('temp_items_tags', array('item_id = ?' => (int) $id)); $db->delete('temp_items_attributes', array('item_id = ?' => (int) $id)); $db->delete('temp_items_to_category', array('item_id = ?' => (int) $id)); }
/** * Constructor function. */ public function __construct() { /** * Initialise some variables. */ $this->attachments = array(); $this->html_images = array(); $this->html_files = array(); $this->headers = array(); $this->text = ''; $this->sendmail_path = '/usr/lib/sendmail -ti'; /** * If you want the auto load functionality * to find other image/file types, add the * extension and content type here. */ $this->image_types = array('gif' => 'image/gif', 'jpg' => 'image/jpeg', 'jpeg' => 'image/jpeg', 'jpe' => 'image/jpeg', 'bmp' => 'image/bmp', 'png' => 'image/png', 'tif' => 'image/tiff', 'tiff' => 'image/tiff', 'swf' => 'application/x-shockwave-flash', 'pdf' => 'application/pdf'); /** * Set these up */ $this->build_params['html_encoding'] = new JO_Mail_QPrintEncoding(); $this->build_params['text_encoding'] = new JO_Mail_SevenBitEncoding(); $this->build_params['html_charset'] = 'UTF-8'; $this->build_params['text_charset'] = 'UTF-8'; $this->build_params['head_charset'] = 'UTF-8'; $this->build_params['text_wrap'] = 998; /** * Defaults for smtp sending */ if (JO_Request::getInstance()->getServer('HTTP_HOST')) { $helo = JO_Request::getInstance()->getServer('HTTP_HOST'); } elseif (JO_Request::getInstance()->getServer('SERVER_NAME')) { $helo = JO_Request::getInstance()->getServer('SERVER_NAME'); } else { $helo = 'localhost'; } $this->smtp_params['host'] = 'localhost'; $this->smtp_params['port'] = 25; $this->smtp_params['helo'] = $helo; $this->smtp_params['auth'] = false; $this->smtp_params['user'] = ''; $this->smtp_params['pass'] = ''; /** * Make sure the MIME version header is first. */ $this->headers['MIME-Version'] = '1.0'; $this->headers['X-Mailer'] = 'PHP <http://php.net/>'; $this->headers['Date'] = JO_Date::getInstance(null, JO_Date::RFC_1123_FULL, true); }
private function getPageForm() { $request = $this->getRequest(); $page_id = $request->getQuery('id'); $pages_module = new Model_Extensions_Topbanner(); $this->view->page_num = $this->getRequest()->getRequest('page', 1); $this->view->cancle = $this->getRequest()->getBaseUrl() . $this->getRequest()->getModule() . '/extensions/edit/?extension=topbanner&page=' . $this->view->page_num; if ($this->error) { $this->view->error_warning = implode('; ', $this->error); } if ($page_id) { $page_info = $pages_module->get($page_id); } if ($request->getPost('name')) { $this->view->name = $request->getPost('name'); } elseif (isset($page_info)) { $this->view->name = $page_info['name']; } else { $this->view->name = ''; } if ($request->getPost('url')) { $this->view->url = $request->getPost('url'); } elseif (isset($page_info)) { $this->view->url = $page_info['url']; } else { $this->view->url = ''; } if ($request->getPost('html')) { $this->view->html = $request->getPost('html'); } elseif (isset($page_info)) { $this->view->html = $page_info['html']; } else { $this->view->html = ''; } if ($request->getPost('background')) { $this->view->background = $request->getPost('background'); } elseif (isset($page_info)) { $this->view->background = $page_info['background']; } else { $this->view->background = ''; } if ($request->getPost('from')) { $this->view->from = $request->getPost('from'); } elseif (isset($page_info)) { if ($page_info['from'] == '0000-00-00') { $this->view->from = ''; } else { $this->view->from = JO_Date::getInstance($page_info['from'], 'dd.mm.yy', true)->toString(); } } else { $this->view->from = ''; } if (is_numeric($request->getPost('cookie'))) { $this->view->cookie = $request->getPost('cookie'); } elseif (isset($page_info)) { $this->view->cookie = $page_info['cookie']; } else { $this->view->cookie = ''; } if ($request->getPost('to')) { $this->view->to = $request->getPost('to'); } elseif (isset($page_info)) { if ($page_info['to'] == '0000-00-00') { $this->view->to = ''; } else { $this->view->to = JO_Date::getInstance($page_info['to'], 'dd.mm.yy', true)->toString(); } } else { $this->view->to = ''; } if ($request->getPost('close')) { $this->view->close = $request->getPost('close'); } elseif (isset($page_info)) { $this->view->close = $page_info['close']; } else { $this->view->close = 'true'; } if ($request->getPost('width')) { $this->view->width = $request->getPost('width'); } elseif (isset($page_info)) { $this->view->width = $page_info['width']; } else { $this->view->width = 976; } if ($request->getPost('height')) { $this->view->height = $request->getPost('height'); } elseif (isset($page_info)) { $this->view->height = $page_info['height']; } else { $this->view->height = 50; } /////// logo $image_model = new Model_Images(); if ($request->getPost('photo')) { $this->view->photo = $request->getPost('photo'); } elseif (isset($page_info)) { $this->view->photo = $page_info['photo']; } else { $this->view->photo = ''; } if ($this->view->photo) { $this->view->preview = $image_model->resize($this->view->photo, 100, 100); } else { $this->view->preview = $image_model->resize(JO_Registry::forceGet('no_image'), 100, 100); } if (!$this->view->preview) { $this->view->preview = $image_model->resize(JO_Registry::forceGet('no_image'), 100, 100); } if (!$this->view->preview) { $this->view->preview = $image_model->resize('/no_image.png', 100, 100); } $this->view->preview_no_image = $image_model->resize(JO_Registry::forceGet('no_image'), 100, 100); if (!$this->view->preview_no_image) { $this->view->preview_no_image = $image_model->resize('/no_image.png', 100, 100); } }
public static function deleteItem($id, $message = '') { $db = JO_Db::getDefaultAdapter(); $info = self::getItem($id); if (!$info) { return; } $path = BASE_PATH . '/uploads/items/' . JO_Date::getInstance($info['datetime'], 'yy/mm/', true)->toString() . $id . '/'; self::unlink($path); $db->delete('items', array('id = ?' => (int) $id)); $db->delete('items_attributes', array('item_id = ?' => (int) $id)); $db->delete('items_collections', array('item_id = ?' => (int) $id)); $db->delete('items_comments', array('item_id = ?' => (int) $id)); $db->delete('items_faqs', array('item_id = ?' => (int) $id)); $db->delete('items_rates', array('item_id = ?' => (int) $id)); $db->delete('items_tags', array('item_id = ?' => (int) $id)); $db->delete('items_to_category', array('item_id = ?' => (int) $id)); $db->update(Model_Users::getPrefixDB() . 'users', array('items' => new JO_Db_Expr('items - 1')), array('user_id = ?' => $info['user_id'])); /////////// send email $request = JO_Request::getInstance(); $translate = JO_Translate::getInstance(); $not_template = Model_Notificationtemplates::get('delete_item'); $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@' . $request->getDomain()); if ($not_template) { $user_info = Model_Users::getUser($info['user_id']); $title = $not_template['title']; $html = html_entity_decode($not_template['template'], ENT_QUOTES, 'utf-8'); $html = str_replace('{USERNAME}', $user_info['username'], $html); $html = str_replace('{ITEM}', $info['name'], $html); $html = str_replace('{MESSAGE}', $message, $html); } else { $title = "[" . $request->getDomain() . "] " . $info['name']; $html = nl2br($translate->translate('Item is deleted')); } $mail->setSubject($title); $mail->setHTML($html); $result = $mail->send(array($user_info['email']), JO_Registry::get('mail_smtp') ? 'smtp' : 'mail'); unset($mail); ////////////////////// self::deleteItemUpdate($id); self::unlink(BASE_PATH . '/uploads/items/' . JO_Date::getInstance($info['datetime'], 'yy/mm/', true)->toString() . $id . '/'); self::unlink(BASE_PATH . '/uploads/cache/items/' . JO_Date::getInstance($info['datetime'], 'yy/mm/', true)->toString() . $id . '/'); // $info = self::getItemUpdate($id); // if(!$info) { // return; // } // // $db->delete('temp_items', array('item_id = ?' => (int)$id)); // $db->delete('temp_items_tags', array('item_id = ?' => (int)$id)); }
public function editItem($id, $data) { set_time_limit(0); $db = JO_Db::getDefaultAdapter(); $info = self::getItem($id); if (!$info) { return; } if (isset($data['free_file'])) { $db->update('items', array('free_file' => 'false')); self::addUserStatus($id, 'freefile'); } $db->update('items', array('name' => $data['name'], 'description' => $data['description'], 'price' => $data['price'][$data['default_price']], 'free_file' => isset($data['free_file']) ? 'true' : 'false', 'item_tags_string' => isset($data['tags']) ? $data['tags'] : '', 'weekly_from' => $data['weekly_from'] ? JO_Date::getInstance($data['weekly_from'], 'yy-mm-dd', true) : '0000-00-00', 'weekly_to' => $data['weekly_to'] ? JO_Date::getInstance($data['weekly_to'], 'yy-mm-dd', true) : '0000-00-00'), array('id = ?' => (int) $id)); if (isset($data['set_status']) && $data['set_status'] == 'active') { $db->update('items', array('status' => $data['set_status']), array('id = ?' => (int) $id)); /////////// send email $request = JO_Request::getInstance(); $translate = JO_Translate::getInstance(); $not_template = Model_Notificationtemplates::get('approval_item'); $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@' . $request->getDomain()); $href = '<a href="' . WM_Router::create($request->getBaseUrl() . '?controller=items&item_id=' . $id) . '">' . $info['name'] . '</a>'; if ($not_template) { $title = $not_template['title']; $html = html_entity_decode($not_template['template'], ENT_QUOTES, 'utf-8'); $html = str_replace('{USERNAME}', $info['username'], $html); $html = str_replace('{ITEM}', $info['name'], $html); $html = str_replace('{URL}', $href, $html); } else { $title = "[" . $request->getDomain() . "] " . $data['name']; $html = nl2br($translate->translate('Item') . ' ' . $href . ' ' . $translate->translate('approval')); } $mail->setSubject($title); $mail->setHTML($html); $result = $mail->send(array($info['email']), JO_Registry::get('mail_smtp') ? 'smtp' : 'mail'); unset($mail); ////////////////////// } if (isset($data['weekly_to']) && trim($data['weekly_to']) != '') { self::addUserStatus($id, 'featured'); } $db->delete('items_to_category', array('item_id = ?' => (int) $id)); if (isset($data['category_id'])) { foreach ($data['category_id'] as $category_id) { $categories = Model_Categories::getCategoryParents(Model_Categories::getCategories(array('filter_id_key' => true)), $category_id); $categories = explode(',', $categories); array_pop($categories); $categories = array_reverse($categories); $categories = ',' . implode(',', $categories) . ','; $db->insert('items_to_category', array('item_id' => (int) $id, 'categories' => $categories)); } } $db->delete('items_attributes', array('item_id = ?' => (int) $id)); if (isset($data['attributes']) && is_array($data['attributes'])) { foreach ($data['attributes'] as $cid => $value) { if (is_array($value)) { foreach ($value as $val) { $db->insert('items_attributes', array('item_id' => $id, 'attribute_id' => $val, 'category_id' => (int) $cid)); } } elseif ($value) { $db->insert('items_attributes', array('item_id' => $id, 'attribute_id' => $value, 'category_id' => (int) $cid)); } } } $db->delete('items_tags', array('item_id = ?' => (int) $id)); if (isset($data['tags']) && $data['tags']) { $tags = explode(',', $data['tags']); foreach ($tags as $tag) { $tag = trim($tag); if ($tag) { $tag_id = Model_Tags::getTagByTitleAndInsert($tag); if ($tag_id) { $db->insert('items_tags', array('item_id' => $id, 'tag_id' => (int) $tag_id, 'type' => '')); } } } } $sizes = Model_Sizes::getAll(); $tmp_sizes = array(); foreach ($sizes as $size1) { $tmp_sizes[$size1['id']] = $size1; } $info_file = getimagesize(BASE_PATH . '/uploads/' . $info['main_file']); $steps = 0; if ($info_file[0] < $info_file[1]) { $type = 'p'; $steps = $info_file[0]; $source_aspect_ratio = round($info_file[1] / $info_file[0], 5); } elseif ($info_file[0] > $info_file[1]) { $type = 'l'; $steps = $info_file[1]; $source_aspect_ratio = round($info_file[0] / $info_file[1], 5); } else { $type = 'k'; $steps = $info_file[0]; $source_aspect_ratio = 1; } $temp_sizes = array(); $temp_sizes2 = array(); $deleted = array(); foreach ($data['price'] as $size_id => $price) { if (trim($price) && (double) $price && isset($tmp_sizes[$size_id])) { $sizeMP = $tmp_sizes[$size_id]['size'] * 1000000; $sizeMPFrom = $sizeMP - $sizeMP / 100; for ($i = $steps; $i >= 1; $i--) { if ($type == 'p') { $width = $info_file[0] - $i; $height = round($width * $source_aspect_ratio); } elseif ($type == 'l') { $height = $info_file[1] - $i; $width = round($height * $source_aspect_ratio); } else { $width = $info_file[0] - $i; $height = $info_file[1] - $i; } if ($width < 1 || $height < 1) { continue; } if ($width * $height >= $sizeMPFrom && $width * $height <= $sizeMP) { $temp_sizes[$size_id] = array('width' => $width, 'height' => $height, 'price' => $price, 'size_id' => $size_id, 'size' => $tmp_sizes[$size_id]['size']); $temp_sizes2[$size_id] = true; continue; } } } else { $deleted[] = $size_id; } } $query_files = $db->select()->from('items_prices')->where('item_id = ?', (int) $id); $list_files = $db->fetchAll($query_files); if ($list_files) { foreach ($list_files as $fils) { if (in_array($fils['size_id'], $deleted)) { if (!self::fileIsOrdered($id, $fils['size_id'])) { unlink(BASE_PATH . '/uploads/' . $fils['main_file']); $db->delete('items_prices', array('id = ?' => (int) $fils['id'])); } else { $db->delete('items_prices', array('id = ?' => (int) $fils['id'])); } } elseif (!in_array($fils['size_id'], $temp_sizes2)) { if (!self::fileIsOrdered($id, $fils['size_id'])) { unlink(BASE_PATH . '/uploads/' . $fils['main_file']); $db->delete('items_prices', array('id = ?' => (int) $fils['id'])); } else { $db->delete('items_prices', array('id = ?' => (int) $fils['id'])); } } else { if (file_exists(BASE_PATH . '/uploads/' . $fils['main_file'])) { $db->update('items_prices', array('price' => (double) $temp_sizes[$fils['size_id']]['price']), array('id = ?' => (int) $fils['id'])); unset($temp_sizes[$fils['size_id']]); } else { $db->delete('items_prices', array('id = ?' => (int) $fils['id'])); } } } } $main_file = BASE_PATH . '/uploads/' . $info['main_file']; $main_path = dirname($info['main_file']); foreach ($temp_sizes as $key => $value) { $name_new = md5(time() . '_' . mt_rand()) . '.' . round($key, 2) . strtolower(strrchr(basename($info['main_file']), '.')); $ext = strtolower(strrchr($info['main_file'], '.')); $image_p = imagecreatetruecolor($value['width'], $value['height']); $image = null; if ($ext == '.jpg' || $ext == '.jpeg') { $image = imagecreatefromjpeg(BASE_PATH . '/uploads/' . $info['main_file']); } else { continue; } imageantialias($image_p, true); if ($image) { imagecopyresampled($image_p, $image, 0, 0, 0, 0, $value['width'], $value['height'], $info_file[0], $info_file[1]); } if (!file_exists(dirname($main_file) . '/downloads/')) { mkdir(dirname($main_file) . '/downloads/', 0777, true); } imagejpeg($image_p, dirname($main_file) . '/downloads/' . $name_new, 100); if (file_exists(dirname($main_file) . '/downloads/' . $name_new)) { $db->insert('items_prices', array('item_id' => (int) $id, 'size_id' => (int) $value['size_id'], 'price' => (double) $value['price'], 'main_file' => $main_path . '/downloads/' . $name_new, 'size' => $key, 'width' => $value['width'], 'height' => $value['height'])); } } }
/** * @param string $script * @param string $controller */ public function renderImage($script, $controller) { $base = $this->getBasePath() . DIRECTORY_SEPARATOR . $this->getTemplate() . DIRECTORY_SEPARATOR; $scriptFile = $this->_formatViewName($controller) . DIRECTORY_SEPARATOR . $script; if (!file_exists($base . $scriptFile) || !is_file($base . $scriptFile)) { exit; } if (!file_exists(dirname(BASE_PATH . '/cache/' . $scriptFile))) { mkdir(dirname(BASE_PATH . '/cache/' . $scriptFile), 0777, true); } if (!file_exists(BASE_PATH . '/cache/' . $scriptFile)) { copy($base . $scriptFile, BASE_PATH . '/cache/' . $scriptFile); } if (filemtime($base . $scriptFile) > filemtime(BASE_PATH . '/cache/' . $scriptFile)) { unlink(BASE_PATH . '/cache/' . $scriptFile); copy($base . $scriptFile, BASE_PATH . '/cache/' . $scriptFile); } if ($image = @getimagesize($base . $scriptFile)) { $response = $this->getResponse(); $response->addHeader('Content-type: ' . $image['mime']); $response->addHeader("Last-Modified: " . JO_Date::getInstance(filemtime($base . $scriptFile), "D, dd MM yy H:i:s e", true)->toString()); $response->setLevel(9); $response->appendBody(file_get_contents($base . $scriptFile)); } exit; }
public function historyAction() { if (!JO_Session::get('user_id')) { JO_Session::set('msg_error', $this->translate('You must be logged to view your history')); $this->redirect(WM_Router::create($this->getRequest()->getBaseUrl() . '?controller=users&action=login')); } $this->getLayout()->meta_title = $this->translate('History'); $this->getLayout()->meta_description = $this->translate('History'); $this->view->history = array(); $history = Model_History::getAll(0, 0, " `user_id` = '" . JO_Session::get('user_id') . "'"); if ($history) { foreach ($history as $his) { $his['datetime'] = JO_Date::getInstance($his['datetime'], 'dd MM yy H:i:s')->toString(); $this->view->history[] = $his; } } $this->view->usertotal = WM_Currency::format(JO_Session::get('total')); $this->view->children = array(); $this->view->children['header_part'] = 'layout/header_part'; $this->view->children['footer_part'] = 'layout/footer_part'; $this->view->children['users_toolbar'] = 'layout/users_toolbar'; }
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(); $update_for = 'themes'; $db = JO_Db::getDefaultAdapter(); $this->view->msg_error = array(); $this->view->msg_success = array(); //begin updater $old_sys_config = BASE_PATH . '/old_sys/data/uploads/language/config.php'; if (!file_exists($old_sys_config)) { $this->view->msg_error['old_sys'] = 'Please move the "data" folder of your old system into folder: <strong>' . BASE_PATH . '/old_sys/</strong>'; } if (!$this->view->msg_error && $request->isPost()) { self::unlink(BASE_PATH . '/uploads/items/', true); self::unlink(BASE_PATH . '/uploads/attributes/', true); self::unlink(BASE_PATH . '/uploads/cache/', true); self::unlink(BASE_PATH . '/uploads/countries/', true); $db_queries = array(); include_once $old_sys_config; $old_config = $db->getConfig(); $db_config = $old_config; $db_config['host'] = $configArr['mysql_host']; $db_config['username'] = $configArr['mysql_user']; $db_config['password'] = $configArr['mysql_pass']; $db_config['dbname'] = $configArr['mysql_db']; $old_db_tables = $db->listTables(); $new_db = JO_Db::setAdapterConfig($db_config); $new_db_tables = $new_db->listTables(); // other tables $all_arr = array('bulletin', 'bulletin_emails', 'collections', 'collections_rates', 'contacts', 'contacts_categories', 'deposit', 'history', 'percents', 'quiz', 'quiz_answers', 'users_emails', 'users_followers', 'users_referals_count', 'users_status', 'user_groups', 'withdraw', 'items_attributes', 'items_collections', 'items_comments', 'items_faqs', 'items_rates', 'items_tags', 'items_to_category'); foreach ($all_arr as $table) { if (!in_array($table, $old_db_tables) || !in_array($table, $new_db_tables)) { continue; } $query = $new_db->select()->from($table); $attributes_categories = $new_db->fetchAll($query); if ($attributes_categories) { $db_queries['TRUNCATE'][] = array('table' => $table, 'where' => null); foreach ($attributes_categories as $key => $val) { $vals = array(); foreach ($val as $k => $d) { if (self::is_serialized($d)) { $vals[$k] = $d; } else { $vals[$k] = htmlspecialchars($d, ENT_QUOTES, 'utf-8'); } } if (count($vals) > 0) { $db_queries[$table][] = $vals; } } } } //attributes_categories $attributes_categories = $new_db->fetchAll("SELECT * FROM `attributes_categories`"); if ($attributes_categories) { $db_queries['TRUNCATE'][] = array('table' => 'attributes_categories', 'where' => null); foreach ($attributes_categories as $data) { // $db_queries[] = "INSERT INTO `attributes_categories` (`id`, `name`, `type`, `categories`, `visible`, `order_index`,`required`) VALUES ('".(int)$data['id'] ."', '".htmlspecialchars($data['name'], ENT_QUOTES, 'utf-8') ."', '".htmlspecialchars($data['type'], ENT_QUOTES, 'utf-8') ."', '".htmlspecialchars($data['categories'], ENT_QUOTES, 'utf-8') ."', '".htmlspecialchars($data['visible'], ENT_QUOTES, 'utf-8') ."', '".(int)$data['order_index'] ."',1);"; $db_queries['attributes_categories'][] = array('id' => (int) $data['id'], 'name' => htmlspecialchars($data['name'], ENT_QUOTES, 'utf-8'), 'type' => htmlspecialchars($data['type'], ENT_QUOTES, 'utf-8'), 'categories' => htmlspecialchars($data['categories'], ENT_QUOTES, 'utf-8'), 'visible' => 'true', 'order_index' => (int) $data['order_index'], 'required' => 1); } } //attributes $attributes_categories = $new_db->fetchAll("SELECT * FROM `attributes`"); if ($attributes_categories) { $db_queries['TRUNCATE'][] = array('table' => 'attributes', 'where' => null); foreach ($attributes_categories as $data) { $photo = self::copyFile(BASE_PATH . '/old_sys/data/uploads/attributes/' . $data['photo'], '/attributes/' . $data['photo']); $db_queries['attributes'][] = array('id' => (int) $data['id'], 'category_id' => (int) $data['category_id'], 'name' => htmlspecialchars($data['name'], ENT_QUOTES, 'utf-8'), 'photo' => basename($photo), 'visible' => 'true', 'order_index' => (int) $data['order_index']); } } //attributes $attributes_categories = $new_db->fetchAll("SELECT * FROM `badges`"); if ($attributes_categories) { $db_queries['TRUNCATE'][] = array('table' => 'badges', 'where' => null); foreach ($attributes_categories as $data) { $photo = self::copyFile(BASE_PATH . '/old_sys/data/uploads/badges/' . $data['photo'], '/badges/' . $data['photo']); $db_queries['badges'][] = array('id' => (int) $data['id'], 'name' => htmlspecialchars($data['name'], ENT_QUOTES, 'utf-8'), 'photo' => basename($photo), 'visible' => htmlspecialchars($data['visible'], ENT_QUOTES, 'utf-8'), 'from' => htmlspecialchars($data['from'], ENT_QUOTES, 'utf-8'), 'to' => htmlspecialchars($data['to']), 'type' => htmlspecialchars($data['type'], ENT_QUOTES, 'utf-8'), 'sys_key' => htmlspecialchars($data['sys_key'], ENT_QUOTES, 'utf-8')); } } //categories $attributes_categories = $new_db->fetchAll("SELECT * FROM `categories`"); if ($attributes_categories) { $db_queries['TRUNCATE'][] = array('table' => 'categories', 'where' => null); $db_queries['TRUNCATE'][] = array('table' => 'categories_description', 'where' => null); foreach ($attributes_categories as $data) { $db_queries['categories'][] = array('id' => (int) $data['id'], 'sub_of' => (int) $data['sub_of'], 'meta_title' => htmlspecialchars($data['meta_title'], ENT_QUOTES, 'utf-8'), 'meta_keywords' => htmlspecialchars($data['meta_keywords'], ENT_QUOTES, 'utf-8'), 'meta_description' => htmlspecialchars($data['meta_description'], ENT_QUOTES, 'utf-8'), 'visible' => htmlspecialchars($data['visible'], ENT_QUOTES, 'utf-8'), 'order_index' => (int) $data['order_index'], 'module' => $update_for); $db_queries['categories_description'][] = array('id' => (int) $data['id'], 'lid' => 1, 'name' => htmlspecialchars($data['name'], ENT_QUOTES, 'utf-8')); } } //countries $attributes_categories = $new_db->fetchAll("SELECT * FROM `countries`"); if ($attributes_categories) { $db_queries['TRUNCATE'][] = array('table' => 'countries', 'where' => null); foreach ($attributes_categories as $data) { $photo = self::copyFile(BASE_PATH . '/old_sys/data/uploads/countries/' . $data['photo'], '/countries/' . $data['photo']); $db_queries['countries'][] = array('id' => (int) $data['id'], 'name' => htmlspecialchars($data['name'], ENT_QUOTES, 'utf-8'), 'photo' => basename($photo), 'visible' => htmlspecialchars($data['visible'], ENT_QUOTES, 'utf-8'), 'order_index' => (int) $data['order_index']); } } //items $attributes_categories = $new_db->fetchAll("SELECT * FROM `items`"); $temp_items = array(); if ($attributes_categories) { $db_queries['TRUNCATE'][] = array('table' => 'items', 'where' => null); foreach ($attributes_categories as $data) { $weekly_from = '0000-00-00'; $weekly_to = '0000-00-00'; if ($data['weekly_to'] && $data['weekly_to'] != '0000-00-00') { $weekly_from = $data['weekly_to']; $weekly_to = JO_Date::getInstance($data['weekly_to'], 'yy-mm-dd', true)->setInterval('+7 days')->toString(); } $old_path = BASE_PATH . '/old_sys/data/uploads/items/' . $data['id'] . '/'; $item_path = '/items/' . JO_Date::getInstance($data['datetime'], 'yy/mm/', true)->toString() . $data['id'] . '/'; //self::recursiveCopy($old_path . 'preview/', BASE_PATH . '/uploads/' . $item_path . 'preview/'); $thumbnail = self::copyFile($old_path . $data['thumbnail'], $item_path . $data['thumbnail']); $main_file = self::copyFile($old_path . $data['main_file'], $item_path . $data['main_file']); $theme_preview = self::copyFile($old_path . $data['theme_preview'], $item_path . $data['theme_preview']); $theme_preview_thumbnail = self::copyFromArchive($theme_preview); $temp_items[(int) $data['id']] = array('id' => (int) $data['id'], 'user_id' => (int) $data['user_id'], 'name' => htmlspecialchars($data['name'], ENT_QUOTES, 'utf-8'), 'description' => htmlspecialchars($data['description'], ENT_QUOTES, 'utf-8'), 'thumbnail' => $thumbnail, 'theme_preview_thumbnail' => $theme_preview_thumbnail, 'theme_preview' => $theme_preview, 'main_file' => $main_file, 'main_file_name' => htmlspecialchars($data['main_file_name'], ENT_QUOTES, 'utf-8'), 'categories' => htmlspecialchars($data['categories'], ENT_QUOTES, 'utf-8'), 'demo_url' => htmlspecialchars($data['demo_url'], ENT_QUOTES, 'utf-8'), 'price' => (double) $data['price'], 'suggested_price' => (double) $data['suggested_price'], 'sales' => (double) $data['sales'], 'earning' => (double) $data['earning'], 'rating' => (double) $data['rating'], 'votes' => (double) $data['votes'], 'score' => (double) $data['score'], 'comments' => (double) $data['comments'], 'free_request' => htmlspecialchars($data['free_request'], ENT_QUOTES, 'utf-8'), 'free_file' => htmlspecialchars($data['free_file'], ENT_QUOTES, 'utf-8'), 'weekly_from' => $weekly_from, 'weekly_to' => $weekly_to, 'reviewer_comment' => htmlspecialchars($data['reviewer_comment'], ENT_QUOTES, 'utf-8'), 'datetime' => htmlspecialchars($data['datetime'], ENT_QUOTES, 'utf-8'), 'status' => htmlspecialchars($data['status'], ENT_QUOTES, 'utf-8'), 'module' => $update_for, 'video_file' => htmlspecialchars(isset($data['video_file']) ? $data['video_file'] : '', ENT_QUOTES, 'utf-8'), 'item_tags_string' => htmlspecialchars(isset($data['item_tags_string']) ? $data['item_tags_string'] : '', ENT_QUOTES, 'utf-8'), 'preview' => htmlspecialchars(isset($data['preview']) ? $data['preview'] : '', ENT_QUOTES, 'utf-8')); $db_queries['items'][] = $temp_items[(int) $data['id']]; } } //orders $attributes_categories = $new_db->fetchAll("SELECT * FROM `orders`"); if ($attributes_categories) { JO_Db::setAdapterConfig($old_config); $db_queries['TRUNCATE'][] = array('table' => 'orders', 'where' => null); foreach ($attributes_categories as $data) { $db_queries['orders'][] = array('id' => (int) $data['id'], 'order_id' => (int) (isset($data['order_id']) ? $data['order_id'] : 0), 'user_id' => (int) $data['user_id'], 'owner_id' => (int) $data['owner_id'], 'item_id' => (int) $data['item_id'], 'item_name' => htmlspecialchars($data['item_name'], ENT_QUOTES, 'utf-8'), 'price' => (double) $data['price'], 'receive' => (double) $data['receive'], 'datetime' => htmlspecialchars($data['datetime'], ENT_QUOTES, 'utf-8'), 'paid' => htmlspecialchars($data['paid'], ENT_QUOTES, 'utf-8'), 'paid_datetime' => htmlspecialchars($data['paid_datetime'], ENT_QUOTES, 'utf-8'), 'extended' => htmlspecialchars($data['extended'], ENT_QUOTES, 'utf-8'), 'type' => htmlspecialchars($data['type'], ENT_QUOTES, 'utf-8'), 'currency_code' => WM_Currency::getCurrencyCode(), 'currency_value' => '1.00000000', 'domain' => htmlspecialchars(isset($data['domain']) ? $data['domain'] : '', ENT_QUOTES, 'utf-8'), 'module' => $update_for, 'size_id' => htmlspecialchars(isset($data['size_id']) ? $data['size_id'] : '', ENT_QUOTES, 'utf-8'), 'main_file' => isset($temp_items[$data['item_id']]['main_file']) ? $temp_items[$data['item_id']]['main_file'] : '', 'main_file_info' => htmlspecialchars(isset($data['main_file_info']) ? $data['main_file_info'] : '', ENT_QUOTES, 'utf-8')); } } $new_db = JO_Db::setAdapterConfig($db_config); //temp_items $attributes_categories = $new_db->fetchAll("SELECT * FROM `temp_items`"); if ($attributes_categories) { $db_queries['TRUNCATE'][] = array('table' => 'temp_items', 'where' => null); foreach ($attributes_categories as $data) { if (!isset($temp_items[$data['item_id']])) { continue; } $old_path = BASE_PATH . '/old_sys/data/uploads/items/' . $data['item_id'] . '/temp/'; $item_path = '/items/' . JO_Date::getInstance($data['datetime'], 'yy/mm/', true)->toString() . $data['item_id'] . '/temp/'; //self::recursiveCopy($old_path . 'preview/', BASE_PATH . '/uploads/' . $item_path . 'preview/'); $thumbnail = self::copyFile($old_path . $data['thumbnail'], $item_path . $data['thumbnail']); $main_file = self::copyFile($old_path . $data['main_file'], $item_path . $data['main_file']); $theme_preview = self::copyFile($old_path . $data['theme_preview'], $item_path . $data['theme_preview']); $theme_preview_thumbnail = self::copyFromArchive($theme_preview); $db_queries['temp_items'][] = array('id' => (int) $data['id'], 'item_id' => (int) $data['item_id'], 'name' => htmlspecialchars($data['name'], ENT_QUOTES, 'utf-8'), 'thumbnail' => $thumbnail, 'theme_preview_thumbnail' => $theme_preview_thumbnail, 'theme_preview' => $theme_preview, 'main_file' => $main_file, 'main_file_name' => htmlspecialchars($data['main_file_name'], ENT_QUOTES, 'utf-8'), 'reviewer_comment' => htmlspecialchars($data['reviewer_comment'], ENT_QUOTES, 'utf-8'), 'datetime' => htmlspecialchars($data['datetime'], ENT_QUOTES, 'utf-8'), 'video_file' => htmlspecialchars(isset($data['video_file']) ? $data['video_file'] : '', ENT_QUOTES, 'utf-8'), 'preview' => htmlspecialchars(isset($data['preview']) ? $data['preview'] : '', ENT_QUOTES, 'utf-8')); } } //temp_items_tags $attributes_categories = $new_db->fetchAll("SELECT * FROM `temp_items_tags`"); if ($attributes_categories) { foreach ($attributes_categories as $data) { if (!isset($temp_items[$data['item_id']])) { continue; } $db_queries['TRUNCATE'][] = array('table' => 'items_tags', 'where' => "`item_id` = '" . (int) $data['item_id'] . "'"); $db_queries['items_tags'][] = array('item_id' => (int) $data['item_id'], 'item_id' => (int) $data['item_id'], 'type' => htmlspecialchars($data['type'], ENT_QUOTES, 'utf-8')); } } /* if(in_array('slider', $old_db_tables) && in_array('slider', $new_db_tables)) { //slider $attributes_categories = $new_db->fetchAll("SELECT * FROM `slider`"); if($attributes_categories) { $db_queries['TRUNCATE'][] = array( 'table' => 'slider', 'where' => null ); foreach($attributes_categories AS $data) { $photo = self::copyFile(BASE_PATH . '/old_sys/data/uploads/slider/'.$data['photo'], '/slider/'.$data['photo']); $db_queries['slider'][] = array( 'id' => (int)$data['id'], 'name' => htmlspecialchars($data['name'], ENT_QUOTES, 'utf-8'), 'url' => htmlspecialchars($data['url'], ENT_QUOTES, 'utf-8'), 'photo' => ($photo), 'visible' => htmlspecialchars($data['visible'], ENT_QUOTES, 'utf-8'), 'order_index' => (int)$data['order_index'] ); } } } */ //users $attributes_categories = $new_db->fetchAll("SELECT * FROM `users`"); if ($attributes_categories) { $db_queries['TRUNCATE'][] = array('table' => 'users', 'where' => null); foreach ($attributes_categories as $data) { $old_path = BASE_PATH . '/old_sys/data/uploads/users/' . $data['user_id'] . '/'; $item_path = '/users/' . JO_Date::getInstance($data['register_datetime'], 'yy/mm/', true)->toString() . $data['user_id'] . '/'; $avatar = self::copyFile($old_path . $data['avatar'], $item_path . $data['avatar']); $homeimage = self::copyFile($old_path . $data['homeimage'], $item_path . $data['homeimage']); $db_queries['users'][] = array('user_id' => (int) $data['user_id'], 'username' => htmlspecialchars($data['username'], ENT_QUOTES, 'utf-8'), 'password' => htmlspecialchars($data['password'], ENT_QUOTES, 'utf-8'), 'email' => htmlspecialchars($data['email'], ENT_QUOTES, 'utf-8'), 'firstname' => htmlspecialchars($data['firstname'], ENT_QUOTES, 'utf-8'), 'lastname' => htmlspecialchars($data['lastname'], ENT_QUOTES, 'utf-8'), 'featured_item_id' => htmlspecialchars($data['featured_item_id'], ENT_QUOTES, 'utf-8'), 'exclusive_author' => htmlspecialchars($data['exclusive_author'], ENT_QUOTES, 'utf-8'), 'license' => $data['license'], 'avatar' => $avatar, 'homeimage' => $homeimage, 'firmname' => htmlspecialchars($data['firmname'], ENT_QUOTES, 'utf-8'), 'profile_title' => htmlspecialchars($data['profile_title'], ENT_QUOTES, 'utf-8'), 'profile_desc' => htmlspecialchars($data['profile_desc'], ENT_QUOTES, 'utf-8'), 'live_city' => htmlspecialchars($data['live_city'], ENT_QUOTES, 'utf-8'), 'country_id' => htmlspecialchars($data['country_id'], ENT_QUOTES, 'utf-8'), 'freelance' => htmlspecialchars($data['freelance'], ENT_QUOTES, 'utf-8'), 'social' => $data['social'], 'quiz' => htmlspecialchars($data['quiz'], ENT_QUOTES, 'utf-8'), 'deposit' => htmlspecialchars($data['deposit'], ENT_QUOTES, 'utf-8'), 'earning' => htmlspecialchars($data['earning'], ENT_QUOTES, 'utf-8'), 'total' => htmlspecialchars($data['total'], ENT_QUOTES, 'utf-8'), 'sold' => htmlspecialchars($data['sold'], ENT_QUOTES, 'utf-8'), 'items' => htmlspecialchars($data['items'], ENT_QUOTES, 'utf-8'), 'sales' => htmlspecialchars($data['sales'], ENT_QUOTES, 'utf-8'), 'buy' => htmlspecialchars($data['buy'], ENT_QUOTES, 'utf-8'), 'rating' => htmlspecialchars($data['rating'], ENT_QUOTES, 'utf-8'), 'score' => htmlspecialchars($data['score'], ENT_QUOTES, 'utf-8'), 'votes' => htmlspecialchars($data['votes'], ENT_QUOTES, 'utf-8'), 'referals' => htmlspecialchars($data['referals'], ENT_QUOTES, 'utf-8'), 'referal_money' => htmlspecialchars($data['referal_money'], ENT_QUOTES, 'utf-8'), 'featured_author' => htmlspecialchars($data['featured_author'], ENT_QUOTES, 'utf-8'), 'register_datetime' => htmlspecialchars($data['register_datetime'], ENT_QUOTES, 'utf-8'), 'last_login_datetime' => htmlspecialchars($data['last_login_datetime'], ENT_QUOTES, 'utf-8'), 'ip_address' => htmlspecialchars($data['ip_address'], ENT_QUOTES, 'utf-8'), 'status' => htmlspecialchars($data['status'], ENT_QUOTES, 'utf-8'), 'groups' => $data['groups'], 'remember_key' => htmlspecialchars($data['remember_key'], ENT_QUOTES, 'utf-8'), 'activate_key' => htmlspecialchars($data['activate_key'], ENT_QUOTES, 'utf-8'), 'referal_id' => htmlspecialchars($data['referal_id'], ENT_QUOTES, 'utf-8'), 'commission_percent' => htmlspecialchars($data['commission_percent'], ENT_QUOTES, 'utf-8'), 'badges' => htmlspecialchars($data['badges'], ENT_QUOTES, 'utf-8')); } } JO_Session::clear('inserted'); JO_Session::clear('deleted'); if (isset($db_queries['TRUNCATE'])) { $truncate = $db_queries['TRUNCATE']; unset($db_queries['TRUNCATE']); JO_Session::set('deleted', $truncate); } $tmp = array(); $checked = array(); foreach ($db_queries as $table => $data) { foreach ($data as $key => $res) { $key = md5(var_export(array($table, $res), true)); if (!isset($checked[$key])) { $tmp[] = array('table' => $table, 'data' => $res); } $checked[$key] = true; } } JO_Session::set('inserted', $tmp); JO_Session::set('query_error', array()); $this->redirect(WM_Router::create($request->getBaseUrl() . '?module=update&controller=index&action=stepTwo')); } }
public function indexAction() { if ($this->session->get('successfu_edite')) { $this->view->successfu_edite = true; $this->session->clear('successfu_edite'); } $request = $this->getRequest(); $this->view->page_num = $page = $request->getRequest('page', 1); $this->view->sort = $request->getRequest('sort', 'DESC'); $this->view->order = $request->getRequest('order', 'i.id'); $this->view->filter_id = $request->getQuery('filter_id'); $this->view->filter_name = $request->getQuery('filter_name'); $this->view->filter_username = $request->getQuery('filter_username'); $this->view->filter_price = $request->getQuery('filter_price'); $this->view->filter_sales = $request->getQuery('filter_sales'); $this->view->filter_profit = $request->getQuery('filter_profit'); $this->view->filter_free_request = $request->getQuery('filter_free_request'); $this->view->filter_free_file = $request->getQuery('filter_free_file'); $this->view->filter_weekly = $request->getQuery('filter_weekly'); $url = ''; if ($this->view->filter_id) { $url .= '&filter_id=' . $this->view->filter_id; } if ($this->view->filter_name) { $url .= '&filter_name=' . $this->view->filter_name; } if ($this->view->filter_username) { $url .= '&filter_username='******'&filter_price=' . $this->view->filter_price; } if ($this->view->filter_sales) { $url .= '&filter_sales=' . $this->view->filter_sales; } if ($this->view->filter_profit) { $url .= '&filter_profit=' . $this->view->filter_profit; } if ($this->view->filter_free_request) { $url .= '&filter_free_request=' . $this->view->filter_free_request; } if ($this->view->filter_free_file) { $url .= '&filter_free_file=' . $this->view->filter_free_file; } if ($this->view->filter_weekly) { $url .= '&filter_weekly=' . $this->view->filter_weekly; } $url1 = ''; if ($this->view->sort) { $url1 .= '&sort=' . $this->view->sort; } if ($this->view->order) { $url1 .= '&order=' . $this->view->order; } $url2 = '&page=' . $page; $data = array('start' => $page * JO_Registry::get('admin_limit') - JO_Registry::get('admin_limit'), 'limit' => JO_Registry::get('admin_limit'), 'sort' => $this->view->sort, 'order' => $this->view->order, 'filter_id' => $this->view->filter_id, 'filter_name' => $this->view->filter_name, 'filter_username' => $this->view->filter_username, 'filter_price' => $this->view->filter_price, 'filter_sales' => $this->view->filter_sales, 'filter_profit' => $this->view->filter_profit, 'filter_free_request' => $this->view->filter_free_request, 'filter_free_file' => $this->view->filter_free_file, 'filter_weekly' => $this->view->filter_weekly, 'filter_status' => 'queue'); $this->view->items = array(); $items = Model_Items::getItems($data); if ($items) { foreach ($items as $item) { $this->view->items[] = array('id' => $item['id'], 'name' => $item['name'], 'username' => $item['username'], 'name' => $item['name'], 'price' => WM_Currency::format($item['price']), 'sales' => $item['sales'], 'profit' => WM_Currency::format($item['earning']), 'free_request' => $item['free_request'] == 'true', 'free_file' => $item['free_file'] == 'true', 'weekly_from' => $item['weekly_from'] != '0000-00-00' ? JO_Date::getInstance($item['weekly_from'], 'dd.mm.yy', true)->toString() : '', 'weekly_to' => $item['weekly_to'] != '0000-00-00' ? JO_Date::getInstance($item['weekly_to'], 'dd.mm.yy', true)->toString() : '', 'comments' => $item['comments'], 'edit' => $request->getModule() . '/queueitems/edit/?m=' . $item['module'] . '&id=' . $item['id'] . $url . $url1 . $url2, 'comments_href' => $request->getModule() . '/queueitems/comments/?id=' . $item['id'] . $url . $url1 . $url2); } } $this->view->sort = strtolower($this->view->sort); $this->view->sort_id = $request->getModule() . '/queueitems/?order=i.id&sort=' . ($this->view->sort == 'asc' ? 'DESC' : 'ASC') . $url . $url2; $this->view->sort_name = $request->getModule() . '/queueitems/?order=i.name&sort=' . ($this->view->sort == 'asc' ? 'DESC' : 'ASC') . $url . $url2; $this->view->sort_username = $request->getModule() . '/queueitems/?order=u.username&sort=' . ($this->view->sort == 'asc' ? 'DESC' : 'ASC') . $url . $url2; $this->view->sort_price = $request->getModule() . '/queueitems/?order=i.price&sort=' . ($this->view->sort == 'asc' ? 'DESC' : 'ASC') . $url . $url2; $this->view->sort_sales = $request->getModule() . '/queueitems/?order=i.sales&sort=' . ($this->view->sort == 'asc' ? 'DESC' : 'ASC') . $url . $url2; $this->view->sort_earning = $request->getModule() . '/queueitems/?order=i.earning&sort=' . ($this->view->sort == 'asc' ? 'DESC' : 'ASC') . $url . $url2; $this->view->sort_free_request = $request->getModule() . '/queueitems/?order=i.free_request&sort=' . ($this->view->sort == 'asc' ? 'DESC' : 'ASC') . $url . $url2; $this->view->sort_free_file = $request->getModule() . '/queueitems/?order=i.free_file&sort=' . ($this->view->sort == 'asc' ? 'DESC' : 'ASC') . $url . $url2; $total_records = Model_Items::getTotalItems($data); $this->view->total_pages = ceil($total_records / JO_Registry::get('admin_limit')); $this->view->total_rows = $total_records; $pagination = new Model_Pagination(); $pagination->setLimit(JO_Registry::get('admin_limit')); $pagination->setPage($page); $pagination->setTotal($total_records); $pagination->setUrl($this->getRequest()->getModule() . '/queueitems/?page={page}' . $url . $url1); $this->view->pagination = $pagination->render(); }
public function indexAction() { if ($this->session->get('successfu_edite')) { $this->view->successfu_edite = true; $this->session->clear('successfu_edite'); } $request = $this->getRequest(); $this->view->page_num = $page = $request->getRequest('page', 1); $this->view->sort = $request->getRequest('sort', 'DESC'); $this->view->order = $request->getRequest('order', 'o.id'); $this->view->filter_id = $request->getQuery('filter_id'); $this->view->filter_name = $request->getQuery('filter_name'); $this->view->filter_username = $request->getQuery('filter_username'); $this->view->filter_owner = $request->getQuery('filter_owner'); $this->view->filter_price = $request->getQuery('filter_price'); $this->view->filter_receive = $request->getQuery('filter_receive'); $this->view->filter_item_id = $request->getQuery('filter_item_id'); $this->view->filter_paid = $request->getQuery('filter_paid'); $this->view->filter_extended = $request->getQuery('filter_extended'); $this->view->filter_type = $request->getRequest('filter_type', 'buy'); $this->view->filter_from = $request->getQuery('filter_from'); $this->view->filter_to = $request->getQuery('filter_to'); $this->view->filter_paid_from = $request->getQuery('filter_paid_from'); $this->view->filter_paid_to = $request->getQuery('filter_paid_to'); $this->view->filter_order_id = $request->getQuery('filter_order_id'); $this->view->filter_web_receive = $request->getQuery('filter_web_receive'); $url = ''; if ($this->view->filter_id) { $url .= '&filter_id=' . $this->view->filter_id; } if ($this->view->filter_name) { $url .= '&filter_name=' . $this->view->filter_name; } if ($this->view->filter_username) { $url .= '&filter_username='******'&filter_owner=' . $this->view->filter_owner; } if ($this->view->filter_price) { $url .= '&filter_price=' . $this->view->filter_price; } if ($this->view->filter_web_receive) { $url .= '&filter_web_receive=' . $this->view->filter_web_receive; } if ($this->view->filter_receive) { $url .= '&filter_receive=' . $this->view->filter_receive; } if ($this->view->filter_item_id) { $url .= '&filter_item_id=' . $this->view->filter_item_id; } if ($this->view->filter_paid) { $url .= '&filter_paid=' . $this->view->filter_paid; } if ($this->view->filter_extended) { $url .= '&filter_extended=' . $this->view->filter_extended; } if ($this->view->filter_type) { $url .= '&filter_type=' . $this->view->filter_type; } if ($this->view->filter_from) { $url .= '&filter_from=' . $this->view->filter_from; } if ($this->view->filter_to) { $url .= '&filter_to=' . $this->view->filter_to; } if ($this->view->filter_paid_from) { $url .= '&filter_paid_from=' . $this->view->filter_paid_from; } if ($this->view->filter_paid_to) { $url .= '&filter_paid_to=' . $this->view->filter_paid_to; } if ($this->view->filter_order_id) { $url .= '&filter_order_id=' . $this->view->filter_order_id; } $url1 = ''; if ($this->view->sort) { $url1 .= '&sort=' . $this->view->sort; } if ($this->view->order) { $url1 .= '&order=' . $this->view->order; } $url2 = '&page=' . $page; $data = array('start' => $page * JO_Registry::get('admin_limit') - JO_Registry::get('admin_limit'), 'limit' => JO_Registry::get('admin_limit'), 'sort' => $this->view->sort, 'order' => $this->view->order, 'filter_id' => $this->view->filter_id, 'filter_name' => $this->view->filter_name, 'filter_username' => $this->view->filter_username, 'filter_owner' => $this->view->filter_owner, 'filter_price' => $this->view->filter_price, 'filter_receive' => $this->view->filter_receive, 'filter_item_id' => $this->view->filter_item_id, 'filter_paid' => $this->view->filter_paid, 'filter_extended' => $this->view->filter_extended, 'filter_type' => $this->view->filter_type, 'filter_from' => $this->view->filter_from, 'filter_to' => $this->view->filter_to, 'filter_paid_from' => $this->view->filter_paid_from, 'filter_paid_to' => $this->view->filter_paid_to, 'filter_order_id' => $this->view->filter_order_id, 'filter_web_receive' => $this->view->filter_web_receive); $this->view->items = array(); $items = Model_Orders::getAll($data); $this->view->price = 0; $this->view->web_profit2 = 0; $this->view->profit = 0; if ($items) { foreach ($items as $item) { $item['web_profit2'] = $item['referral_sum'] > 0 ? $item['web_profit'] - $item['referral_sum'] : $item['web_profit']; $this->view->price += $item['price']; $this->view->web_profit2 += $item['web_profit2']; $this->view->profit += $item['receive']; $this->view->items[] = array('id' => $item['id'], 'order_id' => $item['order_id'], 'name' => $item['item_name'], 'username' => $item['username'], 'owner' => $item['owner'], 'href' => WM_Router::create($request->getBaseUrl() . '?module=' . $item['module'] . '&controller=items&item_id=' . $item['item_id']), 'price' => WM_Currency::format($item['price']), 'profit' => WM_Currency::format($item['receive']), 'web_profit' => WM_Currency::format($item['web_profit']), 'web_profit2' => WM_Currency::format($item['web_profit2']), 'has_referral_sum' => $item['referral_sum'], 'referral_sum' => WM_Currency::format($item['referral_sum']), 'datetime' => JO_Date::getInstance($item['datetime'], 'dd.mm.yy', true)->toString(), 'paid' => $item['paid'] == 'true', 'paid_datetime' => $item['paid'] == 'true' ? JO_Date::getInstance($item['paid_datetime'], 'dd.mm.yy', true)->toString() : '', 'extended' => $item['extended'] == 'true', 'type' => $item['type'], 'edit' => $request->getModule() . '/orders/edit/?id=' . $item['id'] . $url . $url1 . $url2, 'has_referal' => $item['type'] == 'buy' ? Model_Orders::getTotal(array('filter_order_id' => $item['id'], 'filter_type' => 'referal')) : 0, 'has_buy' => $item['type'] != 'buy' ? Model_Orders::getTotal(array('filter_id' => $item['order_id'], 'filter_type' => 'buy')) : 0); } } $this->view->price = WM_Currency::format($this->view->price); $this->view->web_profit2 = WM_Currency::format($this->view->web_profit2); $this->view->profit = WM_Currency::format($this->view->profit); $this->view->sort = strtolower($this->view->sort); $this->view->sort_id = $request->getModule() . '/orders/?order=o.id&sort=' . ($this->view->sort == 'asc' ? 'DESC' : 'ASC') . $url . $url2; $this->view->sort_name = $request->getModule() . '/orders/?order=o.name&sort=' . ($this->view->sort == 'asc' ? 'DESC' : 'ASC') . $url . $url2; $this->view->sort_username = $request->getModule() . '/orders/?order=u.username&sort=' . ($this->view->sort == 'asc' ? 'DESC' : 'ASC') . $url . $url2; $this->view->sort_owner = $request->getModule() . '/orders/?order=u2.username&sort=' . ($this->view->sort == 'asc' ? 'DESC' : 'ASC') . $url . $url2; $this->view->sort_price = $request->getModule() . '/orders/?order=o.price&sort=' . ($this->view->sort == 'asc' ? 'DESC' : 'ASC') . $url . $url2; $this->view->sort_receive = $request->getModule() . '/orders/?order=o.receive&sort=' . ($this->view->sort == 'asc' ? 'DESC' : 'ASC') . $url . $url2; $this->view->sort_web_receive = $request->getModule() . '/orders/?order=web_profit2&sort=' . ($this->view->sort == 'asc' ? 'DESC' : 'ASC') . $url . $url2; $this->view->sort_datetime = $request->getModule() . '/orders/?order=o.datetime&sort=' . ($this->view->sort == 'asc' ? 'DESC' : 'ASC') . $url . $url2; $this->view->sort_paid = $request->getModule() . '/orders/?order=o.paid&sort=' . ($this->view->sort == 'asc' ? 'DESC' : 'ASC') . $url . $url2; $this->view->sort_paid_datetime = $request->getModule() . '/orders/?order=o.paid_datetime&sort=' . ($this->view->sort == 'asc' ? 'DESC' : 'ASC') . $url . $url2; $this->view->sort_extended = $request->getModule() . '/orders/?order=o.extended&sort=' . ($this->view->sort == 'asc' ? 'DESC' : 'ASC') . $url . $url2; $this->view->sort_type = $request->getModule() . '/orders/?order=o.type&sort=' . ($this->view->sort == 'asc' ? 'DESC' : 'ASC') . $url . $url2; $total_records = Model_Orders::getTotal($data); $this->view->total_pages = ceil($total_records / JO_Registry::get('admin_limit')); $this->view->total_rows = $total_records; $pagination = new Model_Pagination(); $pagination->setLimit(JO_Registry::get('admin_limit')); $pagination->setPage($page); $pagination->setTotal($total_records); $pagination->setUrl($this->getRequest()->getModule() . '/orders/?page={page}' . $url . $url1); $this->view->pagination = $pagination->render(); $this->view->order_link = WM_Router::create($request->getBaseUrl() . '?controller=admin/orders&action=index'); $this->view->deposit_link = WM_Router::create($request->getBaseUrl() . '?controller=admin/orders&action=deposit'); $this->view->membership_link = WM_Router::create($request->getBaseUrl() . '?controller=admin/orders&action=membership'); }
public function commentsAction() { if ($this->session->get('successfu_edite')) { $this->view->successfu_edite = true; $this->session->clear('successfu_edite'); } $request = $this->getRequest(); $url = ''; if ($request->getQuery('filter_id')) { $url .= '&filter_id=' . $request->getQuery('filter_id'); } if ($request->getQuery('filter_name')) { $url .= '&filter_name=' . $request->getQuery('filter_name'); } if ($request->getQuery('filter_username')) { $url .= '&filter_username='******'filter_username'); } if ($request->getQuery('filter_user_id')) { $url .= '&filter_user_id=' . $request->getQuery('filter_user_id'); } if ($request->getQuery('filter_price')) { $url .= '&filter_price=' . $request->getQuery('filter_price'); } if ($request->getQuery('filter_sales')) { $url .= '&filter_sales=' . $request->getQuery('filter_sales'); } if ($request->getQuery('filter_profit')) { $url .= '&filter_profit=' . $request->getQuery('filter_profit'); } if ($request->getQuery('filter_free_request')) { $url .= '&filter_free_request=' . $request->getQuery('filter_free_request'); } if ($request->getQuery('filter_free_file')) { $url .= '&filter_free_file=' . $request->getQuery('filter_free_file'); } if ($request->getQuery('filter_weekly')) { $url .= '&filter_weekly=' . $request->getQuery('filter_weekly'); } if ($request->getQuery('sort')) { $url .= '&sort=' . $request->getQuery('sort'); } if ($request->getQuery('order')) { $url .= '&order=' . $request->getQuery('order'); } if ($request->getQuery('page')) { $url .= '&page=' . $request->getQuery('page'); } $this->view->page_num = $page = $this->getRequest()->getRequest('p', 1); $data = array('start' => $page * JO_Registry::get('admin_limit') - JO_Registry::get('admin_limit'), 'limit' => JO_Registry::get('admin_limit'), 'filter_item_id' => $request->getQuery('id')); $this->view->comments = array(); $comments = Model_Comments::getComments($data); if ($comments) { foreach ($comments as $comment) { $comment['datetime'] = JO_Date::getInstance($comment['datetime'], 'dd MM yy H:i:s', true)->toString(); $comment['href'] = WM_Router::create($this->getRequest()->getBaseUrl() . '?controller=items&action=comments&item_id=' . $comment['item_id'] . '&filter=' . ($comment['reply_to'] ? $comment['reply_to'] : $comment['id'])); $this->view->comments[] = $comment; } } $total_records = Model_Comments::getTotalComments($data); $this->view->total_pages = ceil($total_records / JO_Registry::get('admin_limit')); $this->view->total_rows = $total_records; $pagination = new Model_Pagination(); $pagination->setLimit(JO_Registry::get('admin_limit')); $pagination->setPage($page); $pagination->setTotal($total_records); $pagination->setUrl($this->getRequest()->getModule() . '/items/comments/?p={page}&id=' . $request->getQuery('id') . $url); $this->view->pagination = $pagination->render(); }
public function editItem($id, $data) { $db = JO_Db::getDefaultAdapter(); $info = self::getItem($id); if (!$info) { return; } if (isset($data['free_file'])) { $db->update('items', array('free_file' => 'false')); self::addUserStatus($id, 'freefile'); } $db->update('items', array('name' => $data['name'], 'description' => $data['description'], 'price' => $data['price'], 'free_file' => isset($data['free_file']) ? 'true' : 'false', 'weekly_from' => $data['weekly_from'] ? JO_Date::getInstance($data['weekly_from'], 'yy-mm-dd', true) : '0000-00-00', 'weekly_to' => $data['weekly_to'] ? JO_Date::getInstance($data['weekly_to'], 'yy-mm-dd', true) : '0000-00-00'), array('id = ?' => (int) $id)); if (isset($data['set_status']) && $data['set_status'] == 'active') { $db->update('items', array('status' => $data['set_status']), array('id = ?' => (int) $id)); $db->update(Model_Users::getPrefixDB() . 'users', array('items' => new JO_Db_Expr('items + 1')), array('user_id = ?' => $info['user_id'])); /////////// send email $request = JO_Request::getInstance(); $translate = JO_Translate::getInstance(); $not_template = Model_Notificationtemplates::get('approval_item'); $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@' . $request->getDomain()); $href = '<a href="' . WM_Router::create($request->getBaseUrl() . '?module=' . $info['module'] . '&controller=items&item_id=' . $id) . '">' . $info['name'] . '</a>'; if ($not_template) { $title = $not_template['title']; $html = html_entity_decode($not_template['template'], ENT_QUOTES, 'utf-8'); $html = str_replace('{USERNAME}', $info['username'], $html); $html = str_replace('{ITEM}', $info['name'], $html); $html = str_replace('{URL}', $href, $html); } else { $title = "[" . $request->getDomain() . "] " . $data['name']; $html = nl2br($translate->translate('Item') . ' ' . $href . ' ' . $translate->translate('approval')); } $mail->setSubject($title); $mail->setHTML($html); $result = $mail->send(array($info['email']), JO_Registry::get('mail_smtp') ? 'smtp' : 'mail'); unset($mail); ////////////////////// } if (isset($data['weekly_to']) && trim($data['weekly_to']) != '') { self::addUserStatus($id, 'featured'); } $db->delete('items_to_category', array('item_id = ?' => (int) $id)); if (isset($data['category_id'])) { foreach ($data['category_id'] as $category_id) { $categories = Model_Categories::getCategoryParents(Model_Categories::getCategories(array('filter_id_key' => true)), $category_id); $categories = explode(',', $categories); array_pop($categories); $categories = array_reverse($categories); $categories = ',' . implode(',', $categories) . ','; $db->insert('items_to_category', array('item_id' => (int) $id, 'categories' => $categories)); } } $db->delete('items_attributes', array('item_id = ?' => (int) $id)); if (isset($data['attributes']) && is_array($data['attributes'])) { foreach ($data['attributes'] as $cid => $value) { if (is_array($value)) { foreach ($value as $val) { $db->insert('items_attributes', array('item_id' => $id, 'attribute_id' => $val, 'category_id' => (int) $cid)); } } elseif ($value) { $db->insert('items_attributes', array('item_id' => $id, 'attribute_id' => $value, 'category_id' => (int) $cid)); } } } $db->delete('items_tags', array('item_id = ?' => (int) $id)); if (isset($data['tags']) && $data['tags']) { $tags = explode(',', $data['tags']); foreach ($tags as $tag) { $tag = trim($tag); if ($tag) { $tag_id = Model_Tags::getTagByTitleAndInsert($tag); if ($tag_id) { $db->insert('items_tags', array('item_id' => $id, 'tag_id' => (int) $tag_id, 'type' => '')); } } } } }
public static function getTotal($data = array()) { $db = JO_Db::getDefaultAdapter(); $query = $db->select()->from(array('o' => 'orders'), new JO_Db_Expr('COUNT(o.id), (o.price - o.receive) AS web_profit, (SELECT receive FROM orders WHERE order_id = o.id LIMIT 1) AS referral_sum, ((o.price - o.receive) - (SELECT receive FROM orders WHERE order_id = o.id LIMIT 1)) AS web_profit2'))->joinLeft(array('u' => Model_Users::getPrefixDB() . 'users'), 'o.user_id = u.user_id', array())->joinLeft(array('u2' => Model_Users::getPrefixDB() . 'users'), 'o.owner_id = u2.user_id', array()); ////////////filter if (isset($data['filter_id']) && $data['filter_id']) { $query->where('o.id = ?', (int) $data['filter_id']); } if (isset($data['filter_order_id']) && $data['filter_order_id']) { $query->where('o.order_id = ?', (int) $data['filter_order_id']); } if (isset($data['filter_name']) && $data['filter_name']) { $query->where('o.item_name LIKE ?', '%' . $data['filter_name'] . '%'); } if (isset($data['filter_username']) && $data['filter_username']) { $query->where('u.username LIKE ?', '%' . $data['filter_username'] . '%'); } if (isset($data['filter_owner']) && $data['filter_owner']) { $query->where('u2.username LIKE ?', '%' . $data['filter_owner'] . '%'); } if (isset($data['filter_price']) && $data['filter_price']) { $data['filter_price'] = html_entity_decode($data['filter_price'], ENT_QUOTES, 'utf-8'); if (strpos($data['filter_price'], '<>') === 0) { $query->where('o.price != ?', (double) substr($data['filter_price'], 2)); } elseif (strpos($data['filter_price'], '>') === 0) { $query->where('o.price > ?', (double) substr($data['filter_price'], 1)); } elseif (strpos($data['filter_price'], '<') === 0) { $query->where('o.price < ?', (double) substr($data['filter_price'], 1)); } else { $query->where('o.price = ?', (double) $data['filter_price']); } } if (isset($data['filter_receive']) && $data['filter_receive']) { $data['filter_receive'] = html_entity_decode($data['filter_receive'], ENT_QUOTES, 'utf-8'); if (strpos($data['filter_receive'], '<>') === 0) { $query->where('o.receive != ?', (double) substr($data['filter_receive'], 2)); } elseif (strpos($data['filter_receive'], '>') === 0) { $query->where('o.receive > ?', (double) substr($data['filter_receive'], 1)); } elseif (strpos($data['filter_receive'], '<') === 0) { $query->where('o.receive < ?', (double) substr($data['filter_receive'], 1)); } else { $query->where('o.receive = ?', (double) $data['filter_receive']); } } if (isset($data['filter_web_receive']) && $data['filter_web_receive']) { $data['filter_web_receive'] = html_entity_decode($data['filter_web_receive'], ENT_QUOTES, 'utf-8'); if (strpos($data['filter_web_receive'], '<>') === 0) { $query->where('web_profit2 != ?', (double) substr($data['filter_web_receive'], 2)); } elseif (strpos($data['filter_web_receive'], '>') === 0) { $query->where('web_profit2 > ?', (double) substr($data['filter_web_receive'], 1)); } elseif (strpos($data['filter_web_receive'], '<') === 0) { $query->where('web_profit2 < ?', (double) substr($data['filter_web_receive'], 1)); } else { $query->where('web_profit2 = ?', (double) $data['filter_web_receive']); } } if (isset($data['filter_item_id']) && $data['filter_item_id']) { $query->where('o.item_id = ?', (int) $data['filter_item_id']); } if (isset($data['filter_paid']) && in_array($data['filter_paid'], array('true', 'false'))) { $query->where('o.paid = ?', $data['filter_paid']); } if (isset($data['filter_extended']) && in_array($data['filter_extended'], array('true', 'false'))) { $query->where('o.extended = ?', $data['filter_extended']); } if (isset($data['filter_type']) && $data['filter_type']) { $query->where('o.type = ?', $data['filter_type']); } if (isset($data['filter_from']) && JO_Date::dateToUnix($data['filter_from'])) { $query->where('DATE(o.datetime) >= ?', JO_Date::getInstance($data['filter_from'], 'yy-mm-dd', true)->toString()); } if (isset($data['filter_to']) && JO_Date::dateToUnix($data['filter_to'])) { $query->where('DATE(o.datetime) <= ?', JO_Date::getInstance($data['filter_to'], 'yy-mm-dd', true)->toString()); } if (isset($data['filter_paid_from']) && JO_Date::dateToUnix($data['filter_paid_from'])) { $query->where('DATE(o.paid_datetime) >= ?', JO_Date::getInstance($data['filter_paid_from'], 'yy-mm-dd', true)->toString()); } if (isset($data['filter_paid_to']) && JO_Date::dateToUnix($data['filter_paid_to'])) { $query->where('DATE(o.paid_datetime) <= ?', JO_Date::getInstance($data['filter_paid_to'], 'yy-mm-dd', true)->toString()); } return $db->fetchOne($query); }
private function getForm() { $request = $this->getRequest(); $url = ''; if ($request->getQuery('filter_id')) { $url .= '&filter_id=' . $request->getQuery('filter_id'); } if ($request->getQuery('filter_name')) { $url .= '&filter_name=' . $request->getQuery('filter_name'); } if ($request->getQuery('filter_username')) { $url .= '&filter_username='******'filter_username'); } if ($request->getQuery('filter_user_id')) { $url .= '&filter_user_id=' . $request->getQuery('filter_user_id'); } if ($request->getQuery('filter_price')) { $url .= '&filter_price=' . $request->getQuery('filter_price'); } if ($request->getQuery('filter_sales')) { $url .= '&filter_sales=' . $request->getQuery('filter_sales'); } if ($request->getQuery('filter_profit')) { $url .= '&filter_profit=' . $request->getQuery('filter_profit'); } if ($request->getQuery('filter_free_request')) { $url .= '&filter_free_request=' . $request->getQuery('filter_free_request'); } if ($request->getQuery('filter_free_file')) { $url .= '&filter_free_file=' . $request->getQuery('filter_free_file'); } if ($request->getQuery('filter_weekly')) { $url .= '&filter_weekly=' . $request->getQuery('filter_weekly'); } if ($request->getQuery('sort')) { $url .= '&sort=' . $request->getQuery('sort'); } if ($request->getQuery('order')) { $url .= '&order=' . $request->getQuery('order'); } if ($request->getQuery('page')) { $url .= '&page=' . $request->getQuery('page'); } $id = $request->getQuery('id'); $info = Model_Items::getItem($id); if (!$info) { $this->redirect($this->getRequest()->getBaseUrl() . $this->getRequest()->getModule() . '/items/?' . $url); } $this->view->cancel = $this->getRequest()->getBaseUrl() . $this->getRequest()->getModule() . '/items/?' . $url; $model_images = new Model_Images(); $info['thumbnail'] = $model_images->resize($info['thumbnail'], JO_Registry::forceGet($info['module'] . '_items_thumb_width'), JO_Registry::forceGet($info['module'] . '_items_thumb_height'), true); if ((int) JO_Registry::get($info['module'] . '_items_preview_width') && (int) JO_Registry::get($info['module'] . '_items_preview_height')) { $info['theme_preview_thumbnail'] = $model_images->resize($info['theme_preview_thumbnail'], JO_Registry::forceGet($info['module'] . '_items_preview_width'), JO_Registry::forceGet($info['module'] . '_items_preview_height'), true); } elseif ((int) JO_Registry::get($info['module'] . '_items_preview_width')) { $info['theme_preview_thumbnail'] = $model_images->resizeWidth($info['theme_preview_thumbnail'], JO_Registry::forceGet($info['module'] . '_items_preview_width')); } elseif ((int) JO_Registry::get($info['module'] . '_items_preview_height')) { $info['theme_preview_thumbnail'] = $model_images->resizeHeight($info['theme_preview_thumbnail'], JO_Registry::forceGet($info['module'] . '_items_preview_height')); } else { $info['theme_preview_thumbnail'] = false; } $this->view->info = $info; $this->view->price_f = WM_Currency::format($info['suggested_price']); $this->view->categories = Model_Categories::getCategoriesFromParentByModule(0, $info['module']); $cats_module = Model_Categories::getCategories(array('filter_sub_of' => 0, 'filter_module' => $info['module'], 'filter_concat' => true)); $where_attr = ''; if ($cats_module) { $tmp = array(); foreach ($cats_module as $c) { $tmp[] = "categories LIKE '%," . $c . ",%'"; } if ($tmp) { $where_attr = implode(' OR ', $tmp); } } $this->view->attributes_list = array(); $attr_cat = Model_Attributes::getAttributes(array(), $where_attr); if ($attr_cat) { foreach ($attr_cat as $row => $attr) { $attr_list = Model_Attributes::getAttributes(array('filter_sub_of' => $attr['id'])); if ($attr_list) { $this->view->attributes_list[$row] = $attr; $this->view->attributes_list[$row]['items'] = $attr_list; } } } //var_dump($this->view->attributes_list); if ($request->getPost('name')) { $this->view->name = $request->getPost('name'); } else { $this->view->name = $info['name']; } if ($request->getPost('description')) { $this->view->description = $request->getPost('description'); } else { $this->view->description = $info['description']; } if ($request->getPost('price')) { $this->view->price = $request->getPost('price'); } else { $this->view->price = $info['price']; } if ($request->getPost('category_id')) { $this->view->category_id = $request->getPost('category_id'); } else { $this->view->category_id = Model_Items::getItemCategory($id); } if ($request->getPost('attributes')) { $this->view->attributes = $request->getPost('attributes'); } else { $this->view->attributes = Model_Items::getItemAttributes($id); } if ($request->getPost('tags')) { $this->view->tags = $request->getPost('tags'); } else { $this->view->tags = Model_Items::getItemTags($id); } if ($request->getPost('free_file')) { $this->view->free_file = $request->getPost('free_file'); } else { $this->view->free_file = $info['free_file']; } if ($request->getPost('demo_url')) { $this->view->demo_url = $request->getPost('demo_url'); } else { $this->view->demo_url = $info['demo_url']; } if ($request->getPost('weekly_from')) { $this->view->weekly_from = $request->getPost('weekly_from'); } else { if ($info['weekly_from'] != '0000-00-00') { $this->view->weekly_from = JO_Date::getInstance($info['weekly_from'], 'dd.mm.yy', true)->toString(); } else { $this->view->weekly_from = ''; } } if ($request->getPost('weekly_to')) { $this->view->weekly_to = $request->getPost('weekly_to'); } else { if ($info['weekly_to'] != '0000-00-00') { $this->view->weekly_to = JO_Date::getInstance($info['weekly_to'], 'dd.mm.yy', true)->toString(); } else { $this->view->weekly_to = ''; } } }
public static function authorHeader($user) { $view = JO_View::getInstance(); $model_images = new Helper_Images(); $request = JO_Request::getInstance(); $view->my_profile = JO_Session::get('username') == $user['username'] ? true : false; $cnts = Model_Items::getPortfolioCounts($user['user_id']); $view->portfolio_link = WM_Router::create($request->getBaseUrl() . '?controller=users&username='******'username'])); $action = $request->getAction(); $controller = $request->getController(); $list_type = $request->getParam('list_type'); if (JO_Session::get('user_id')) { if ($view->my_profile) { if (in_array($action, array('dashboard', 'edit', 'earnings', 'statement', 'withdrawal', 'deposit', 'membership'))) { $view->stats = array(array('name' => $view->translate('Dashboard'), 'href' => WM_Router::create($request->getBaseUrl() . '?controller=users&action=dashboard'), 'is_selected' => $action == 'dashboard' ? true : false), array('name' => $view->translate('Settings'), 'href' => WM_Router::create($request->getBaseUrl() . '?controller=users&action=edit'), 'is_selected' => $action == 'edit' ? true : false), array('name' => $view->translate('Earnings'), 'href' => WM_Router::create($request->getBaseUrl() . '?controller=users&action=earnings'), 'is_selected' => $action == 'earnings' ? true : false), array('name' => $view->translate('Statement'), 'href' => WM_Router::create($request->getBaseUrl() . '?controller=users&action=statement'), 'is_selected' => $action == 'statement' ? true : false), array('name' => $view->translate('Withdrawal'), 'href' => WM_Router::create($request->getBaseUrl() . '?controller=users&action=withdrawal'), 'is_selected' => $action == 'withdrawal' ? true : false), array('name' => $view->translate('Deposit'), 'href' => WM_Router::create($request->getBaseUrl() . '?controller=users&action=deposit'), 'is_selected' => $action == 'deposit' ? true : false)); $membership = Model_Membership::getAll(); if ($membership) { $view->stats[] = array('name' => $view->translate('Membership'), 'href' => WM_Router::create($request->getBaseUrl() . '?controller=users&action=membership'), 'is_selected' => $action == 'membership' ? true : false); } $user['edit_link'] = array('name' => $view->translate('Portfolio'), 'href' => $view->portfolio_link); } else { $view->portfolio = true; $view->stats = array(array('name' => $cnts[4]['total'] . ' ' . $view->translate('Items'), 'href' => WM_Router::create($request->getBaseUrl() . '?controller=users&username='******'&', '-', $user['username'])), 'is_selected' => $action == 'index' && $controller == 'users' ? true : false), array('name' => $cnts[0]['total'] . ' ' . $view->translate('Collections'), 'href' => WM_Router::create($request->getBaseUrl() . '?controller=users&action=collections&username='******'&', '-', $user['username'])), 'is_selected' => in_array($action, array('collections', 'view_collection')) ? true : false), array('name' => $cnts[1]['total'] . ' ' . $view->translate('Downloads'), 'href' => WM_Router::create($request->getBaseUrl() . '?controller=users&action=downloads&username='******'&', '-', $user['username'])), 'is_selected' => $action == 'downloads' ? true : false), array('name' => $cnts[2]['total'] . ' ' . $view->translate('Following'), 'href' => WM_Router::create($request->getBaseUrl() . '?controller=users&action=following&username='******'&', '-', $user['username'])), 'is_selected' => $action == 'following' && $list_type != 'followers' ? true : false), array('name' => $cnts[3]['total'] . ' ' . $view->translate('Followers'), 'href' => WM_Router::create($request->getBaseUrl() . '?controller=users&action=followers&username='******'&', '-', $user['username'])), 'is_selected' => $list_type == 'followers' ? true : false)); $user['edit_link'] = array('name' => $view->translate('My account'), 'href' => WM_Router::create($request->getBaseUrl() . '?controller=users&action=dashboard')); } } else { $following = JO_Session::get('following'); if ($following) { $is_followed = JO_Array::multi_array_search($following, 'username', $user['username']); } if (!empty($is_followed)) { $user['edit_link'] = array('name' => $view->translate('Unfollow'), 'href' => WM_Router::create($request->getBaseUrl() . '?controller=users&action=unfollow&username='******'&', '-', $user['username']))); } else { $user['edit_link'] = array('name' => $view->translate('Follow'), 'href' => WM_Router::create($request->getBaseUrl() . '?controller=users&action=follow&username='******'&', '-', $user['username']))); } } } if (!isset($view->stats)) { $view->portfolio = true; $view->stats = array(array('name' => $cnts[4]['total'] . ' ' . $view->translate('Items'), 'href' => WM_Router::create($request->getBaseUrl() . '?controller=users&username='******'&', '-', $user['username'])), 'is_selected' => $action == 'index' && $controller == 'users' ? true : false), array('name' => $cnts[0]['total'] . ' ' . $view->translate('Collections'), 'href' => WM_Router::create($request->getBaseUrl() . '?controller=users&action=collections&username='******'&', '-', $user['username'])), 'is_selected' => in_array($action, array('collections', 'view_collection')) ? true : false), array('name' => $cnts[2]['total'] . ' ' . $view->translate('Following'), 'href' => WM_Router::create($request->getBaseUrl() . '?controller=users&action=following&username='******'&', '-', $user['username'])), 'is_selected' => $action == 'following' && $list_type != 'followers' ? true : false), array('name' => $cnts[3]['total'] . ' ' . $view->translate('Followers'), 'href' => WM_Router::create($request->getBaseUrl() . '?controller=users&action=followers&username='******'&', '-', $user['username'])), 'is_selected' => $list_type == 'followers' ? true : false)); } if ($user['country_id']) { $country = Model_Countries::get($user['country_id']); $user['country_name'] = (!empty($user['live_city']) ? $user['live_city'] . ', ' : '') . $country['name']; } $user['register_datetime'] = JO_Date::getInstance($user['register_datetime'], 'MM yy')->getDate(); $time_parts = explode(' ', $user['register_datetime']); if (mb_strlen($time_parts[0], 'UTF-8') > 5) { $user['register_datetime'] = mb_substr($time_parts[0], 0, 3, 'UTF-8') . '. ' . $time_parts[1]; } if ($user['user_site']) { $pos = mb_stripos($user['user_site'], 'http://', 'UTF-8'); if ($pos === 0) { $user['user_site'] = str_replace('http://', '', mb_strtolower($user['user_site'], 'UTF-8')); } if (strlen($user['user_site']) > 22) { $pos = mb_stripos($user['user_site'], '/', 15, 'UTF-8'); if ($pos !== false) { $user['user_site'] = str_replace('/', '/​', $user['user_site']); } } } $view->badges = self::userBadges($user); if ($user['social']) { $user['social'] = unserialize($user['social']); } 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'; } $view->user = $user; return $view->renderByModule('single_user/author_header', 'users', 'themes'); }