Commit f389cee65b3db6e9775c46dbf4a1b0ead516d7d4

Authored by Yarik
1 parent 1d31fd54

test

common/models/Vacancy.php
... ... @@ -135,4 +135,9 @@
135 135 $this->employmentInput = $value;
136 136 }
137 137  
  138 + public function getRequirements()
  139 + {
  140 + return Fields::getData($this->vacancy_id, Vacancy::className(), 'requirements');
  141 + }
  142 +
138 143 }
... ...
frontend/controllers/CompanyController.php
... ... @@ -11,6 +11,7 @@ use frontend\models\ContactForm;
11 11 use frontend\models\Options;
12 12 use frontend\models\OptionValues;
13 13 use yii\base\InvalidParamException;
  14 +use yii\data\ActiveDataProvider;
14 15 use yii\helpers\ArrayHelper;
15 16 use yii\web\BadRequestHttpException;
16 17 use yii\web\Controller;
... ... @@ -121,19 +122,34 @@ class CompanyController extends Controller
121 122 public function actionVacancyList($company_id)
122 123 {
123 124 $company = User::findOne($company_id);
124   - $vacancies = $company->vacancies;
  125 + $query = $company->getVacancies();
  126 + $provider = new ActiveDataProvider([
  127 + 'query' => $query,
  128 + 'pagination' => [
  129 + 'pageSize' => 2,
  130 + ],
  131 + 'sort' => [
  132 + 'defaultOrder' => [
  133 + 'date_add' => SORT_DESC,
  134 + 'name' => SORT_ASC,
  135 + ]
  136 + ],
  137 + ]);
125 138  
126 139 return $this->render('vacancy-list',[
127   - 'company' => $company
  140 + 'company' => $company,
  141 + 'provider' => $provider,
128 142 ]);
129 143 }
130 144  
131 145 public function actionVacancyView($company_id, $vacancy_id)
132 146 {
133 147 $company = User::findOne($company_id);
  148 + $vacancy = $company->getVacancies()->where(['vacancy_id' => $vacancy_id])->with(['employments'])->one();
134 149  
135 150 return $this->render('vacancy-view',[
136   - 'company' => $company
  151 + 'company' => $company,
  152 + 'vacancy' => $vacancy,
137 153 ]);
138 154 }
139 155  
... ...
frontend/views/company/vacancy-list.php
1 1 <?php
  2 + /**
  3 + * @var User $company
  4 + * @var ActiveDataProvider $provider
  5 + */
  6 + use common\models\User;
  7 + use yii\data\ActiveDataProvider;
  8 + use yii\helpers\Html;
  9 + use yii\helpers\StringHelper;
  10 + use yii\widgets\ListView;
2 11  
3   -use \yii\helpers\Html;
4   -
5   -/* @var $this yii\web\View */
  12 + /* @var $this yii\web\View */
6 13 $this->params['company'] = $company;
7 14 $this->title = 'My Yii Application';
8 15 ?>
9 16 <div class="performer-vacancy-vacant-title style">Вакансии</div>
  17 +<?php
  18 +echo ListView::widget([
  19 + 'dataProvider' => $provider,
  20 + 'itemView' => function($model, $key, $index, $widget) {
  21 + $html =
  22 + '<div class="performer-vacant-reclam-bl">'
  23 + . Html::a($model->name, ['vacancy-view', 'company_id' => $model->user_id,'vacancy_id' => $model->vacancy_id], ['class' => 'performer-vacant-reclam-bl-title']) .
  24 + '<div class="performer-vacant-reclam-bl-title-two">' . $model->city . '. ' . $model->date_add . ' xxxx грн.</div>
  25 + <div class="performer-vacant-reclam-bl-content">
  26 + <span>' . StringHelper::truncateWords($model->description, 50, '...') . '</span>'
  27 + . Html::a('<img src="/images/performar_vacancy/arrow-post.png" alt=""/>', ['vacancy-view', 'company_id' => $model->user_id,'vacancy_id' => $model->vacancy_id], ['class' => 'performer-vacant-reclam-bl-content-read']) .
  28 + '
  29 + </div>
  30 + </div>';
  31 + return $html;
  32 + },
  33 + 'options' => [
  34 + 'class' => 'list-view performer-vacancy-vacant-title-reclam-wr style',
  35 + ],
  36 +]);
  37 +?>
  38 +
  39 +<?php
  40 +/* Markup
10 41 <div class="performer-vacancy-vacant-title-reclam-wr style">
11 42 <div class="performer-vacant-reclam-bl">
12 43 <a href="#" class="performer-vacant-reclam-bl-title">Инженер-технолог строитель</a>
... ... @@ -109,4 +140,6 @@ $this-&gt;title = &#39;My Yii Application&#39;;
109 140 <li class="dots-next"><a href="#">...</a></li>
110 141 <li><a href="#">156</a></li>
111 142 </ul>
112   -</div>
113 143 \ No newline at end of file
  144 +</div>
  145 +*/
  146 +?>
114 147 \ No newline at end of file
... ...
frontend/views/company/vacancy-view.php
1 1 <?php
  2 + /**
  3 + * @var $this yii\web\View
  4 + * @var User $company
  5 + * @var Vacancy $vacancy
  6 + */
2 7  
3   -use \yii\helpers\Html;
  8 + use common\models\User;
  9 + use common\models\Vacancy;
  10 + use yii\helpers\ArrayHelper;
  11 + use yii\helpers\Html;
4 12  
5   -/* @var $this yii\web\View */
6   -$this->params['company'] = $company;
  13 + $this->params[ 'company'] = $company;
7 14 $this->title = 'My Yii Application';
8 15 ?>
9   -<div class="performer-vacancy-list style"><a href="#" >к списку вакансий</a></div>
  16 +<div class="performer-vacancy-list style">
  17 + <?php
  18 + echo Html::a('к списку вакансий', ['vacancy-list', 'company_id' => $company->id]);
  19 + ?>
  20 +</div>
10 21 <div class="performer-vacancy-blocks-desk-wr style">
11   - <div class="performer-vacancy-date style"> Вакансия от 17.11.2015 </div>
12   - <div class="performance-vacancy-page-title style">Инженер-технолог строитель</div>
  22 + <div class="performer-vacancy-date style"> Вакансия от <?= $vacancy->date_add ?> </div>
  23 + <div class="performance-vacancy-page-title style"><?= $vacancy->name ?></div>
13 24 <div class="performance-vacancy-page-options style">
14 25 <ul>
15   - <li><span>Контактное лицо:</span><p>Владимир</p></li>
16   - <li><span>Телефон:</span><p>096 345-23-42</p></li>
17   - <li><span>Город:</span><p>Бровары, ищем в Киеве</p></li>
18   - <li><span>Вид занятости:</span><p>полная занятость</p></li>
19   - <li><span>Требования:</span><p>опыт работы от 2 лет, высшее образование</p></li>
  26 + <?php
  27 + if(!empty($vacancy->user_name)) {
  28 + echo "<li><span>Контактное лицо:</span><p>{$vacancy->user_name}</p></li>";
  29 + }
  30 + ?>
  31 + <li><span>Телефон:</span><p>XXX XXX-XX-XX</p></li>
  32 + <?php
  33 + if(!empty($vacancy->city)) {
  34 + echo "<li><span>Город:</span><p>{$vacancy->city}</p></li>";
  35 + }
  36 + ?>
  37 + <?php
  38 + if(!empty($vacancy->employments)) {
  39 + echo "<li><span>Вид занятости:</span><p>".implode(', ', ArrayHelper::getColumn($vacancy->employments, 'name'))."</p></li>";
  40 + }
  41 + ?>
  42 + <?php
  43 + if(!empty($vacancy->requirements)) {
  44 + echo "<li><span>Требования:</span><p>".implode(', ', ArrayHelper::getColumn($vacancy->requirements, 'requirements'))."</p></li>";
  45 + }
  46 + ?>
20 47 </ul>
21 48 </div>
22 49 <div class="performance-vacancy-description style">Описание вакансии</div>
23 50 <div class="performance-vacancy-desc-txt style">
24   - <p>Требования: Инженер технолог строитель. Образование инженер-строитель. Доскональное знание технологиии строительных работ.</p>
25   - <p>Условия работы: Работа в офисе и командировки на стройки.</p>
26   - <p>Обязанности: Составление технологических карт, Ведение обучения технологии выполнения общестроительных и отделочных работ. Контроль.качества выполнения строительных работ. Работа с рекламациями. Работа с проектными организациями.</p>
  51 + <?php
  52 + echo $vacancy->description;
  53 + ?>
27 54 </div>
28 55 <div class="performance-vacancy-desc-form style">
29 56 <a href="#">Отправить резюме</a>
... ...