Все про Osclass

Статус
В этой теме нельзя размещать новые ответы.
Вопрос по плагину Backoffice Manager Pro:
1. Функция <?php echo show_latest_feedback(5); ?> выводит последние любые (5) отзывов в хронологическом порядке, количество отзывов зависит от цифры в скобках.
2. Функция <?php echo show_feedback_list(); ?> выводит последние отзывы по конкретному пользователю, но количество отзывов не регулируется подставкой цифры в скобки.

Ради интереса я клонировал 42 тестовых отзыва через базу в надежде, что быть может отзывы более скольких-то штук станут постраничны с навигацией , но получилось, что на странице начинают выводиться все отзывы.
По итогу ковыряя плагин обнаружил, что для feedback_list не задан лимит ($limit).

Вопрос: кто сталкивался и как/смог-ли добавить лимит к списку отзывов? (У меня не получилось.)

1. model/ModelFP.php -> добавляем $limit + dao
public function getFeedbackByUserId($user_id, $active, $limit = 5) {
$this->dao->select('s.*, u.s_name as user_name');
$this->dao->from( $this->getTable_UserBO() . ' s, ' . $this->getTable_User() . ' u' );
$this->dao->where( 's.user_id = u.pk_i_id' );
$this->dao->where( 's.active', $active );

if($user_id <> '' and $user_id <> 0) {
$this->dao->where( 's.user_id', $user_id );
}
$this->dao->orderBy('s.pub_date DESC');
$this->dao->limit( $limit );

$result = $this->dao->get();
if( !$result ) { return array(); }

$prepare = $result->result();
return $prepare;
}


2. form/form_feedback_list.php кидаем $limit
$feedback = ModelFB::newInstance()->getFeedbackByUserId($user_id, 1, $limit );


3. function/feedback.php кидаем $limit
function show_feedback_list($limit = 5) {
include_once ABS_PATH . 'oc-content/plugins/backoffice_manager/form/form_feedback_list.php';
}


4. в item.php
<?php echo show_feedback_list(); ?> теперь будет = 5
ну и в таком варианте
<?php echo show_feedback_list(3); ?>
соответственно = 3
 
Последнее редактирование:
  • Нравится
Реакции: aa91
Ребята, у кого есть плагин D5Plugin_XMLExport для Datacol, поделитесь пожалуйста
 
Кто знает какая функция делает транслит ссылки на item?
 
how to display ads based on subdomain(city)
popular ads city wise

PHP:
    $conn = getConnection();
    $results=$conn->osc_dbFetchResults("SELECT fk_i_item_id, i_num_views FROM %st_item_stats ORDER BY fk_i_item_id ASC", DB_TABLE_PREFIX);

    if(count($results)>0){
        foreach($results as $result) {
            @$view_count[$result['fk_i_item_id']] += @$result['i_num_views']; // Add-up all item views stored in database
        }

    arsort($view_count); // sorts array by highest number of item views first
    foreach($view_count as $item_id=>$views) {
        $result=$conn->osc_dbFetchResult("SELECT fk_i_user_id, fk_i_category_id, dt_pub_date, dt_mod_date, f_price, b_active, i_price, fk_c_currency_code, b_premium, s_secret,s_contact_name FROM %st_item WHERE pk_i_id = %d", DB_TABLE_PREFIX, $item_id); //Get active status of item
        $result1=$conn->osc_dbFetchResult("SELECT i_expiration_days FROM %st_category WHERE pk_i_id = %d", DB_TABLE_PREFIX, $result['fk_i_category_id']); //Get expiration days of category
        $result2=$conn->osc_dbFetchResult("SELECT DATEDIFF('". date('Y-m-d H:i:s')."','". $result['dt_pub_date']."') as DiffDate"); //Get expiration days difference
        $bactive=0;
     if($result1['i_expiration_days']==0 || $result2['DiffDate'] <=$result1['i_expiration_days']) {
        $bactive=1;
    }
    //if($result['b_active']==1){ //if active...
    if($bactive==1){ //if active...
        //echo 'Item ID: '.$item_id.' Views: '.$views.'<br>'; // display only if item is active
    @$index++;
    // get description
   
    //$desc=$conn->osc_dbFetchResult("SELECT fk_c_locale_code, s_title, s_description, s_what FROM %st_item_description WHERE fk_i_item_id = %d", DB_TABLE_PREFIX, $item_id);
    $desc=$conn->osc_dbFetchResult("SELECT fk_c_locale_code, s_title, s_description FROM %st_item_description WHERE fk_i_item_id = %d", DB_TABLE_PREFIX, $item_id);
    //Get active status of item
    $location=$conn->osc_dbFetchResult("SELECT fk_c_country_code, s_country, fk_i_region_id, s_region, fk_i_city_id, s_city FROM %st_item_location WHERE fk_i_item_id = %d", DB_TABLE_PREFIX, $item_id); //Get active status of item
    // store the data in an array...
    @$item_array[] =   array('fk_i_user_id'=>$result['fk_i_user_id'],
                                'fk_i_category_id'=>$result['fk_i_category_id'],
                                'dt_pub_date'=>$result['dt_pub_date'],
                                'dt_mod_date'=>$result['dt_mode_date'],
                                'f_price'=>$result['f_price'],
                                's_contact_name'=>$result['s_contact_name'],
                                'fk_i_item_id'=>$item_id,
                                'pk_i_id'=>$item_id,
                                'b_active'=>$result['b_active'],
                                'i_price'=>$result['i_price'],
                                'fk_c_currency_code'=>$result['fk_c_currency_code'],
                                'b_premium'=>$result['b_premium'],
                                'fk_c_locale_code'=>$desc['fk_c_locale_code'],
                                's_title'=>$desc['s_title'],
                                's_description'=>$desc['s_description'],
                                's_what'=>$desc['s_what'],
                                'fk_c_country_code'=>$location['fk_c_country_code'],
                                's_country'=>$location['s_country'],
                                'fk_i_region_id'=>$location['fk_i_region_id'],
                                's_region'=>$location['s_region'],
                                'fk_i_city_id'=>$location['fk_i_city_id'],
                                's_city'=>$location['s_city'],
                                's_secret'=>$result['s_secret'],
                                'locale'=>array('en_US'=>array('fk_i_item_id'=>$item_id,
                                'fk_c_locale_code'=>$desc['fk_c_locale_code'],
                                's_title'=>$desc['s_title'],
                                's_description'=>$desc['s_description'],
                                's_what'=>$desc['s_what']
                )
            )
        );
    }
 
ребята, может кто поможет, как подправить css и что именно подправить, чтобы выглядело как все?
 

Вложения

  • help.jpg
    help.jpg
    46,9 KB · Просмотры: 62
Фикс для файла post-item.php чтобы регионы и города были выпадающими списками и зависили друг от друга (для veronika)

- в post-item.php найти код
Код:
</head>
перед ним вставить
Код:
    <!-- only item-post.php -->
    <?php ItemForm::location_javascript(); ?>
    <!-- only item-post.php -->

- в том же post-item.php найти код
Код:
<div class="location">
и вместо кода
Код:
          <div class="row">
            <input type="hidden" name="countryId" id="sCountry" class="sCountry" value="<?php echo $prepare['i_country']; ?>"/>
            <input type="hidden" name="regionId" id="sRegion" class="sRegion" value="<?php echo $prepare['i_region']; ?>"/>
            <input type="hidden" name="cityId" id="sCity" class="sCity" value="<?php echo $prepare['i_city']; ?>"/>

            <label for="term"><?php _e('Location', 'veronika'); ?> <span class="req">*</span></label>

            <div id="location-picker">
              <input type="text" name="term" id="term" class="term" placeholder="<?php _e('Country, Region or City', 'veronika'); ?>" value="<?php echo veronika_get_term(veronika_get_session('term'), $prepare['i_country'], $prepare['i_region'], $prepare['i_city']); ?>" autocomplete="off"/>
              <div class="shower-wrap">
                <div class="shower" id="shower">
                  <div class="option service min-char"><?php _e('Type country, region or city', 'veronika'); ?></div>
                </div>
              </div>

              <div class="loader"></div>
            </div>
          </div>

          <div class="row">
            <label for="address"><?php _e('City Area', 'veronika'); ?></label>
            <div class="input-box"><?php ItemForm::city_area_text($prepare); ?><i class="fa fa-map-pin"></i></div>
          </div>
заменить на
Код:
                   <div class="row">
                        <label for="address"><?php _e('Region', 'veronika'); ?> <span>*</span></label>
                        <div class="select input-box">
                            <?php ItemForm::region_select(osc_get_regions(), osc_user()) ; ?>
                        </div>
                    </div>
                    <div class="row">
                        <label for="address"><?php _e('City', 'veronika'); ?> <span>*</span></label>
                        <div class="select input-box">
                            <?php ItemForm::city_select(osc_get_cities(osc_user_region()), osc_user()) ; ?>
                        </div>
                    </div>

Посмотреть вложение 82328

Пример:


объявления потом не возможно найти в поиске(которые были добавлены по вашей форме), необходимо еще страну добавить я думаю
 
объявления потом не возможно найти в поиске(которые были добавлены по вашей форме), необходимо еще страну добавить я думаю
Что-то как то много всего, как раз сегодня кинул сюда решение, кто-то спрашивал.
Для просмотра ссылки Войди или Зарегистрируйся
для поиска запрос $sql в фаиле contact.php, если что-то не работает можно там проверить.

У меня 2 страны и 2 языка.


contact.php
//mod sz
$current_locale = osc_current_user_locale(); //get locale current locale code
$short_locale = substr ($current_locale, -2) ; // substract and keep locale as country


$sql = '
(SELECT "country" as type, s_name as name, null as name_top, null as city_id, null as region_id, pk_c_code as country_code FROM ' . DB_TABLE_PREFIX . 't_country WHERE pk_c_code = "' . $short_locale . '"AND s_name like "' . $term . '%")
UNION ALL
(SELECT "region" as type, s_name as name, null as name_top, null as city_id, pk_i_id as region_id, fk_c_country_code as country_code FROM ' . DB_TABLE_PREFIX . 't_region WHERE fk_c_country_code = "' . $short_locale . '" AND s_name like "%' . $term. '%" )
UNION ALL
(SELECT "city" as type, c.s_name as name, r.s_name as name_top, c.pk_i_id as city_id, c.fk_i_region_id as region_id, c.fk_c_country_code as country_code FROM ' . DB_TABLE_PREFIX . 't_city c, ' . DB_TABLE_PREFIX . 't_region r WHERE c.fk_c_country_code = "' . $short_locale . '" AND r.fk_c_country_code= "' . $short_locale . '" AND c.s_name like "%' . $term . '%" AND c.fk_i_region_id = r.pk_i_id limit ' . $max . ')
UNION ALL
(SELECT "city_more" as type, count(pk_i_id) - ' . $max . ' as name, null as name_top, null as city_id, null as region_id, null as country_code FROM ' . DB_TABLE_PREFIX . 't_city WHERE fk_c_country_code = "' . $short_locale . '" AND (s_name like "%' . $term. '%" ))

';
//mod sz

Разберешься :)
 
Последнее редактирование:
Ребята, может, кто подскажет как убрать из поиска регионы, в которых нет объявлений? Кто-нибудь пытался модернизировать поиск таким образом? В некоторых темах есть такая функция, но в большинстве нет.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху