function show() { global $main_smarty, $db; include_once mnminclude . 'search.php'; $search = new Search(); $search->orderBy = $this->orderBy; $search->pagesize = $this->pagesize; $search->filterToStatus = $this->filterToStatus; $search->filterToTimeFrame = $this->filterToTimeFrame; $search->doSearch(); $linksum_sql = $search->sql; $link = new Link(); $links = $db->get_col($linksum_sql); if ($links) { foreach ($links as $link_id) { $link->id = $link_id; $link->read(); $main_smarty = $link->fill_smarty($main_smarty); $main_smarty->display($this->template); } } }
*/ //$_GET = $_POST; include_once dirname(__FILE__) . DIRECTORY_SEPARATOR . "inc" . DIRECTORY_SEPARATOR . "config.php"; include_once CLASS_PAGINATION; $pagination = new pagination(false); if (!empty($_GET['search'])) { include_once CLASS_SEARCH; $search = new Search($_GET['search_folder']); $search->addSearchKeyword('recursive', @$_GET['search_recursively']); $search->addSearchKeyword('mtime_from', @$_GET['search_mtime_from']); $search->addSearchKeyword('mtime_to', @$_GET['search_mtime_to']); $search->addSearchKeyword('size_from', @$_GET['search_size_from']); $search->addSearchKeyword('size_to', @$_GET['search_size_to']); $search->addSearchKeyword('recursive', @$_GET['search_recursively']); $search->addSearchKeyword('name', @$_GET['search_name']); $search->doSearch(); $fileList = $search->getFoundFiles(); $folderInfo = $search->getRootFolderInfo(); } else { include_once CLASS_MANAGER; include_once CLASS_SESSION_ACTION; $sessionAction = new SessionAction(); include_once DIR_AJAX_INC . "class.manager.php"; $manager = new manager(); $manager->setSessionAction($sessionAction); $fileList = $manager->getFileList(); $folderInfo = $manager->getFolderInfo(); } $pagination->setUrl(CONFIG_URL_FILEnIMAGE_MANAGER); } else { include_once CLASS_PAGINATION;
function related_listings() { View::newInstance()->_exportVariableToView('items', array()); $mSearch = new Search(); $mSearch->addCategory(osc_item_category_id()); $mSearch->addRegion(osc_item_region()); $mSearch->addItemConditions(sprintf("%st_item.pk_i_id < %s ", DB_TABLE_PREFIX, osc_item_id())); $mSearch->limit('0', '3'); $aItems = $mSearch->doSearch(); $iTotalItems = count($aItems); if ($iTotalItems == 3) { View::newInstance()->_exportVariableToView('items', $aItems); return $iTotalItems; } unset($mSearch); $mSearch = new Search(); $mSearch->addCategory(osc_item_category_id()); $mSearch->addItemConditions(sprintf("%st_item.pk_i_id != %s ", DB_TABLE_PREFIX, osc_item_id())); $mSearch->limit('0', '3'); $aItems = $mSearch->doSearch(); $iTotalItems = count($aItems); if ($iTotalItems > 0) { View::newInstance()->_exportVariableToView('items', $aItems); return $iTotalItems; } unset($mSearch); return 0; }
function show($fetch = false) { global $main_smarty, $db, $cached_links, $current_user; include_once mnminclude . 'search.php'; $search = new Search(); $search->orderBy = $this->orderBy; $search->pagesize = $this->pagesize; $search->filterToStatus = $this->filterToStatus; $search->filterToTimeFrame = $this->filterToTimeFrame; if ($this->category) { $thecat = get_cached_category_data('category_safe_name', $this->category); $search->category = $thecat->category_id; } $search->doSearch(); $linksum_sql = $search->sql; $link = new Link(); $links = $db->get_col($linksum_sql); $the_results = $links; if ($the_results) { // find out if the logged in user voted / reported each of // the stories that the search found and cache the results require_once mnminclude . 'votes.php'; // DB 03/02/09 // $vote = new Vote; // $vote->type='links'; // $vote->user=$current_user->user_id; // $vote->link=$the_results; // $results = $vote->user_list_all_votes(); ////// $vote = ''; $results = ''; // we don't actually need the results // we're just calling this to cache the results // so when we foreach the links we don't have to // run 1 extra query for each story to determine // current user votes // setup the link cache $i = 0; // if this query changes also change it in the read() function in /libs/link.php $sql = "SELECT " . table_links . ".* FROM " . table_links . " WHERE "; foreach ($the_results as $link_id) { // first make sure we don't already have it cached if (!isset($cached_links[$link_id])) { if ($i > 0) { $sql .= ' OR '; } $sql .= " link_id = {$link_id} "; $i = $i + 1; } } // if $i = 0 then all the links are already cached // so don't touch the db // if $i > 0 then there is at least 1 link to get // so get the SQL and add results to the cache if ($i > 0) { $results = $db->get_results($sql); // add the results to the cache foreach ($results as $row) { $cached_links[$row->link_id] = $row; } } // end link cache setup } $ssLinks = ''; if ($links) { foreach ($links as $link_id) { $link->id = $link_id; $link->check_saved = false; $link->get_author_info = false; $link->check_friends = false; $link->read(); if (is_numeric($this->TitleLengthLimit) && strlen($link->title) > $this->TitleLengthLimit) { $link->title = utf8_substr($link->title, 0, $this->TitleLengthLimit) . '...'; } $main_smarty = $link->fill_smarty($main_smarty); $ssLinks .= $main_smarty->fetch($this->template); } } if ($fetch == true) { return $ssLinks; } else { echo $ssLinks; } }
function doModel() { switch ($this->action) { case 'dashboard': //dashboard... $max_items = Params::getParam('max_items') != '' ? Params::getParam('max_items') : 5; $aItems = Item::newInstance()->findByUserIDEnabled(osc_logged_user_id(), 0, $max_items); //calling the view... $this->_exportVariableToView('items', $aItems); $this->_exportVariableToView('max_items', $max_items); $this->doView('user-dashboard.php'); break; case 'profile': //profile... $user = User::newInstance()->findByPrimaryKey(osc_logged_user_id()); $aCountries = Country::newInstance()->listAll(); $aRegions = array(); if ($user['fk_c_country_code'] != '') { $aRegions = Region::newInstance()->findByCountry($user['fk_c_country_code']); } elseif (count($aCountries) > 0) { $aRegions = Region::newInstance()->findByCountry($aCountries[0]['pk_c_code']); } $aCities = array(); if ($user['fk_i_region_id'] != '') { $aCities = City::newInstance()->findByRegion($user['fk_i_region_id']); } else { if (count($aRegions) > 0) { $aCities = City::newInstance()->findByRegion($aRegions[0]['pk_i_id']); } } //calling the view... $this->_exportVariableToView('countries', $aCountries); $this->_exportVariableToView('regions', $aRegions); $this->_exportVariableToView('cities', $aCities); $this->_exportVariableToView('user', $user); $this->_exportVariableToView('locales', OSCLocale::newInstance()->listAllEnabled()); $this->doView('user-profile.php'); break; case 'profile_post': //profile post... osc_csrf_check(); $userId = Session::newInstance()->_get('userId'); require_once LIB_PATH . 'osclass/UserActions.php'; $userActions = new UserActions(false); $success = $userActions->edit($userId); if ($success == 1 || $success == 2) { osc_add_flash_ok_message(_m('Your profile has been updated successfully')); } else { osc_add_flash_error_message($success); } $this->redirectTo(osc_user_profile_url()); break; case 'alerts': //alerts $aAlerts = Alerts::newInstance()->findByUser(Session::newInstance()->_get('userId'), false); $user = User::newInstance()->findByPrimaryKey(Session::newInstance()->_get('userId')); foreach ($aAlerts as $k => $a) { $array_conditions = (array) json_decode($a['s_search']); // $search = Search::newInstance(); $search = new Search(); $search->setJsonAlert($array_conditions); $search->limit(0, 3); $aAlerts[$k]['items'] = $search->doSearch(); } $this->_exportVariableToView('alerts', $aAlerts); View::newInstance()->_reset('alerts'); $this->_exportVariableToView('user', $user); $this->doView('user-alerts.php'); break; case 'change_email': //change email $this->doView('user-change_email.php'); break; case 'change_email_post': //change email post osc_csrf_check(); if (!osc_validate_email(Params::getParam('new_email'))) { osc_add_flash_error_message(_m('The specified e-mail is not valid')); $this->redirectTo(osc_change_user_email_url()); } else { $user = User::newInstance()->findByEmail(Params::getParam('new_email')); if (!isset($user['pk_i_id'])) { $userEmailTmp = array(); $userEmailTmp['fk_i_user_id'] = Session::newInstance()->_get('userId'); $userEmailTmp['s_new_email'] = Params::getParam('new_email'); UserEmailTmp::newInstance()->insertOrUpdate($userEmailTmp); $code = osc_genRandomPassword(30); $date = date('Y-m-d H:i:s'); $userManager = new User(); $userManager->update(array('s_pass_code' => $code, 's_pass_date' => $date, 's_pass_ip' => $_SERVER['REMOTE_ADDR']), array('pk_i_id' => Session::newInstance()->_get('userId'))); $validation_url = osc_change_user_email_confirm_url(Session::newInstance()->_get('userId'), $code); osc_run_hook('hook_email_new_email', Params::getParam('new_email'), $validation_url); $this->redirectTo(osc_user_profile_url()); } else { osc_add_flash_error_message(_m('The specified e-mail is already in use')); $this->redirectTo(osc_change_user_email_url()); } } break; case 'change_username': //change username $this->doView('user-change_username.php'); break; case 'change_username_post': //change username $username = osc_sanitize_username(Params::getParam('s_username')); osc_run_hook('before_username_change', Session::newInstance()->_get('userId'), $username); if ($username != '') { $user = User::newInstance()->findByUsername($username); if (isset($user['s_username'])) { osc_add_flash_error_message(_m('The specified username is already in use')); } else { if (!osc_is_username_blacklisted($username)) { User::newInstance()->update(array('s_username' => $username), array('pk_i_id' => Session::newInstance()->_get('userId'))); osc_add_flash_ok_message(_m('The username was updated')); osc_run_hook('after_username_change', Session::newInstance()->_get('userId'), Params::getParam('s_username')); $this->redirectTo(osc_user_profile_url()); } else { osc_add_flash_error_message(_m('The specified username is not valid, it contains some invalid words')); } } } else { osc_add_flash_error_message(_m('The specified username could not be empty')); } $this->redirectTo(osc_change_user_username_url()); break; case 'change_password': //change password $this->doView('user-change_password.php'); break; case 'change_password_post': //change password post osc_csrf_check(); $user = User::newInstance()->findByPrimaryKey(Session::newInstance()->_get('userId')); if (Params::getParam('password', false, false) == '' || Params::getParam('new_password', false, false) == '' || Params::getParam('new_password2', false, false) == '') { osc_add_flash_warning_message(_m('Password cannot be blank')); $this->redirectTo(osc_change_user_password_url()); } if (!osc_verify_password(Params::getParam('password', false, false), $user['s_password'])) { osc_add_flash_error_message(_m("Current password doesn't match")); $this->redirectTo(osc_change_user_password_url()); } if (!Params::getParam('new_password', false, false)) { osc_add_flash_error_message(_m("Passwords can't be empty")); $this->redirectTo(osc_change_user_password_url()); } if (Params::getParam('new_password', false, false) != Params::getParam('new_password2', false, false)) { osc_add_flash_error_message(_m("Passwords don't match")); $this->redirectTo(osc_change_user_password_url()); } User::newInstance()->update(array('s_password' => osc_hash_password(Params::getParam('new_password', false, false))), array('pk_i_id' => Session::newInstance()->_get('userId'))); osc_add_flash_ok_message(_m('Password has been changed')); $this->redirectTo(osc_user_profile_url()); break; case 'items': // view items user $itemsPerPage = Params::getParam('itemsPerPage') != '' ? Params::getParam('itemsPerPage') : 10; $page = Params::getParam('iPage') > 0 ? Params::getParam('iPage') - 1 : 0; $itemType = Params::getParam('itemType'); $total_items = Item::newInstance()->countItemTypesByUserID(osc_logged_user_id(), $itemType); $total_pages = ceil($total_items / $itemsPerPage); $items = Item::newInstance()->findItemTypesByUserID(osc_logged_user_id(), $page * $itemsPerPage, $itemsPerPage, $itemType); $this->_exportVariableToView('items', $items); $this->_exportVariableToView('search_total_pages', $total_pages); $this->_exportVariableToView('search_total_items', $total_items); $this->_exportVariableToView('items_per_page', $itemsPerPage); $this->_exportVariableToView('items_type', $itemType); $this->_exportVariableToView('search_page', $page); $this->doView('user-items.php'); break; case 'activate_alert': $email = Params::getParam('email'); $secret = Params::getParam('secret'); $result = 0; if ($email != '' && $secret != '') { $result = Alerts::newInstance()->activate($email, $secret); } if ($result == 1) { osc_add_flash_ok_message(_m('Alert activated')); } else { osc_add_flash_error_message(_m('Oops! There was a problem trying to activate your alert. Please contact an administrator')); } $this->redirectTo(osc_base_url()); break; case 'unsub_alert': $email = Params::getParam('email'); $secret = Params::getParam('secret'); $id = Params::getParam('id'); $alert = Alerts::newInstance()->findByPrimaryKey($id); $result = 0; if (!empty($alert)) { if ($email == $alert['s_email'] && $secret == $alert['s_secret']) { $result = Alerts::newInstance()->unsub($id); } } if ($result == 1) { osc_add_flash_ok_message(_m('Unsubscribed correctly')); } else { osc_add_flash_error_message(_m('Oops! There was a problem trying to unsubscribe you. Please contact an administrator')); } $this->redirectTo(osc_user_alerts_url()); break; case 'delete': $id = Params::getParam('id'); $secret = Params::getParam('secret'); if (osc_is_web_user_logged_in()) { $user = User::newInstance()->findByPrimaryKey(osc_logged_user_id()); View::newInstance()->_exportVariableToView('user', $user); if (!empty($user) && osc_logged_user_id() == $id && $secret == $user['s_secret']) { User::newInstance()->deleteUser(osc_logged_user_id()); Session::newInstance()->_drop('userId'); Session::newInstance()->_drop('userName'); Session::newInstance()->_drop('userEmail'); Session::newInstance()->_drop('userPhone'); Cookie::newInstance()->pop('oc_userId'); Cookie::newInstance()->pop('oc_userSecret'); Cookie::newInstance()->set(); osc_add_flash_ok_message(_m("Your account have been deleted")); $this->redirectTo(osc_base_url()); } else { osc_add_flash_error_message(_m("Oops! you can not do that")); $this->redirectTo(osc_user_dashboard_url()); } } else { osc_add_flash_error_message(_m("Oops! you can not do that")); $this->redirectTo(osc_base_url()); } break; } }
<ul id="error_list"></ul> <form> <div class="form-horizontal"> <h3 class="render-title"><?php _e('Alerts'); ?> </h3> <div class="form-row"> <?php for ($k = 0; $k < count($aux['alerts']); $k++) { $array_conditions = (array) json_decode(base64_decode($aux['alerts'][$k]['s_search']), true); $raw_data = osc_get_raw_search($array_conditions); $new_search = new Search(); $new_search->setJsonAlert($array_conditions); $new_search->limit(0, 2); $results = $new_search->doSearch(); ?> <div class="form-label"> <?php echo sprintf(__('Alert #%d'), $k + 1); ?> <br/> <?php if (isset($raw_data['sPattern']) && $raw_data['sPattern'] != '') { ?> <?php echo sprintf(__("<b>Pattern:</b> %s"), $raw_data['sPattern']); ?> <br/> <?php }
function __construct($params) { $this->_get = $params; $this->getDBParams(); $mSearch = new Search(true); $mSearch->limit($this->start, $this->limit); $mSearch->order($this->order_by['column_name'], $this->order_by['type'], $this->order_by['table_name']); if (Params::getParam("catId") != "") { $mSearch->addCategory(Params::getParam("catId")); } if ($this->search) { //$mSearch->addConditions(sprintf("(d.s_title LIKE '%%%s%%' OR d.s_description LIKE '%%%s%%')", $this->search, $this->search)); $mSearch->addConditions(sprintf("MATCH(d.s_title, d.s_description) AGAINST('%s' IN BOOLEAN MODE)", $this->search)); } if (@$this->stat['spam']) { $this->extraCols++; $this->sExtraCol['i_num_spam'] = true; $mSearch->addField('SUM(s.`i_num_spam`) as i_num_spam'); $mSearch->addConditions("s.`i_num_spam` > 0"); $mSearch->addConditions(sprintf("%st_item.pk_i_id = s.fk_i_item_id", DB_TABLE_PREFIX)); $mSearch->addTable(sprintf("%st_item_stats s", DB_TABLE_PREFIX)); } if (@$this->stat['duplicated']) { $this->extraCols++; $this->sExtraCol['i_num_repeated'] = true; $mSearch->addField('SUM(s.`i_num_repeated`) as i_num_repeated'); $mSearch->addConditions("s.`i_num_repeated` > 0"); $mSearch->addConditions(sprintf(" %st_item.pk_i_id = s.fk_i_item_id", DB_TABLE_PREFIX)); $mSearch->addTable(sprintf("%st_item_stats s", DB_TABLE_PREFIX)); } if (@$this->stat['bad']) { $this->extraCols++; $this->sExtraCol['i_num_bad_classified'] = true; $mSearch->addField('SUM(s.`i_num_bad_classified`) as i_num_bad_classified'); $mSearch->addConditions("s.`i_num_bad_classified` > 0"); $mSearch->addConditions(sprintf(" %st_item.pk_i_id = s.fk_i_item_id", DB_TABLE_PREFIX)); $mSearch->addTable(sprintf("%st_item_stats s", DB_TABLE_PREFIX)); } if (@$this->stat['offensive']) { $this->extraCols++; $this->sExtraCol['i_num_offensive'] = true; $mSearch->addField('SUM(s.`i_num_offensive`) as i_num_offensive'); $mSearch->addConditions("s.`i_num_offensive` > 0"); $mSearch->addConditions(sprintf(" %st_item.pk_i_id = s.fk_i_item_id", DB_TABLE_PREFIX)); $mSearch->addTable(sprintf("%st_item_stats s", DB_TABLE_PREFIX)); } if (@$this->stat['expired']) { $this->extraCols++; $this->sExtraCol['i_num_expired'] = true; $mSearch->addField('SUM(s.`i_num_expired`) as i_num_expired'); $mSearch->addConditions("s.`i_num_expired` > 0"); $mSearch->addConditions(sprintf(" %st_item.pk_i_id = s.fk_i_item_id", DB_TABLE_PREFIX)); $mSearch->addTable(sprintf("%st_item_stats s", DB_TABLE_PREFIX)); } foreach ($this->filters as $aFilter) { $sFilter = ""; if ($aFilter[1] == 'NULL') { $sFilter .= $aFilter[0] . " IS NULL"; } else { $sFilter .= $aFilter[0] . " = '" . $aFilter[1] . "'"; } $sFilter = sprintf($sFilter, DB_TABLE_PREFIX); $mSearch->addConditions($sFilter); } // do Search $list_items = $mSearch->doSearch(true); $this->result = Item::newInstance()->extendCategoryName(Item::newInstance()->extendData($list_items)); $this->filtered_total = $mSearch->count(); $this->total = count($list_items); //TEMPORARY FIX $this->toDatatablesFormat(); $this->dumpToDatatables(); }
/** * Search * * @url POST /search/item */ public function postItemSearch() { $id = $_POST['id']; $category = $_POST['category']; $country = $_POST['country']; $city = $_POST['city']; $lang = $_POST['lang']; $counter = 0; $mSearch = new Search(); if ($id) { $mSearch->addItemId($id); $counter++; } if ($category) { if ($mSearch->addCategory($category)) { $counter++; } } if ($counter == 0) { return FALSE; } $items = $mSearch->doSearch(FALSE, TRUE); return $items; }
// | Mark Limburg - mlimburg AT users DOT sourceforge DOT net | // | Jason Whittenburg - jwhitten AT securitygeeks DOT com | // +---------------------------------------------------------------------------+ // | | // | This program is free software; you can redistribute it and/or | // | modify it under the terms of the GNU General Public License | // | as published by the Free Software Foundation; either version 2 | // | of the License, or (at your option) any later version. | // | | // | This program is distributed in the hope that it will be useful, | // | but WITHOUT ANY WARRANTY; without even the implied warranty of | // | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | // | GNU General Public License for more details. | // | | // | You should have received a copy of the GNU General Public License | // | along with this program; if not, write to the Free Software Foundation, | // | Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | // | | // +---------------------------------------------------------------------------+ require_once 'lib-common.php'; require_once $_CONF['path_system'] . 'classes/search.class.php'; $searchObj = new Search(); if (isset($_GET['mode']) && $_GET['mode'] == 'search') { $display = COM_siteHeader('menu', $LANG09[11]); $display .= $searchObj->doSearch(); } else { $display = COM_siteHeader('menu', $LANG09[1]); $display .= $searchObj->showForm(); } $display .= COM_siteFooter(); COM_output($display);
// | Mark Limburg - mlimburg AT users DOT sourceforge DOT net | // | Jason Whittenburg - jwhitten AT securitygeeks DOT com | // +---------------------------------------------------------------------------+ // | | // | This program is free software; you can redistribute it and/or | // | modify it under the terms of the GNU General Public License | // | as published by the Free Software Foundation; either version 2 | // | of the License, or (at your option) any later version. | // | | // | This program is distributed in the hope that it will be useful, | // | but WITHOUT ANY WARRANTY; without even the implied warranty of | // | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | // | GNU General Public License for more details. | // | | // | You should have received a copy of the GNU General Public License | // | along with this program; if not, write to the Free Software Foundation, | // | Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | // | | // +---------------------------------------------------------------------------+ require_once __DIR__ . '/lib-common.php'; $searchObj = new Search(); // Figure out topic to display TOPIC_getTopic(); if (isset($_GET['mode']) && $_GET['mode'] === 'search') { $content = $searchObj->doSearch(); $display = COM_createHTMLDocument($content, array('pagetitle' => $LANG09[11])); } else { $content = $searchObj->showForm(); $display = COM_createHTMLDocument($content, array('pagetitle' => $LANG09[1])); } COM_output($display);
<?php // meta tag robots osc_add_hook('header', 'pop_follow_construct'); pop_add_body_class('home'); $listClass = ''; osc_current_web_theme_path('header.php'); ?> <?php $mSearch = new Search(); $aItems = $mSearch->doSearch(); $iTotalItems = $mSearch->count(); $iNumPages = ceil($iTotalItems / osc_default_results_per_page_at_search()); View::newInstance()->_exportVariableToView('search_total_pages', $iNumPages); View::newInstance()->_exportVariableToView('items', $aItems); if (osc_count_items() == 0) { ?> <div class="clear"></div> <p class="empty"><?php _e("There aren't listings available at this moment", 'pop'); ?> </p> <?php } else { ?> <?php View::newInstance()->_exportVariableToView("listType", 'latestItems'); View::newInstance()->_exportVariableToView("listClass", $listClass); osc_current_web_theme_path('loop.php'); ?>
function doModel() { switch ($this->action) { case 'dashboard': //dashboard... $max_items = Params::getParam('max_items') != '' ? Params::getParam('max_items') : 5; $aItems = Item::newInstance()->findByUserIDEnabled(Session::newInstance()->_get('userId'), 0, $max_items); //calling the view... $this->_exportVariableToView('items', $aItems); $this->_exportVariableToView('max_items', $max_items); $this->doView('user-dashboard.php'); break; case 'profile': //profile... $user = User::newInstance()->findByPrimaryKey(Session::newInstance()->_get('userId')); $aCountries = Country::newInstance()->listAll(); $aRegions = array(); if ($user['fk_c_country_code'] != '') { $aRegions = Region::newInstance()->findByCountry($user['fk_c_country_code']); } elseif (count($aCountries) > 0) { $aRegions = Region::newInstance()->findByCountry($aCountries[0]['pk_c_code']); } $aCities = array(); if ($user['fk_i_region_id'] != '') { $aCities = City::newInstance()->findByRegion($user['fk_i_region_id']); } else { if (count($aRegions) > 0) { $aCities = City::newInstance()->findByRegion($aRegions[0]['pk_i_id']); } } //calling the view... $this->_exportVariableToView('countries', $aCountries); $this->_exportVariableToView('regions', $aRegions); $this->_exportVariableToView('cities', $aCities); $this->_exportVariableToView('user', $user); $this->_exportVariableToView('locales', OSCLocale::newInstance()->listAllEnabled()); $this->doView('user-profile.php'); break; case 'profile_post': //profile post... $userId = Session::newInstance()->_get('userId'); require_once LIB_PATH . 'osclass/UserActions.php'; $userActions = new UserActions(false); $success = $userActions->edit($userId); osc_add_flash_ok_message(_m('Your profile has been updated successfully')); $this->redirectTo(osc_user_profile_url()); break; case 'alerts': //alerts $aAlerts = Alerts::newInstance()->findByUser(Session::newInstance()->_get('userId')); $user = User::newInstance()->findByPrimaryKey(Session::newInstance()->_get('userId')); foreach ($aAlerts as $k => $a) { $json = base64_decode($a['s_search']); $array_conditions = (array) json_decode($json); // $search = Search::newInstance(); $search = new Search(); $search->setJsonAlert($array_conditions); $search->limit(0, 3); $aAlerts[$k]['items'] = $search->doSearch(); } $this->_exportVariableToView('alerts', $aAlerts); View::newInstance()->_reset('alerts'); $this->_exportVariableToView('user', $user); $this->doView('user-alerts.php'); break; case 'change_email': //change email $this->doView('user-change_email.php'); break; case 'change_email_post': //change email post if (!preg_match("/^[_a-z0-9-\\+]+(\\.[_a-z0-9-\\+]+)*@[a-z0-9-]+(\\.[a-z0-9-]+)*(\\.[a-z]{2,3})\$/", Params::getParam('new_email'))) { osc_add_flash_error_message(_m('The specified e-mail is not valid')); $this->redirectTo(osc_change_user_email_url()); } else { $user = User::newInstance()->findByEmail(Params::getParam('new_email')); if (!isset($user['pk_i_id'])) { $userEmailTmp = array(); $userEmailTmp['fk_i_user_id'] = Session::newInstance()->_get('userId'); $userEmailTmp['s_new_email'] = Params::getParam('new_email'); UserEmailTmp::newInstance()->insertOrUpdate($userEmailTmp); $code = osc_genRandomPassword(30); $date = date('Y-m-d H:i:s'); $userManager = new User(); $userManager->update(array('s_pass_code' => $code, 's_pass_date' => $date, 's_pass_ip' => $_SERVER['REMOTE_ADDR']), array('pk_i_id' => Session::newInstance()->_get('userId'))); $validation_url = osc_change_user_email_confirm_url(Session::newInstance()->_get('userId'), $code); osc_run_hook('hook_email_new_email', Params::getParam('new_email'), $validation_url); $this->redirectTo(osc_user_profile_url()); } else { osc_add_flash_error_message(_m('The specified e-mail is already in use')); $this->redirectTo(osc_change_user_email_url()); } } break; case 'change_password': //change password $this->doView('user-change_password.php'); break; case 'change_password_post': //change password post $user = User::newInstance()->findByPrimaryKey(Session::newInstance()->_get('userId')); if (Params::getParam('password', false, false) == '' || Params::getParam('new_password', false, false) == '' || Params::getParam('new_password2', false, false) == '') { osc_add_flash_warning_message(_m('Password cannot be blank')); $this->redirectTo(osc_change_user_password_url()); } if ($user['s_password'] != sha1(Params::getParam('password', false, false))) { osc_add_flash_error_message(_m("Current password doesn't match")); $this->redirectTo(osc_change_user_password_url()); } if (!Params::getParam('new_password', false, false)) { osc_add_flash_error_message(_m("Passwords can't be empty")); $this->redirectTo(osc_change_user_password_url()); } if (Params::getParam('new_password', false, false) != Params::getParam('new_password2', false, false)) { osc_add_flash_error_message(_m("Passwords don't match")); $this->redirectTo(osc_change_user_password_url()); } User::newInstance()->update(array('s_password' => sha1(Params::getParam('new_password', false, false))), array('pk_i_id' => Session::newInstance()->_get('userId'))); osc_add_flash_ok_message(_m('Password has been changed')); $this->redirectTo(osc_user_profile_url()); break; case 'items': // view items user $itemsPerPage = Params::getParam('itemsPerPage') != '' ? Params::getParam('itemsPerPage') : 5; $page = Params::getParam('iPage') != '' ? Params::getParam('iPage') : 0; $total_items = Item::newInstance()->countByUserIDEnabled($_SESSION['userId']); $total_pages = ceil($total_items / $itemsPerPage); $items = Item::newInstance()->findByUserIDEnabled($_SESSION['userId'], $page * $itemsPerPage, $itemsPerPage); $this->_exportVariableToView('items', $items); $this->_exportVariableToView('list_total_pages', $total_pages); $this->_exportVariableToView('list_total_items', $total_items); $this->_exportVariableToView('items_per_page', $itemsPerPage); $this->_exportVariableToView('list_page', $page); $this->doView('user-items.php'); break; case 'activate_alert': $email = Params::getParam('email'); $secret = Params::getParam('secret'); $result = 0; if ($email != '' && $secret != '') { $result = Alerts::newInstance()->activate($email, $secret); } if ($result == 1) { osc_add_flash_ok_message(_m('Alert activated')); } else { osc_add_flash_error_message(_m('Oops! There was a problem trying to activate your alert. Please contact an administrator')); } $this->redirectTo(osc_base_url()); break; case 'unsub_alert': $email = Params::getParam('email'); $secret = Params::getParam('secret'); if ($email != '' && $secret != '') { Alerts::newInstance()->delete(array('s_email' => $email, 's_secret' => $secret)); osc_add_flash_ok_message(_m('Unsubscribed correctly')); } else { osc_add_flash_error_message(_m('Oops! There was a problem trying to unsubscribe you. Please contact an administrator')); } $this->redirectTo(osc_user_alerts_url()); break; case 'deleteResource': $id = Params::getParam('id'); $name = Params::getParam('name'); $fkid = Params::getParam('fkid'); $resource = ItemResource::newInstance()->findByPrimaryKey($id); $item = Item::newInstance()->findByPrimaryKey($fkid); if ($resource && $item) { if ($resource['fk_i_item_id'] == $fkid && $item['fk_i_user_id'] == osc_logged_user_id()) { // Delete: file, db table entry osc_deleteResource($id, false); Log::newInstance()->insertLog('user', 'deleteResource', $id, $id, 'user', osc_logged_user_id()); ItemResource::newInstance()->delete(array('pk_i_id' => $id, 'fk_i_item_id' => $item, 's_name' => $name)); osc_add_flash_ok_message(_m('The selected photo has been successfully deleted')); } else { osc_add_flash_error_message(_m("The selected photo does not belong to you")); } } else { osc_add_flash_error_message(_m("The selected photo couldn't be deleted")); } $this->redirectTo(osc_base_url(true) . "?page=item&action=item_edit&id=" . $fkid); break; } }
function seo_sitemap_generator() { $start_time = microtime(true); $min = 1; $show_items = ''; if (Params::getParam('sitemap_items') != '') { $show_items = Params::getParam('sitemap_items'); } else { $show_items = osc_get_preference('allSeo_sitemap_items', 'plugin-all_in_one') != '' ? osc_get_preference('allSeo_sitemap_items', 'plugin-all_in_one') : ''; } $limit_items = ''; if (Params::getParam('sitemap_items_limit') != '') { $limit_items = Params::getParam('sitemap_items_limit'); } else { $limit_items = osc_get_preference('allSeo_sitemap_items_limit', 'plugin-all_in_one') != '' ? osc_get_preference('allSeo_sitemap_items_limit', 'plugin-all_in_one') : ''; } $limit_items = intval($limit_items); $locales = osc_get_locales(); $filename = osc_base_path() . 'sitemap.xml'; //link sitemap @unlink($filename); //remove original sitemap $start_xml = '<?xml version="1.0" encoding="UTF-8"?>' . PHP_EOL . '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' . PHP_EOL; file_put_contents($filename, $start_xml); // INDEX seo_sitemap_add_url(osc_base_url(), date('Y-m-d'), 'always'); $categories = Category::newInstance()->listAll(false); $countries = Country::newInstance()->listAll(); foreach ($categories as $c) { $search = new Search(); $search->addCategory($c['pk_i_id']); if ($search->count() >= $min) { seo_sitemap_add_url(osc_search_url(array('sCategory' => $c['s_slug'])), date('Y-m-d'), 'hourly'); foreach ($countries as $country) { if (count($countries) > 1) { $search = new Search(); $search->addCategory($c['pk_i_id']); $search->addCountry($country['pk_c_code']); if ($search->count() > $min) { seo_sitemap_add_url(osc_search_url(array('sCategory' => $c['s_slug'], 'sCountry' => $country['s_name'])), date('Y-m-d'), 'hourly'); } } $regions = Region::newInstance()->findByCountry($country['pk_c_code']); foreach ($regions as $region) { $search = new Search(); $search->addCategory($c['pk_i_id']); $search->addCountry($country['pk_c_code']); $search->addRegion($region['pk_i_id']); if ($search->count() > $min) { seo_sitemap_add_url(osc_search_url(array('sCategory' => $c['s_slug'], 'sCountry' => $country['s_name'], 'sRegion' => $region['s_name'])), date('Y-m-d'), 'hourly'); $cities = City::newInstance()->findByRegion($region['pk_i_id']); foreach ($cities as $city) { $search = new Search(); $search->addCategory($c['pk_i_id']); $search->addCountry($country['pk_c_code']); $search->addRegion($region['pk_i_id']); $search->addCity($city['pk_i_id']); if ($search->count() > $min) { seo_sitemap_add_url(osc_search_url(array('sCategory' => $c['s_slug'], 'sCountry' => $country['s_name'], 'sRegion' => $region['s_name'], 'sCity' => $city['s_name'])), date('Y-m-d'), 'hourly'); } } } } } } } foreach ($countries as $country) { $regions = Region::newInstance()->findByCountry($country['pk_c_code']); foreach ($regions as $region) { $cities = CityStats::newInstance()->listCities($region['pk_i_id']); $l = min(count($cities), 30); for ($k = 0; $k < $l; $k++) { if ($cities[$k]['items'] > $min) { seo_sitemap_add_url(osc_search_url(array('sCountry' => $country['s_name'], 'sRegion' => $region['s_name'], 'sCity' => $cities[$k]['city_name'])), date('Y-m-d'), 'hourly'); } } } } // ITEMS if ($show_items == 1) { $max_secure = 10000; $mSearch = new Search(); $mSearch->limit(0, $limit_items); // fetch number of item for sitemap $aItems = $mSearch->doSearch(); View::newInstance()->_exportVariableToView('items', $aItems); //exporting our searched item array if (osc_count_items() > 0) { $i = 0; while (osc_has_items() and $i < $limit_items and $i < $max_secure) { seo_sitemap_add_url(osc_item_url(), substr(osc_item_mod_date() != '' ? osc_item_mod_date() : osc_item_pub_date(), 0, 10), 'daily'); $i++; } } } $end_xml = '</urlset>'; file_put_contents($filename, $end_xml, FILE_APPEND); // PING SEARCH ENGINES seo_sitemap_ping_engines(); $time_elapsed = microtime(true) - $start_time; return $time_elapsed; }
/** * Gets number of latest items * * @return int */ function osc_count_latest_items() { if (!View::newInstance()->_exists('items')) { $search = new Search(); $search->limit(0, osc_max_latest_items()); View::newInstance()->_exportVariableToView('items', $search->doSearch(true)); } return osc_priv_count_items(); }
if (ApiHandler::validKey()) { $search = new Search(); $base->getUser()->getUserByApiKey($_GET['apikey']); echo ApiHandler::sendResponse(200, true, $search->doArtistSearch($id, $base->getUser())); } else { ApiHandler::notAuthenticated(); } }); /** * Search for a given query */ $app->get('/api/v1/search/:query(/:count(/:page))', function ($query, $count = 30, $page = 1) use($base) { if (ApiHandler::validKey()) { $search = new Search(); $base->getUser()->getUserByApiKey($_GET['apikey']); echo ApiHandler::sendResponse(200, true, $search->doSearch($query, $count, $page, $base->getUser())); } else { ApiHandler::notAuthenticated(); } }); /** * Player */ $app->get('/api/v1/player/next', function () { $player = new Player(); $song = $player->playNextSong(); if ($song !== false) { ApiHandler::sendResponse(200, true, array('token' => $song)); } else { ApiHandler::sendResponse(200, false); }