From 1e13553ce6bda1d267458c55b8e59bab3796b9d2 Mon Sep 17 00:00:00 2001 From: Darko Date: Fri, 17 Mar 2017 12:15:13 +0100 Subject: [PATCH] Compatibility + Formatting /* reminder: also merge into /gui */ question: - some functions and their hooks are wrapped in if function_exists condition, not sure if all the hooks should be like that (potentially preventing them to be called twice) or move them outside, or just leave it as it is? observation: - ` //osc_add_hook('search_ads_listing_top', 'search_ads_listing_top_fn');` hook can be removed --- functions.php | 1091 +++++++++++++++++++++++++------------------------ 1 file changed, 561 insertions(+), 530 deletions(-) diff --git a/functions.php b/functions.php index af1fdae..1fe4e65 100755 --- a/functions.php +++ b/functions.php @@ -1,494 +1,510 @@ . - */ +/* + * Osclass – software for creating and publishing online classified + * advertising platforms + * + * Copyright (C) 2014 OSCLASS + * + * This program is free software: you can redistribute it and/or + * modify it under the terms of the GNU Affero General Public License + * as published by the Free Software Foundation, either version 3 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 Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this program. If not, see . + */ /** - DEFINES - */ + +if(!defined('BENDER_THEME_VERSION')) { define('BENDER_THEME_VERSION', '314'); - if( (string)osc_get_preference('keyword_placeholder', 'bender')=="" ) { - Params::setParam('keyword_placeholder', __('ie. PHP Programmer', 'bender') ) ; - } - osc_register_script('fancybox', osc_current_web_theme_url('js/fancybox/jquery.fancybox.pack.js'), array('jquery')); - osc_enqueue_style('fancybox', osc_current_web_theme_url('js/fancybox/jquery.fancybox.css')); - osc_enqueue_script('fancybox'); +} - osc_enqueue_style('font-awesome', osc_current_web_theme_url('css/font-awesome-4.1.0/css/font-awesome.min.css')); - // used for date/dateinterval custom fields - osc_enqueue_script('php-date'); - if(!OC_ADMIN) { - osc_enqueue_style('fine-uploader-css', osc_assets_url('js/fineuploader/fineuploader.css')); - osc_enqueue_style('bender-fine-uploader-css', osc_current_web_theme_url('css/ajax-uploader.css')); - } - osc_enqueue_script('jquery-fineuploader'); +if( (string)osc_get_preference('keyword_placeholder', 'bender')=="" ) { + Params::setParam('keyword_placeholder', __('ie. PHP Programmer', 'bender') ) ; +} +osc_register_script('fancybox', osc_current_web_theme_url('js/fancybox/jquery.fancybox.pack.js'), array('jquery')); +osc_enqueue_style('fancybox', osc_current_web_theme_url('js/fancybox/jquery.fancybox.css')); +osc_enqueue_script('fancybox'); -/** +osc_enqueue_style('font-awesome', osc_current_web_theme_url('css/font-awesome-4.1.0/css/font-awesome.min.css')); -FUNCTIONS +// used for date/dateinterval custom fields +osc_enqueue_script('php-date'); + +if(!OC_ADMIN) { + osc_enqueue_style('fine-uploader-css', osc_assets_url('js/fineuploader/fineuploader.css')); + osc_enqueue_style('bender-fine-uploader-css', osc_current_web_theme_url('css/ajax-uploader.css')); +} +osc_enqueue_script('jquery-fineuploader'); +/** +FUNCTIONS */ - // install options - if( !function_exists('bender_theme_install') ) { - function bender_theme_install() { - osc_set_preference('keyword_placeholder', Params::getParam('keyword_placeholder'), 'bender'); - osc_set_preference('version', BENDER_THEME_VERSION, 'bender'); - osc_set_preference('footer_link', '1', 'bender'); - osc_set_preference('donation', '0', 'bender'); - osc_set_preference('defaultShowAs@all', 'list', 'bender'); - osc_set_preference('defaultShowAs@search', 'list'); - osc_set_preference('defaultLocationShowAs', 'dropdown', 'bender'); // dropdown / autocomplete - osc_reset_preferences(); - } - } - // update options - if( !function_exists('bender_theme_update') ) { - function bender_theme_update($current_version) { - if($current_version==0) { - bender_theme_install(); - } - osc_delete_preference('default_logo', 'bender'); - - $logo_prefence = osc_get_preference('logo', 'bender'); - $logo_name = 'bender_logo'; - $temp_name = WebThemes::newInstance()->getCurrentThemePath() . 'images/logo.jpg'; - if( file_exists( $temp_name ) && !$logo_prefence) { - - $img = ImageResizer::fromFile($temp_name); - $ext = $img->getExt(); - $logo_name .= '.'.$ext; - $img->saveToFile(osc_uploads_path().$logo_name); - osc_set_preference('logo', $logo_name, 'bender'); - } - osc_set_preference('version', '301', 'bender'); +// install options +if( !function_exists('bender_theme_install') ) { + function bender_theme_install() { + osc_set_preference('keyword_placeholder', Params::getParam('keyword_placeholder'), 'bender'); + osc_set_preference('version', BENDER_THEME_VERSION, 'bender'); + osc_set_preference('footer_link', '1', 'bender'); + osc_set_preference('donation', '0', 'bender'); + osc_set_preference('defaultShowAs@all', 'list', 'bender'); + osc_set_preference('defaultShowAs@search', 'list'); + osc_set_preference('defaultLocationShowAs', 'dropdown', 'bender'); // dropdown / autocomplete + osc_reset_preferences(); + } +} - if($current_version<313 || $current_version=='3.0.1') { - // add preferences - osc_set_preference('defaultLocationShowAs', 'dropdown', 'bender'); - osc_set_preference('version', '313', 'bender'); - } - osc_set_preference('version', '314', 'bender'); - osc_reset_preferences(); - } - } - if(!function_exists('check_install_bender_theme')) { - function check_install_bender_theme() { - $current_version = osc_get_preference('version', 'bender'); - //check if current version is installed or need an update< - if( $current_version=='' ) { - bender_theme_update(0); - } else if($current_version < BENDER_THEME_VERSION){ - bender_theme_update($current_version); - } +// update options +if( !function_exists('bender_theme_update') ) { + function bender_theme_update($current_version) { + if($current_version==0) { + bender_theme_install(); } - } + osc_delete_preference('default_logo', 'bender'); - if(!function_exists('bender_add_body_class_construct')) { - function bender_add_body_class_construct($classes){ - $benderBodyClass = benderBodyClass::newInstance(); - $classes = array_merge($classes, $benderBodyClass->get()); - return $classes; + $logo_prefence = osc_get_preference('logo', 'bender'); + $logo_name = 'bender_logo'; + $temp_name = WebThemes::newInstance()->getCurrentThemePath() . 'images/logo.jpg'; + if( file_exists( $temp_name ) && !$logo_prefence) { + + $img = ImageResizer::fromFile($temp_name); + $ext = $img->getExt(); + $logo_name .= '.'.$ext; + $img->saveToFile(osc_uploads_path().$logo_name); + osc_set_preference('logo', $logo_name, 'bender'); } - } - if(!function_exists('bender_body_class')) { - function bender_body_class($echo = true){ - /** - * Print body classes. - * - * @param string $echo Optional parameter. - * @return print string with all body classes concatenated - */ - osc_add_filter('bender_bodyClass','bender_add_body_class_construct'); - $classes = osc_apply_filter('bender_bodyClass', array()); - if($echo && count($classes)){ - echo 'class="'.implode(' ',$classes).'"'; - } else { - return $classes; - } + osc_set_preference('version', '301', 'bender'); + + if($current_version<313 || $current_version=='3.0.1') { + // add preferences + osc_set_preference('defaultLocationShowAs', 'dropdown', 'bender'); + osc_set_preference('version', '313', 'bender'); } + osc_set_preference('version', '314', 'bender'); + osc_reset_preferences(); } - if(!function_exists('bender_add_body_class')) { - function bender_add_body_class($class){ - /** - * Add new body class to body class array. - * - * @param string $class required parameter. - */ - $benderBodyClass = benderBodyClass::newInstance(); - $benderBodyClass->add($class); +} + +if(!function_exists('check_install_bender_theme')) { + function check_install_bender_theme() { + $current_version = osc_get_preference('version', 'bender'); + //check if current version is installed or need an update< + if( $current_version=='' ) { + bender_theme_update(0); + } else if($current_version < BENDER_THEME_VERSION) { + bender_theme_update($current_version); } } - if(!function_exists('bender_nofollow_construct')) { +} + +if(!function_exists('bender_add_body_class_construct')) { + function bender_add_body_class_construct($classes) { + $benderBodyClass = benderBodyClass::newInstance(); + $classes = array_merge($classes, $benderBodyClass->get()); + return $classes; + } +} + +if(!function_exists('bender_body_class')) { + function bender_body_class($echo = true) { /** - * Hook for header, meta tags robots nofollos + * Print body classes. + * + * @param string $echo Optional parameter. + * @return print string with all body classes concatenated */ - function bender_nofollow_construct() { - echo '' . PHP_EOL; - echo '' . PHP_EOL; - + osc_add_filter('bender_bodyClass','bender_add_body_class_construct'); + $classes = osc_apply_filter('bender_bodyClass', array()); + if($echo && count($classes)) { + echo 'class="'.implode(' ',$classes).'"'; + } else { + return $classes; } } - if( !function_exists('bender_follow_construct') ) { +} + +if(!function_exists('bender_add_body_class')) { + function bender_add_body_class($class) { /** - * Hook for header, meta tags robots follow + * Add new body class to body class array. + * + * @param string $class required parameter. */ - function bender_follow_construct() { - echo '' . PHP_EOL; - echo '' . PHP_EOL; + $benderBodyClass = benderBodyClass::newInstance(); + $benderBodyClass->add($class); + } +} + +if(!function_exists('bender_nofollow_construct')) { + /** + * Hook for header, meta tags robots nofollos + */ + function bender_nofollow_construct() { + echo '' . PHP_EOL; + echo '' . PHP_EOL; - } } - /* logo */ - if( !function_exists('logo_header') ) { - function logo_header() { - $logo = osc_get_preference('logo','bender'); - $html = '' . osc_page_title() . ''; - if( $logo!='' && file_exists( osc_uploads_path() . $logo ) ) { - return $html; - } else { - return ''.osc_page_title().''; - } - } +} + +if( !function_exists('bender_follow_construct') ) { + /** + * Hook for header, meta tags robots follow + */ + function bender_follow_construct() { + echo '' . PHP_EOL; + echo '' . PHP_EOL; + } - /* logo */ - if( !function_exists('bender_logo_url') ) { - function bender_logo_url() { - $logo = osc_get_preference('logo','bender'); - if( $logo ) { - return osc_uploads_url($logo); - } - return false; +} + +// logo +if( !function_exists('logo_header') ) { + function logo_header() { + $logo = osc_get_preference('logo','bender'); + $html = '' . osc_page_title() . ''; + + if( $logo!='' && file_exists( osc_uploads_path() . $logo ) ) { + return $html; + } else { + return ''.osc_page_title().''; } } - if( !function_exists('bender_draw_item') ) { - function bender_draw_item($class = false,$admin = false, $premium = false) { - $filename = 'loop-single'; - if($premium){ - $filename .='-premium'; - } - require WebThemes::newInstance()->getCurrentThemePath().$filename.'.php'; +} + +// logo url +if( !function_exists('bender_logo_url') ) { + function bender_logo_url() { + $logo = osc_get_preference('logo','bender'); + if( $logo ) { + return osc_uploads_url($logo); } + return false; } - if( !function_exists('bender_show_as') ){ - function bender_show_as(){ - - $p_sShowAs = Params::getParam('sShowAs'); - $aValidShowAsValues = array('list', 'gallery'); - if (!in_array($p_sShowAs, $aValidShowAsValues)) { - $p_sShowAs = bender_default_show_as(); - } +} - return $p_sShowAs; +if( !function_exists('bender_draw_item') ) { + function bender_draw_item($class = false,$admin = false, $premium = false) { + $filename = 'loop-single'; + if($premium) { + $filename .='-premium'; } + require WebThemes::newInstance()->getCurrentThemePath().$filename.'.php'; } - if( !function_exists('bender_default_show_as') ){ - function bender_default_show_as(){ - return getPreference('defaultShowAs@all','bender'); +} + +if( !function_exists('bender_show_as') ) { + function bender_show_as() { + + $p_sShowAs = Params::getParam('sShowAs'); + $aValidShowAsValues = array('list', 'gallery'); + if (!in_array($p_sShowAs, $aValidShowAsValues)) { + $p_sShowAs = bender_default_show_as(); } + + return $p_sShowAs; } - if( !function_exists('bender_default_location_show_as') ){ - function bender_default_location_show_as(){ - return osc_get_preference('defaultLocationShowAs','bender'); - } +} + +if( !function_exists('bender_default_show_as') ) { + function bender_default_show_as() { + return getPreference('defaultShowAs@all','bender'); } - if( !function_exists('bender_draw_categories_list') ) { - function bender_draw_categories_list(){ ?> - '; } ?> - +if( !function_exists('bender_draw_categories_list') ) { + function bender_draw_categories_list() { ?> + '; } ?> 0) { echo ''; } - if($i == 0) { - echo '
'; - } else { - echo '
'; - } - } + //cell_3 + $total_categories = osc_count_categories(); + $col1_max_cat = ceil($total_categories/3); + + osc_goto_first_category(); + $i = 0; + + while ( osc_has_categories() ) { ?> -
    -
  • -

    - 0 ) { ?> - - - 0) { ?> - () - - () - -

    - 0 ) { ?> -
      - -
    • - 0 ) { ?> - () - - () - -
    • - -
    - -
  • -
- 0) { echo '
'; } + if($i == 0) { + echo '
'; + } else { + echo '
'; } - echo '
'; - ?> - '; } ?> - +
    +
  • +

    + 0 ) { ?> + + + 0) { ?> + () + + () + +

    + 0 ) { ?> +
      + +
    • + 0 ) { ?> + () + + () + +
    • + +
    + +
  • +
+ '; + ?> + '; } ?> + osc_search_total_items() ) { - $search_to = osc_search_total_items(); - } +} + +if( !function_exists('bender_search_number') ) { + function bender_search_number() { + $search_from = ((osc_search_page() * osc_default_results_per_page_at_search()) + 1); + $search_to = ((osc_search_page() + 1) * osc_default_results_per_page_at_search()); + if( $search_to > osc_search_total_items() ) { + $search_to = osc_search_total_items(); + } + + return array( + 'from' => $search_from, + 'to' => $search_to, + 'of' => osc_search_total_items() + ); + } +} - return array( - 'from' => $search_from, - 'to' => $search_to, - 'of' => osc_search_total_items() - ); - } - } - /* - * Helpers used at view - */ - if( !function_exists('bender_item_title') ) { - function bender_item_title() { - $title = osc_item_title(); - foreach( osc_get_locales() as $locale ) { - if( Session::newInstance()->_getForm('title') != "" ) { - $title_ = Session::newInstance()->_getForm('title'); - if( @$title_[$locale['pk_c_code']] != "" ){ - $title = $title_[$locale['pk_c_code']]; - } +//Helpers used at view + +if( !function_exists('bender_item_title') ) { + function bender_item_title() { + $title = osc_item_title(); + foreach( osc_get_locales() as $locale ) { + if( Session::newInstance()->_getForm('title') != "" ) { + $title_ = Session::newInstance()->_getForm('title'); + if( @$title_[$locale['pk_c_code']] != "" ) { + $title = $title_[$locale['pk_c_code']]; } } - return $title; - } - } - if( !function_exists('bender_item_description') ) { - function bender_item_description() { - $description = osc_item_description(); - foreach( osc_get_locales() as $locale ) { - if( Session::newInstance()->_getForm('description') != "" ) { - $description_ = Session::newInstance()->_getForm('description'); - if( @$description_[$locale['pk_c_code']] != "" ){ - $description = $description_[$locale['pk_c_code']]; - } + } + return $title; + } +} + +if( !function_exists('bender_item_description') ) { + function bender_item_description() { + $description = osc_item_description(); + foreach( osc_get_locales() as $locale ) { + if( Session::newInstance()->_getForm('description') != "" ) { + $description_ = Session::newInstance()->_getForm('description'); + if( @$description_[$locale['pk_c_code']] != "" ) { + $description = $description_[$locale['pk_c_code']]; } } - return $description; } + return $description; } - if( !function_exists('related_listings') ) { - 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'); +if( !function_exists('related_listings') ) { + function related_listings() { + View::newInstance()->_exportVariableToView('items', array()); - $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); + $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'); - return 0; + $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; } +} - if( !function_exists('osc_is_contact_page') ) { - function osc_is_contact_page() { - if( Rewrite::newInstance()->get_location() === 'contact' ) { - return true; - } +if( !function_exists('osc_is_contact_page') ) { + function osc_is_contact_page() { + if( Rewrite::newInstance()->get_location() === 'contact' ) { + return true; + } - return false; - } - } - - if( !function_exists('get_breadcrumb_lang') ) { - function get_breadcrumb_lang() { - $lang = array(); - $lang['item_add'] = __('Publish a listing', 'bender'); - $lang['item_edit'] = __('Edit your listing', 'bender'); - $lang['item_send_friend'] = __('Send to a friend', 'bender'); - $lang['item_contact'] = __('Contact publisher', 'bender'); - $lang['search'] = __('Search results', 'bender'); - $lang['search_pattern'] = __('Search results: %s', 'bender'); - $lang['user_dashboard'] = __('Dashboard', 'bender'); - $lang['user_dashboard_profile'] = __("%s's profile", 'bender'); - $lang['user_account'] = __('Account', 'bender'); - $lang['user_items'] = __('Listings', 'bender'); - $lang['user_alerts'] = __('Alerts', 'bender'); - $lang['user_profile'] = __('Update account', 'bender'); - $lang['user_change_email'] = __('Change email', 'bender'); - $lang['user_change_username'] = __('Change username', 'bender'); - $lang['user_change_password'] = __('Change password', 'bender'); - $lang['login'] = __('Login', 'bender'); - $lang['login_recover'] = __('Recover password', 'bender'); - $lang['login_forgot'] = __('Change password', 'bender'); - $lang['register'] = __('Create a new account', 'bender'); - $lang['contact'] = __('Contact', 'bender'); - return $lang; - } - } - - if(!function_exists('user_dashboard_redirect')) { - function user_dashboard_redirect() { - $page = Params::getParam('page'); - $action = Params::getParam('action'); - if($page=='user' && $action=='dashboard') { - if(ob_get_length()>0) { - ob_end_flush(); - } - header("Location: ".osc_user_list_items_url(), TRUE,301); + return false; + } +} + +if( !function_exists('get_breadcrumb_lang') ) { + function get_breadcrumb_lang() { + $lang = array(); + $lang['item_add'] = __('Publish a listing', 'bender'); + $lang['item_edit'] = __('Edit your listing', 'bender'); + $lang['item_send_friend'] = __('Send to a friend', 'bender'); + $lang['item_contact'] = __('Contact publisher', 'bender'); + $lang['search'] = __('Search results', 'bender'); + $lang['search_pattern'] = __('Search results: %s', 'bender'); + $lang['user_dashboard'] = __('Dashboard', 'bender'); + $lang['user_dashboard_profile'] = __("%s's profile", 'bender'); + $lang['user_account'] = __('Account', 'bender'); + $lang['user_items'] = __('Listings', 'bender'); + $lang['user_alerts'] = __('Alerts', 'bender'); + $lang['user_profile'] = __('Update account', 'bender'); + $lang['user_change_email'] = __('Change email', 'bender'); + $lang['user_change_username'] = __('Change username', 'bender'); + $lang['user_change_password'] = __('Change password', 'bender'); + $lang['login'] = __('Login', 'bender'); + $lang['login_recover'] = __('Recover password', 'bender'); + $lang['login_forgot'] = __('Change password', 'bender'); + $lang['register'] = __('Create a new account', 'bender'); + $lang['contact'] = __('Contact', 'bender'); + return $lang; + } +} + +if(!function_exists('user_dashboard_redirect')) { + function user_dashboard_redirect() { + $page = Params::getParam('page'); + $action = Params::getParam('action'); + if($page=='user' && $action=='dashboard') { + if(ob_get_length()>0) { + ob_end_flush(); } + header("Location: ".osc_user_list_items_url(), TRUE,301); } - osc_add_hook('init', 'user_dashboard_redirect'); - } - - if( !function_exists('get_user_menu') ) { - function get_user_menu() { - $options = array(); - $options[] = array( - 'name' => __('Public Profile'), - 'url' => osc_user_public_profile_url(), - 'class' => 'opt_publicprofile' - ); - $options[] = array( - 'name' => __('Listings', 'bender'), - 'url' => osc_user_list_items_url(), - 'class' => 'opt_items' - ); - $options[] = array( - 'name' => __('Alerts', 'bender'), - 'url' => osc_user_alerts_url(), - 'class' => 'opt_alerts' - ); - $options[] = array( - 'name' => __('Account', 'bender'), - 'url' => osc_user_profile_url(), - 'class' => 'opt_account' - ); - $options[] = array( - 'name' => __('Change email', 'bender'), - 'url' => osc_change_user_email_url(), - 'class' => 'opt_change_email' - ); - $options[] = array( - 'name' => __('Change username', 'bender'), - 'url' => osc_change_user_username_url(), - 'class' => 'opt_change_username' - ); - $options[] = array( - 'name' => __('Change password', 'bender'), - 'url' => osc_change_user_password_url(), - 'class' => 'opt_change_password' - ); - $options[] = array( - 'name' => __('Delete account', 'bender'), - 'url' => '#', - 'class' => 'opt_delete_account' - ); - - return $options; - } - } - - if( !function_exists('delete_user_js') ) { - function delete_user_js() { - $location = Rewrite::newInstance()->get_location(); - $section = Rewrite::newInstance()->get_section(); - if( ($location === 'user' && in_array($section, array('dashboard', 'profile', 'alerts', 'change_email', 'change_username', 'change_password', 'items'))) || (Params::getParam('page') ==='custom' && Params::getParam('in_user_menu')==true ) ) { - osc_enqueue_script('delete-user-js'); - } + } + osc_add_hook('init', 'user_dashboard_redirect'); +} + +if( !function_exists('get_user_menu') ) { + function get_user_menu() { + $options = array(); + $options[] = array( + 'name' => __('Public Profile'), + 'url' => osc_user_public_profile_url(), + 'class' => 'opt_publicprofile' + ); + $options[] = array( + 'name' => __('Listings', 'bender'), + 'url' => osc_user_list_items_url(), + 'class' => 'opt_items' + ); + $options[] = array( + 'name' => __('Alerts', 'bender'), + 'url' => osc_user_alerts_url(), + 'class' => 'opt_alerts' + ); + $options[] = array( + 'name' => __('Account', 'bender'), + 'url' => osc_user_profile_url(), + 'class' => 'opt_account' + ); + $options[] = array( + 'name' => __('Change email', 'bender'), + 'url' => osc_change_user_email_url(), + 'class' => 'opt_change_email' + ); + $options[] = array( + 'name' => __('Change username', 'bender'), + 'url' => osc_change_user_username_url(), + 'class' => 'opt_change_username' + ); + $options[] = array( + 'name' => __('Change password', 'bender'), + 'url' => osc_change_user_password_url(), + 'class' => 'opt_change_password' + ); + $options[] = array( + 'name' => __('Delete account', 'bender'), + 'url' => '#', + 'class' => 'opt_delete_account' + ); + + return $options; + } +} + +if( !function_exists('delete_user_js') ) { + function delete_user_js() { + $location = Rewrite::newInstance()->get_location(); + $section = Rewrite::newInstance()->get_section(); + if( ($location === 'user' && in_array($section, array('dashboard', 'profile', 'alerts', 'change_email', 'change_username', 'change_password', 'items'))) || (Params::getParam('page') ==='custom' && Params::getParam('in_user_menu')==true ) ) { + osc_enqueue_script('delete-user-js'); } - osc_add_hook('header', 'delete_user_js', 1); } + osc_add_hook('header', 'delete_user_js', 1); +} - if( !function_exists('user_info_js') ) { - function user_info_js() { - $location = Rewrite::newInstance()->get_location(); - $section = Rewrite::newInstance()->get_section(); +if( !function_exists('user_info_js') ) { + function user_info_js() { + $location = Rewrite::newInstance()->get_location(); + $section = Rewrite::newInstance()->get_section(); - if( $location === 'user' && in_array($section, array('dashboard', 'profile', 'alerts', 'change_email', 'change_username', 'change_password', 'items')) ) { - $user = User::newInstance()->findByPrimaryKey( Session::newInstance()->_get('userId') ); - View::newInstance()->_exportVariableToView('user', $user); - ?> + if( $location === 'user' && in_array($section, array('dashboard', 'profile', 'alerts', 'change_email', 'change_username', 'change_password', 'items')) ) { + $user = User::newInstance()->findByPrimaryKey( Session::newInstance()->_get('userId') ); + View::newInstance()->_exportVariableToView('user', $user); + ?> - get_location() === 'user') && (Rewrite::newInstance()->get_section() === 'dashboard') ) { header('Location: ' .osc_user_list_items_url()); exit; } } +} + +if (!function_exists('bender_delete') ) { function bender_delete() { Preference::newInstance()->delete(array('s_section' => 'bender')); } +} - osc_add_hook('init', 'bender_redirect_user_dashboard', 2); - osc_add_hook('init_admin', 'theme_bender_actions_admin'); - osc_add_hook('theme_delete_bender', 'bender_delete'); - osc_admin_menu_appearance(__('Header logo', 'bender'), osc_admin_render_theme_url('oc-content/themes/bender/admin/header.php'), 'header_bender'); - osc_admin_menu_appearance(__('Theme settings', 'bender'), osc_admin_render_theme_url('oc-content/themes/bender/admin/settings.php'), 'settings_bender'); /** +HOOKS +*/ -TRIGGER FUNCTIONS +osc_add_hook('init', 'bender_redirect_user_dashboard', 2); +osc_add_hook('init_admin', 'theme_bender_actions_admin'); +osc_add_hook('theme_delete_bender', 'bender_delete'); +osc_admin_menu_appearance(__('Header logo', 'bender'), osc_admin_render_theme_url('oc-content/themes/bender/admin/header.php'), 'header_bender'); +osc_admin_menu_appearance(__('Theme settings', 'bender'), osc_admin_render_theme_url('oc-content/themes/bender/admin/settings.php'), 'settings_bender'); +/** +TRIGGER FUNCTIONS */ + check_install_bender_theme(); -if(osc_is_home_page()){ + +if(osc_is_home_page()) { osc_add_hook('inside-main','bender_draw_categories_list'); -} else if( osc_is_static_page() || osc_is_contact_page() ){ +} else if( osc_is_static_page() || osc_is_contact_page() ) { osc_add_hook('before-content','bender_draw_categories_list'); } -if(osc_is_home_page() || osc_is_search_page()){ +if(osc_is_home_page() || osc_is_search_page()) { bender_add_body_class('has-searchbox'); } +if (!function_exists('bender_sidebar_category_search') ) { + function bender_sidebar_category_search($catId = null) { + $aCategories = array(); + if($catId==null) { + $aCategories[] = Category::newInstance()->findRootCategoriesEnabled(); + } else { + // if parent category, only show parent categories + $aCategories = Category::newInstance()->toRootTree($catId); + end($aCategories); + $cat = current($aCategories); + // if is parent of some category + $childCategories = Category::newInstance()->findSubcategoriesEnabled($cat['pk_i_id']); + if(count($childCategories) > 0) { + $aCategories[] = $childCategories; + } + } -function bender_sidebar_category_search($catId = null) -{ - $aCategories = array(); - if($catId==null) { - $aCategories[] = Category::newInstance()->findRootCategoriesEnabled(); - } else { - // if parent category, only show parent categories - $aCategories = Category::newInstance()->toRootTree($catId); - end($aCategories); - $cat = current($aCategories); - // if is parent of some category - $childCategories = Category::newInstance()->findSubcategoriesEnabled($cat['pk_i_id']); - if(count($childCategories) > 0) { - $aCategories[] = $childCategories; + if(count($aCategories) == 0) { + return ""; } - } - if(count($aCategories) == 0) { - return ""; + bender_print_sidebar_category_search($aCategories, $catId); } - - bender_print_sidebar_category_search($aCategories, $catId); } -function bender_print_sidebar_category_search($aCategories, $current_category = null, $i = 0) -{ - $class = ''; - if(!isset($aCategories[$i])) { - return null; - } - - if($i===0) { - $class = 'class="category"'; - } - - $c = $aCategories[$i]; - $i++; - if(!isset($c['pk_i_id'])) { - echo '"; + ?> + + - -class = array(); - } + /** + * Custom Class for add, remove or get body classes. + * + * @param string $instance used for singleton. + * @param array $class. + */ + private static $instance; + private $class; - public static function newInstance() - { - if ( !self::$instance instanceof self) + private function __construct() { - self::$instance = new self; + $this->class = array(); } - return self::$instance; - } - public function add($class) - { - $this->class[] = $class; - } - public function get() - { - return $this->class; + public static function newInstance() + { + if ( !self::$instance instanceof self) + { + self::$instance = new self; + } + return self::$instance; + } + + public function add($class) + { + $this->class[] = $class; + } + public function get() + { + return $this->class; + } } } /** - HELPERS - */ + if( !function_exists('osc_uploads_url')) { function osc_uploads_url($item = '') { $logo = osc_get_preference('logo', 'bender'); @@ -720,10 +752,9 @@ function osc_uploads_url($item = '') { } /* +ADS SEARCH +*/ - ads SEARCH - - */ if (!function_exists('search_ads_listing_top_fn')) { function search_ads_listing_top_fn() { if(osc_get_preference('search-results-top-728x90', 'bender')!='') { @@ -733,8 +764,8 @@ function search_ads_listing_top_fn() { echo '
' . PHP_EOL; } } + //osc_add_hook('search_ads_listing_top', 'search_ads_listing_top_fn'); } -//osc_add_hook('search_ads_listing_top', 'search_ads_listing_top_fn'); if (!function_exists('search_ads_listing_medium_fn')) { function search_ads_listing_medium_fn() { @@ -745,7 +776,7 @@ function search_ads_listing_medium_fn() { echo '
' . PHP_EOL; } } + osc_add_hook('search_ads_listing_medium', 'search_ads_listing_medium_fn'); } -osc_add_hook('search_ads_listing_medium', 'search_ads_listing_medium_fn'); ?>