Номенклатури';
$tabs['main'] = ' Основни данни';
$tabs['ts_en'] = ' Превод английски';
$tabs['media'] = ' Медия файлове';
}
TableWidget::widget([
'filter' => [
[
'objects.name' => ['Наименование', 'c3'],
'description' => ['Описание', 'c3'],
'annotation' => ['Анотация', 'c3'],
'partner_id' => ['Партньор', 'c3', Partner::partnerList()],
'heritage_type' => ['Вид наследсво', 'c3', ObjectTemplate::heritageTypesByCategory()],
'sc_id' => ['Категория', 'c3 category_search_box', NomenclatureService::categoryFilterSelect()],
]
],
'advanced_filter' => $this->render('_advanced_filters/object'),
'top' => [
'title' => 'Обекти',
'data' => [
'index/dashboard' => 'Начало',
'web-portal/expositions' => 'Уебпортал',
]
],
'actions' => [
'new' => 'Нов обект',
'edit' => 'Редакция на обект',
'delete' => 'Изтриване на обект'
],
'th' => [
'ID' => 'c05 text-right',
'Наименование' => 'c2',
'Изображение' => 'c1 ct',
'Категория' => '',
'Колекция' => '',
'Вид шаблон' => 'c1',
'Партньор' => '',
'Дата на добавяне' => 'ct',
'История' => 'ct',
'Активен' => '',
],
'data' => Objects::find()->andWhere(Yii::$app->getFilterData('or'))
->innerJoin('object_template', 'object_template.id = objects.ot_id')
->orderBy(['id' => SORT_DESC])->loop([
'id',
function (Objects $model) {
if ($model->name)
return '' . $model->name . '';
},
function (Objects $model) {
if ($model->media_key) {
$src = $model->getSrcOfSingleImage('title_object_image', 'thumb');
return '
';
}
},
function (Objects $model) {
return $model->subCategory->name;
},
function (Objects $model) {
if ($model->collections)
return $model->collectionConcatList;
},
function (Objects $model) {
if ($model->objectTemplate)
return $model->objectTemplate->name;
},
function (Objects $model) {
if ($model->partner)
return $model->partner->name;
},
function (Objects $model) {
if ($model->history)
return $model->history->date;
},
function (Objects $model) {
return '';
},
function (Objects $model) {
return $model->statusSwitch('is_active', null, ['Обекта е видим на сайта', 'Обекта е свален от сайта']);
}
], $_GET['p'] ?? 1, 30)
]);
FormWidget::widget([
'top' => [
'title' => 'Нов обект',
'title_edit' => 'Редакция на обект',
'data' => [
'index/dashboard' => 'Начало',
'web-portal/expositions' => 'Уебпортал',
'web-portal/objects' => 'Обекти'
],
],
'tabs' => $tabs ?? [],
'writeView' => empty($_GET['id']) ? "web-portal/tabs/nomenclature/objects_w" : "web-portal/tabs/" . Includes::tab($tab) . "/objects_w",
'model' => Objects::class,
'validation' => function ($p) use ($tab) {
if ($tab == 'main') {
if (empty($_GET['id'])) {
//NEW OBJECT
if (empty($p->{'sc_id'}))
return ['sc_id' => 'Моля, изберете категория'];
if (empty($p->{'sc_id'}))
return ['ot_id' => 'Моля, изберете шаблон на обект'];
} else {
//UPDATE GENERAL DATA
if (empty($p->{'name'}))
return ['name' => 'Моля, въведете име на обекта'];
if (empty($p->{'annotation'}))
return ['annotation' => 'Моля, въведете анотация'];
if (empty($p->{'description'}))
return ['description' => 'Моля, въведете описание'];
}
} else if (Includes::inLocales($tab)) {
if (empty($p->{$tab . '_name'}))
return [$tab . '_name' => 'Моля, въведете име на обекта'];
if (empty($p->{$tab . '_annotation'}))
return [$tab . '_annotation' => 'Моля, въведете анотация'];
if (empty($p->{$tab . '_description'}))
return [$tab . '_description' => 'Моля, въведете описание'];
}
return null;
},
'postService' => function ($p, Objects $model) use ($tab) {
$model->setPostDataToModel();
$model->save();
if ($tab == 'nomenclature') {
$model->setObjectFields($p);
$model->setCollections($p);
}
History::addNew($model->id, 'objects', Auth::userAdminGlobal()->getFullName() . ' - Глобален администратор', !empty($_GET['id']));
if (empty($_GET['media_key_update'])) {
Yii::$app->flash('success', isset($_GET['id']) ? 'Обекта е актуализиран успешно' : 'Обекта е създаден успешно');
$model->smartRedirect();
}
}
]);
?>