Вход Регистрация
Файл: oc-includes/osclass/helpers/hPremium.php
Строк: 663
<?php

/*
 * Copyright 2014 Osclass
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

     /**
     * Helper Premiums - returns object from the static class (View)
     * @package Osclass
     * @subpackage premiums
     * @author Osclass
     */

    ////////////////////////////////////////////////////////////////
    // FUNCTIONS THAT RETURNS OBJECT FROM THE STATIC CLASS (VIEW) //
    ////////////////////////////////////////////////////////////////


    /**
    * Gets new premiums ads
    *
    * @return array $premiums
    */
    
function osc_get_premiums($max 2) {
        if (
View::newInstance()->_exists('search')) {
            
$mSearch View::newInstance()->_get('search');
        } else {
            
$mSearch Search::newInstance();
            
View::newInstance()->_exportVariableToView('search'$mSearch);
        }

        
// juanramon: it should be fixed, little hack to get alerts work in search layout
        
$mSearch->reconnect();
        
$premiums $mSearch->getPremiums($max);
        
View::newInstance()->_exportVariableToView('premiums'$premiums);
        return 
$premiums;
    }


    
/**
    * Gets current premium array from view
    *
    * @return array $premium, or null if not exist
    */
    
function osc_premium() {
        if (
View::newInstance()->_exists('premiums')) {
            return 
View::newInstance()->_current('premiums');
        } else {
            return 
null;
        }
    }

    
/**
    * Gets a specific field from current premium
    *
    * @param type $field
    * @param type $locale
    * @return field_type
    */
    
function osc_premium_field($field$locale "") {
        return 
osc_field(osc_premium(), $field$locale);
    }

    
/////////////////////////////////////////////////
    // END FUNCTIONS THAT RETURNS OBJECT FROM VIEW //
    /////////////////////////////////////////////////


    ///////////////////////
    // HELPERS FOR PREMIUMS //
    ///////////////////////


    /**
    * Gets id from current premium
    *
    * @return int
    */
    
function osc_premium_id() {
        return (int) 
osc_premium_field("pk_i_id");
    }

    
/**
    * Gets user id from current premium
    *
    * @return int
    */
    
function osc_premium_user_id() {
        return (int) 
osc_premium_field("fk_i_user_id");
    }

    
/**
     * Gets description from current premium, if $locale is unspecified $locale is current user locale
     *
     * @param string $locale
     * @return string $desc
     */
    
function osc_premium_description($locale "") {
        if (
$locale == ""$locale osc_current_user_locale();
        
$desc osc_premium_field("s_description"$locale);
        if(
$desc=='') {
            
$desc osc_premium_field("s_description"osc_language());
            if(
$desc=='') {
                
$aLocales osc_get_locales();
                foreach(
$aLocales as $locale) {
                    
$desc osc_premium_field("s_description"$locale);
                    if(
$desc!='') {
                        break;
                    }
                }
            }
        }
        return (string) 
$desc;
    }

    
/**
     * Gets title from current premium, if $locale is unspecified $locale is current user locale
     *
     * @param string $locale
     * @return string
     */
    
function osc_premium_title($locale "") {
        if (
$locale == ""$locale osc_current_user_locale();
        
$title osc_premium_field("s_title"$locale);
        if(
$title=='') {
            
$title osc_premium_field("s_title"osc_language());
            if(
$title=='') {
                
$aLocales osc_get_locales();
                foreach(
$aLocales as $locale) {
                    
$title osc_premium_field("s_title"$locale);
                    if(
$title!='') {
                        break;
                    }
                }
            }
        }
        return (string) 
$title;
    }

    
/**
     * Gets category from current premium
     *
     * @param string $locale
     * @return string
     */
    
function osc_premium_category($locale "") {
        if (
$locale == ""$locale osc_current_user_locale();
        if ( !
View::newInstance()->_exists('premium_category') ) {
            
View::newInstance()->_exportVariableToView('premium_category'Category::newInstance()->findByPrimaryKeyosc_premium_category_id(), $locale ) );
        }
        
$category View::newInstance()->_get('premium_category');
        return (string) 
osc_field($category"s_name"$locale);
    }

    
/**
     * Gets category description from current premium, if $locale is unspecified $locale is current user locale
     *
     * @param type $locale
     * @return string
     */
    
function osc_premium_category_description($locale "") {
        if (
$locale == ""$locale osc_current_user_locale();
        if ( !
View::newInstance()->_exists('premium_category') ) {
            
View::newInstance()->_exportVariableToView('premium_category'Category::newInstance()->findByPrimaryKeyosc_premium_category_id() ) );
        }
        
$category View::newInstance()->_get('premium_category');
        return 
osc_field($category"s_description"$locale);
    }

    
/**
     * Gets category id of current premium
     *
     * @return int
     */
    
function osc_premium_category_id() {
        return (int) 
osc_premium_field("fk_i_category_id");
    }

    
/**
     * Gets publication date of current premium
     *
     * @return string
     */
    
function osc_premium_pub_date() {
        return (string) 
osc_premium_field("dt_pub_date");
    }

    
/**
     * Gets modification date of current premium
     *
     * @return string
     */
    
function osc_premium_mod_date() {
        return (string) 
osc_premium_field("dt_mod_date");
    }

    
/**
     * Gets price of current premium
     *
     * @return float
     */
    
function osc_premium_price() {
        if(
osc_premium_field("i_price")=='') return null;
        else return (float) 
osc_premium_field("i_price");

    }

    
/**
     * Gets formated price of current premium
     *
     * @return string
     */
    
function osc_premium_formated_price() {
        return (string) 
osc_format_priceosc_premium_price() );
    }

    
/**
     * Gets currency symbol of an item
     *
     * @since 3.0
     * @return string
     */
    
function osc_premium_currency_symbol() {
        
$aCurrency Currency::newInstance()->findByPrimaryKey(osc_premium_currency());
        return 
$aCurrency['s_description'];
    }

    
/**
     * Gets currency of current premium
     *
     * @return string
     */
    
function osc_premium_currency() {
        return (string) 
osc_premium_field("fk_c_currency_code");
    }

    
/**
     * Gets contact name of current premium
     *
     * @return string
     */
    
function osc_premium_contact_name() {
        return (string) 
osc_premium_field("s_contact_name");
    }

    
/**
     * Gets contact email of current premium
     *
     * @return string
     */
    
function osc_premium_contact_email() {
        return (string) 
osc_premium_field("s_contact_email");
    }

    
/**
     * Gets country name of current premium
     *
     * @return string
     */
    
function osc_premium_country() {
        return (string) 
osc_premium_field("s_country");
    }

    
/**
     * Gets country code of current premium
     * Country code are two letters like US, ES, ...
     *
     * @return string
     */
    
function osc_premium_country_code() {
        return (string) 
osc_premium_field("fk_c_country_code");
    }

    
/**
     * Gets region of current premium
     *
     * @return string
     */
    
function osc_premium_region() {
        return (string) 
osc_premium_field("s_region");
    }

    
/**
     * Gets city of current premium
     *
     * @return string
     */
    
function osc_premium_city() {
        return (string) 
osc_premium_field("s_city");
    }

    
/**
     * Gets city area of current premium
     *
     * @return string
     */
    
function osc_premium_city_area() {
        return (string) 
osc_premium_field("s_city_area");
    }

    
/**
     * Gets address of current premium
     *
     * @return string
     */
    
function osc_premium_address() {
        return (string) 
osc_premium_field("s_address");
    }

    
/**
     * Gets true if can show email user at frontend, else return false
     *
     * @return boolean
     */
    
function osc_premium_show_email() {
        return (boolean) 
osc_premium_field("b_show_email");
    }

    
/**
     * Gets zip code of current premium
     *
     * @return string
     */
    
function osc_premium_zip() {
        return (string) 
osc_premium_field("s_zip");
    }

    
/**
     * Gets latitude of current premium
     *
     * @return float
     */
    
function osc_premium_latitude() {
        return (float) 
osc_premium_field("d_coord_lat");
    }

    
/**
     * Gets longitude of current premium
     *
     * @return float
     */
    
function osc_premium_longitude() {
        return (float) 
osc_premium_field("d_coord_long");
    }

    
/**
     * Gets true if current premium is marked premium, else return false
     *
     * @return boolean
     */
    
function osc_premium_is_premium() {
        if ( 
osc_premium_field("b_premium") ) return true;
        else return 
false;
    }

    
/**
     * return number of views of current premium
     *
     * @return int
     */
    
function osc_premium_views() {
        
$item osc_premium();
        if(isset(
$item['i_num_premium_views'])) {
            return (int) 
osc_premium_field("i_num_premium_views");
        } else {
            return 
ItemStats::newInstance()->getViews(osc_premium_id());
        }
    }

    
/**
     * Gets status of current premium.
     * b_active = true  -> premium is active
     * b_active = false -> premium is inactive
     *
     * @return boolean
     */
    
function osc_premium_status() {
        return (boolean) 
osc_premium_field("b_active");
    }

    
/**
     * Gets secret string of current premium
     *
     * @return string
     */
    
function osc_premium_secret() {
        return (string) 
osc_premium_field("s_secret");
    }

    
/**
     * Gets if current premium is active
     *
     * @return boolean
     */
    
function osc_premium_is_active() {
        return (
osc_premium_field("b_active")==1);
    }

    
/**
     * Gets if current premium is inactive
     *
     * @return boolean
     */
    
function osc_premium_is_inactive() {
        return (
osc_premium_field("b_active")==0);
    }

    
/**
     * Gets if premium is marked as spam
     *
     * @return boolean
     */
    
function osc_premium_is_spam() {
        return (
osc_premium_field("b_spam")==1);
    }

    
/**
     * Gets total number of comments of current premium
     *
     * @return int
     */
    
function osc_premium_total_comments() {
        return 
premiumComment::newInstance()->total_comments(osc_premium_id());
    }

    
/**
     * Gets page of comments in current pagination
     *
     * @return <type>
     */
    
function osc_premium_comments_page() {
        
$page Params::getParam('comments-page');
        if(
$page=='') {
            
$page 0;
        }
        return (int) 
$page;
    }

    
//////////////////////////
    // HELPERS FOR PREMIUMS //
    //////////////////////////



    /////////////
    // DETAILS //
    /////////////

    /**
     * Gets next premium if there is, else return null
     *
     * @return array
     */
    
function osc_has_premiums() {
        if ( 
View::newInstance()->_exists('resources') ) {
            
View::newInstance()->_erase('resources');
        }
        if ( 
View::newInstance()->_exists('premium_category') ) {
            
View::newInstance()->_erase('premium_category');
        }
        if ( 
View::newInstance()->_exists('metafields') ) {
            
View::newInstance()->_erase('metafields');
        }
        return 
View::newInstance()->_next('premiums');
    }

    
/**
     * Set the internal pointer of array premiums to its first element, and return it.
     *
     * @return array
     */
    
function osc_reset_premiums() {
        return 
View::newInstance()->_reset('premiums');
    }

    
/**
     * Gets number of premiums in current array premiums
     *
     * @return int
     */
    
function osc_count_premiums() {
        return (int) 
View::newInstance()->_count('premiums');
    }

    
/**
     * Gets number of resources in array resources of current premium
     *
     * @return int
     */
    
function osc_count_premium_resources() {
        if ( !
View::newInstance()->_exists('resources') ) {
            
View::newInstance()->_exportVariableToView('resources'ItemResource::newInstance()->getAllResourcesFromItemosc_premium_id() ) );
        }
        return 
osc_priv_count_item_resources();
    }

    
/**
     * Gets next premium resource if there is, else return null
     *
     * @return array
     */
    
function osc_has_premium_resources() {
        if ( !
View::newInstance()->_exists('resources') ) {
            
View::newInstance()->_exportVariableToView('resources'ItemResource::newInstance()->getAllResourcesFromItemosc_premium_id() ) );
        }
        return 
View::newInstance()->_next('resources');
    }

    
/**
     * Gets current resource of current array resources of current premium
     *
     * @return array
     */
    
function osc_get_premium_resources() {
        if ( !
View::newInstance()->_exists('resources') ) {
            
View::newInstance()->_exportVariableToView('resources'ItemResource::newInstance()->getAllResourcesFromItemosc_premium_id() ) );
        }
        return 
View::newInstance()->_get('resources');
    }

    
/**
     * Gets number of premium comments of current premium
     *
     * @return int
     */
    
function osc_count_premium_comments() {
        if ( !
View::newInstance()->_exists('comments') ) {
            
View::newInstance()->_exportVariableToView('comments'ItemComment::newInstance()->findBypremiumIDosc_premium_id(), osc_premium_comments_page(), osc_comments_per_page() ) );
        }
        return 
View::newInstance()->_count('comments');
    }

    
/**
     * Gets next comment of current premium comments
     *
     * @return array
     */
    
function osc_has_premium_comments() {
        if ( !
View::newInstance()->_exists('comments') ) {
            
View::newInstance()->_exportVariableToView('comments'ItemComment::newInstance()->findBypremiumIDosc_premium_id(), osc_premium_comments_page(), osc_comments_per_page() ) );
        }
        return 
View::newInstance()->_next('comments');
    }


    
/**
     * Gets number of premiums
     *
     * @access private
     * @return int
     */
    
function osc_priv_count_premiums() {
        return (int) 
View::newInstance()->_count('premiums');
    }


    
/***************
     * META FIELDS *
     ***************/

    /**
     * Gets number of premium meta field
     *
     * @return integer
     */
    
function osc_count_premium_meta() {
        if ( !
View::newInstance()->_exists('metafields') ) {
            
View::newInstance()->_exportVariableToView('metafields'Item::newInstance()->metaFields(osc_premium_id()) );
        }
        return 
View::newInstance()->_count('metafields');
    }

    
/**
     * Gets next premium meta field if there is, else return null
     *
     * @return array
     */
    
function osc_has_premium_meta() {
        if ( !
View::newInstance()->_exists('metafields') ) {
            
View::newInstance()->_exportVariableToView('metafields'Item::newInstance()->metaFields(osc_premium_id()) );
        }
        return 
View::newInstance()->_next('metafields');
    }

    
/**
     * Gets premium meta fields
     *
     * @return array
     */
    
function osc_get_premium_meta() {
        if ( !
View::newInstance()->_exists('metafields') ) {
            
View::newInstance()->_exportVariableToView('metafields'Item::newInstance()->metaFields(osc_premium_id()) );
        }
        return 
View::newInstance()->_get('metafields');
    }


 
?>
Онлайн: 1
Реклама