Exemple #1
0
 public static function getInstance()
 {
     if (null === self::$_instance) {
         self::$_instance = new self();
     }
     return self::$_instance;
 }
 /**
  * Отображение страницы /tu/.
  */
 public function actionIndex()
 {
     $uid = get_uid();
     $page = __paramInit('int', 'page', 'page', 1);
     $limit = 21;
     $empty_criteria = $this->filter_widget->filter->isEmpty();
     $prof_id = $this->filter_widget->filter->category ? $this->filter_widget->filter->category : $this->filter_widget->filter->category_group;
     $tserviceModel = TServiceModel::model();
     $freelancerModel = FreelancerModel::model();
     $tservicesCatalogModel = new tservices_catalog();
     $tservicesCatalogModel->category_id = $prof_id;
     $kind = tservices_binds::KIND_ROOT;
     if ($this->filter_widget->filter->category) {
         $kind = tservices_binds::KIND_SPEC;
     } elseif ($this->filter_widget->filter->category_group) {
         $kind = tservices_binds::KIND_GROUP;
     }
     if ($page == 1 && $uid && !is_emp()) {
         $this->getClips()->add('bind_teaser', $this->widget('TServiceBindTeaser', array('kind' => $kind, 'uid' => $uid, 'prof_id' => $prof_id, 'is_inner' => !$empty_criteria), true));
         $this->getClips()->add('bind_teaser_short', $this->widget('TServiceBindTeaserShort', array(), true));
     }
     $free_places = true;
     //Сначала берем закрепленные
     $tservicesCatalogModel->setPage($limit, $page);
     $tservices_binded = $tservicesCatalogModel->getBindedList($kind);
     //Тут только для текущей страницы
     $tservices_binded_ids = $tservicesCatalogModel->getBindedIds($kind);
     //Тут для всех страниц
     $count_binded = count($tservices_binded_ids);
     $count_binded_cur_page = count($tservices_binded);
     if ($count_binded_cur_page) {
         // расширение сведений о типовых услугах
         $tserviceModel->extend($tservices_binded, 'id')->readVideos($tservices_binded, 'videos', 'videos');
         // во всех строках "распаковать" массив видео-клипов
         // расширение сведений о пользователях
         $freelancerModel->extend($tservices_binded, 'user_id', 'user');
         //Добавляем попапы продления и поднятия к услугам текущего юзера
         foreach ($tservices_binded as $key => $tservice) {
             $is_owner = $tservice['user_id'] == $uid;
             if ($is_owner) {
                 $this->getClips()->add('bind_links_' . $tservice['id'], $this->widget('TServiceBindLinks', array('kind' => $kind, 'uid' => $uid, 'is_inner' => !$empty_criteria, 'date_stop' => $tservice['date_stop'], 'allow_up' => $page > 1 || $key > 0, 'tservice_id' => $tservice['id']), true));
                 if (quickPaymentPopupTservicebind::getInstance()->inited == false) {
                     quickPaymentPopupTservicebind::getInstance()->init(array('uid' => $uid, 'kind' => $kind, 'prof_id' => $prof_id));
                 }
                 $popup_id = quickPaymentPopupTservicebind::getInstance()->getPopupId($tservice['id']);
                 $popups[] = quickPaymentPopupTservicebind::getInstance()->render(array('is_prolong' => true, 'date_stop' => $tservice['date_stop'], 'popup_id' => $popup_id, 'tservices_cur' => $tservice['id'], 'tservices_cur_text' => $tservice['title']));
                 if ($key > 0) {
                     if (quickPaymentPopupTservicebindup::getInstance()->inited == false) {
                         quickPaymentPopupTservicebindup::getInstance()->init(array('uid' => $uid, 'tservices_id' => $tservice['id'], 'tservices_title' => $tservice['title'], 'kind' => $kind, 'prof_id' => $prof_id));
                     }
                     $popup_id = quickPaymentPopupTservicebindup::getInstance()->getPopupId($tservice['id']);
                     $popups[] = quickPaymentPopupTservicebindup::getInstance()->render(array('popup_id' => $popup_id, 'tservices_cur' => $tservice['id'], 'tservices_cur_text' => $tservice['title']));
                 }
             }
         }
         $free_places = $count_binded_cur_page < $limit;
     }
     if ($free_places) {
         //Есть места для отображения незакрепленных услуг
         $tservicesCatalogModel->keywords = $this->filter_widget->filter->keywords;
         $tservicesCatalogModel->price_ranges = $this->filter_widget->filter->prices;
         $tservicesCatalogModel->price_max = $this->filter_widget->filter->price_max;
         $tservicesCatalogModel->country_id = $this->filter_widget->filter->country;
         $tservicesCatalogModel->city_id = $this->filter_widget->filter->city;
         $tservicesCatalogModel->order = $this->filter_widget->filter->order;
         $tservicesCatalogModel->setPage($limit, $page, $count_binded, $count_binded_cur_page);
         // поиск записей
         $list = $tservicesCatalogModel->cache(300)->getList($tservices_binded_ids);
         $tservices_search = $list['list'];
         $total = $list['total'];
         // расширение сведений о типовых услугах
         $tserviceModel->extend($tservices_search, 'id')->readVideos($tservices_search, 'videos', 'videos');
         // во всех строках "распаковать" массив видео-клипов
         // расширение сведений о пользователях
         $freelancerModel->extend($tservices_search, 'user_id', 'user');
     }
     $tservices = $tservices_binded;
     foreach ($tservices_search as $tservice) {
         if (count($tservices) < $limit && !in_array($tservice['id'], $tservices_binded_ids)) {
             $tservices[] = $tservice;
         }
     }
     $tservicesCatalogModel2 = new tservices_catalog();
     $tservicesCatalogModel2->category_id = $prof_id;
     $tservicesCatalogModel2->order = TServiceFilter::ORDER_PRICE_ASC;
     $tservicesCatalogModel2->setPage(1, 1);
     $list2 = $tservicesCatalogModel2->cache(300)->getList();
     $min_price = $list2['list'][0]['price'];
     SeoTags::getInstance()->initTserviceList($prof_id, $this->filter_widget->filter->category > 0, $total, $min_price);
     $view_name = !$empty_criteria ? 'list' : 'tile';
     $this->is_main = $empty_criteria;
     /*
             if ($empty_criteria)
             {
                 // над списком типовых услуг вывести рекламный блок раздела
                 require_once($_SERVER['DOCUMENT_ROOT'] . '/tu/widgets/TServiceCatalogPromo.php');
                 $this->getClips()->add('content-promo', $this->widget('TServiceCatalogPromo', array(), true));
             }
     */
     $tservices_binds = new tservices_binds($kind);
     $this->render($view_name, array('category_title' => $this->filter_widget->getCategoryAngGroupTitle(' / '), 'total' => $total, 'nothing_found' => empty($tservices), 'tservices' => $tservices, 'page' => $tservicesCatalogModel->page, 'limit' => $limit, 'paging_base_url' => $this->filter_widget->getUserFriendlyUrl(), 'is_adm' => $this->is_adm, 'orders' => $this->filter_widget->getAllowedOrders(true), 'cur_order' => $this->filter_widget->filter->order, 'uid' => $uid, 'popups' => $popups, 'bind_up_price' => $tservices_binds->getPrice(true, $uid, $prof_id)));
 }
Exemple #3
0
        ?>
                <?php 
    }
    //if
    ?>
            <?php 
}
//else
?>

</div>
 
 <div class="b-layout b-layout_padtop_20">
    <h2 class="b-layout__txt b-layout__txt_fontsize_11 b-layout__txt_color_666 b-layout_top_100 b-layout__txt_padbot_10 b-layout__txt_weight_normal">
        <?php 
echo SeoTags::getInstance()->getFooterText();
?>
    </h2>
</div>  

<script  type="text/javascript">
    var offer_works = [];
    <?php 
for ($i = 1; $i <= 3; $i++) {
    ?>
        <?php 
    if ($ps['portfolio_work_' . $i] != '') {
        ?>
            offer_works.push([<?php 
        echo $ps['portfolio_work_' . $i . '_id'];
        ?>
Exemple #4
0
        $user->IncHits($user->login);
    }
}
if ($user->is_banned && !hasPermissions('users')) {
    if (!$content) {
        $content = "ban.php";
    }
} else {
    if (!$content) {
        $content = $page == 'opinions' ? 'content_new.php' : 'content.php';
        // !!! проверить
        /*
          if ($_SESSION['login'] == $name) {
              $content = "content_setup.php";
              $fpath = $_SERVER['DOCUMENT_ROOT'] . "/user/employer/";
          } else {
              $content = "content.php";
          }
        */
    }
}
//Мета-теги
SeoTags::getInstance()->initByUser($user);
$page_title = SeoTags::getInstance()->getTitle();
$page_descr = SeoTags::getInstance()->getDescription();
$page_keyw = SeoTags::getInstance()->getKeywords();
$body_class = $user->is_pro == 't' ? 'p-pro' : 'p-nopro';
if (hasPermissions('users')) {
    $js_file[] = 'adm_edit_content.js';
}
include "../" . $template;
 public function run()
 {
     //собираем шаблон
     $this->render('t-service-catalog-header', array('page_title' => SeoTags::getInstance()->getH1()));
 }
Exemple #6
0
    $prof_name = $prof_name_arr['name'];
    $prof_title = $prof_name_arr['title'] ? $prof_name_arr['title'] : $prof_name;
    $prof_type = professions::GetProfType($prof_id);
    $anchor = professions::GetProfessionOrigin($prof_id);
    $g_page_id = "1|" . $prof_id;
}
//Мета-теги
if ($prof_group_id) {
    SeoTags::getInstance()->initFreelancers($prof_group_id, $page, false);
} else {
    SeoTags::getInstance()->initFreelancers($prof_id, $page);
}
$page_title = SeoTags::getInstance()->getTitle();
$page_descr = SeoTags::getInstance()->getDescription();
$page_keyw = SeoTags::getInstance()->getKeywords();
$page_h1 = SeoTags::getInstance()->getH1();
//------------------------------------------------------------------------------
// Показывать только про пользователей
$is_pro = __paramInit('bool', 'is_pro', 'is_pro', false);
$action = __paramInit('string', 'action', 'action', '');
//Выборка при поиске (не менялась)
if (in_array($action, array('search', 'search_advanced'))) {
    $search_string = __paramInit('htmltext', 'search_string', 'search_string');
    $search_string = html_entity_decode(stripslashes(trim($search_string)), ENT_QUOTES);
    if (!isset($_POST['action']) && isset($_GET['action'])) {
        $_POST = $_GET;
    }
    $build = $_POST;
    unset($build['page']);
    $query_string_menu = stripslashes(http_build_query($build));
    unset($build['prof']);
                                   class="blue" 
                                   target="_blank" 
                                   href="/users/<?php 
                echo $user->login;
                ?>
/viewproj.php?prjid=<?php 
                echo $prj['id'];
                ?>
" 
                                   style="text-decoration:none">
                                    <?php 
                echo view_preview2($user->login, $prj['prev_pict'], "upload", 'center', false, false, htmlspecialchars($sName), 200);
                ?>
                                </a>
                                <span class="b-layout_hide" itemprop="description"><?php 
                echo SeoTags::getInstance()->getImageDescription();
                ?>
</span>
                                <?php 
            }
            //else
            ?>
                                <p><span class="money"><?php 
            echo $txt_cost;
            ?>
</span><?php 
            echo ($is_txt_time ? ", " : "") . ($txt_time != '' ? $txt_time : "");
            ?>
</p>

                                <div id="portfolio-block-<?php 
echo printBanner240(false);
?>
	<!-- end of Banner 240x400 -->
    
    <?php 
if (!$uid) {
    ?>
        <div id="seo_block" class="b-layout b-layout_padtop_20">
            <h2 class="b-layout__txt b-layout__txt_color_666 b-layout__txt_bold b-layout__txt_padbot_10">
                <?php 
    echo SeoTags::getInstance()->getSideHead();
    ?>
            </h2>
            <div class="b-layout__txt b-layout__txt_fontsize_11 b-layout__txt_color_666">
                <?php 
    echo SeoTags::getInstance()->getSideText();
    ?>
            </div>
        </div>
    <?php 
}
?>
</div>

<div class="b-layout__one b-layout__one_relative b-layout__one_width_72ps b-layout__one_width_full_ipad">
    <?php 
echo $this->renderClip('content_top');
?>
    <?php 
echo $this->renderClip('categories');
?>