wrapper()->title(_t('@menu', 'Listings') . ' / ' . _t('@', 'List')); $list->formsHeader([ 'title.add.link' => _t('@listings', 'Add Listing'), 'title.add' => _t('@menu', 'Listings') . ' / ' . _t('@listings', 'Add Listing'), 'title.edit' => _t('@menu', 'Listings') . ' / ' . _t('@listings', 'Editing Listing'), ]); $list ->column('id', _t('@', 'ID'), 70, ['order' => $list::COLUMN_ORDER_DESC]) ->column('title', _t('@', 'Title'), false, [ 'align'=>$list::COLUMN_ALIGN_LEFT, ], function ($v, $r, $o){ ?>
column('created', _t('@', 'Created'), 150, [], function ($v, $r) use ($list){ ?>
tab() == 3) { # для списка "на модерации", указываем причину отправления на модерацию: if ($r['status'] == Listings::STATUS_BLOCKED) { ?> true]) ?>
rowsActionAdd('user', function($row) use ($list) { ?> rowsActionAdd('comments', function($row) use ($list) { ?> $row['comments_cnt']]); ?> rowsActionsMore(['comments', $list::ACTION_DELETE]) ;} $list->tabs() ->add(0, _t('@listings', 'Published')) ->add(2, _t('@listings', 'Removed from Published')) ->add(3, _t('@listings', 'Moderation'), false, ['counter' => function(){ return Listings::moderationCounterUpdate(false); }]) ->add(4, _t('@listings', 'Unactivated'), false, ['attr' => ['class' => 'disabled']]) ->add(5, _t('@listings', 'Blocked')) ->add(6, _t('@listings', 'Deleted')) ->add(7, _t('@', 'All')) ; $list->filters() ->autocomplete('cat', _t('@listings', 'Category'), '', Listings::categories_suggest(), [ 'autocomplete' => function($q) { return Listings::ajaxHandlerCategoryAutocomplete(['q' => $q, 'type' => 'adm-items-listing']); }, 'values' => function($id) { $data = Listings::ajaxHandlerCategoryAutocomplete(['id' => $id, 'type' => 'adm-items-listing']); if (empty($data)) { return ''; } $data = reset($data); return $data[2]['title'] ?? ''; }, 'onSelect' => function(){ ?>text('title', _t('@listings', 'ID / Title / Phone')) ->text('uid', _t('@listings', 'User ID / Email')) ->text('companyid', _t('@listings', 'Company ID'), [ 'wrapper' => function($html, $p) { if (! bff::businessEnabled()) { return ''; } return $html; } ]) ->select('moderate_list', '', function () { return [ 0 => _t('@', 'All'), 1 => _t('@listings', 'Edited'), 2 => _t('@listings', 'Imported'), ]; }, 0, ['wrapper' => function($html, $p) use ($list) { HTML::attributeAdd($p['attr'], 'class', 'j-moderate_list'); if ($list->tab() != 3) { HTML::attributeAdd($p['attr'], 'class', 'hide'); } return $html; }]) ->autocomplete( 'region', Geo::coveringType(Geo::COVERING_COUNTRIES) ? _t('@', 'Country / Region') : _t('@', 'Region'), '', Geo::regionPreSuggest(0, ['json' => false]), [ 'autocomplete' => function($q) { $data = Geo::regionSuggest(['q' => $q, 'reg' => 1, 'country' => 1, 'asArray' => true]); return $data['response'] ?? []; }, 'values' => function($id) { $data = Geo::regionSuggest(['id' => $id, 'reg' => 1, 'country' => 1, 'asArray' => true]); $data = $data['list'] ?? []; if (empty($data)) { return ''; } $data = reset($data); return $data['title'] ?? ''; }, 'onSelect' => function(){ ?> function($html, $p) { if (Geo::coveringType(Geo::COVERING_CITY)) { return ''; } return $html; } ]) ; $blockForm = Admin::form($list) ->setTitle(_t('@listings', 'Mass Action')) ->select('blocked_id', _t('@listings', 'Blocking Reason'), 0, Listings::blockedReasons(), false, ['optionsID' => null, 'optionsTitle' => null]) ->textarea('blocked_reason', '', '', false) ->visibleIf('blocked_id', [Listings::BLOCK_OTHER, Listings::BLOCK_FOREVER]) ->buttonSubmit(_t('@', 'Block')) ->buttonCancel() ->onSubmit(function ($id, $p) { if (in_array($p['data']['blocked_id'], [Listings::BLOCK_OTHER, Listings::BLOCK_FOREVER])) { if (empty($p['data']['blocked_reason'])) { Errors::set(_t('@listings', 'Reason can\'t be empty'), 'blocked_reason'); } } }) ; $refreshForm = Admin::form($list) ->setTitle(_t('@listings', 'Mass Action')) ->checkbox('topUp') ->label(_t('@listings', 'Raising Listings in Search Results')) ->buttonSubmit(_t('@listings', 'Publish')) ->buttonCancel() ; $list->massActions() ->add('refresh', _t('@listings', 'Publish')) ->tabs(2) ->form($refreshForm) ->access('items-moderate') ->add('approve', _t('@listings', 'Approve')) ->tabs(3) ->access('items-moderate') ->add('unpublicate', _t('@listings', 'Unpublish')) ->tabs(0) ->access('items-moderate') ->add('block', _t('@listings', 'Block')) ->tabs([0,2,3,4]) ->classAdd('text-error') ->form($blockForm) ->access('items-moderate') ->add('unblock', _t('@listings', 'Unblock')) ->tabs(5) ->alias('approve') ->access('items-moderate') ->add('delete', _t('@listings', 'Delete')) ->tabs([0,2,3,4,5]) ->classAdd('text-error') ->access('items-edit') ->add('delete1', _t('@listings', 'Delete Completely')) ->tabs(6) ->alias('delete') ->access('items-edit') ; $list->jsParams('onEnterSubmit', true); $list->jsStart('jListingsAdminItemsList'); ?> jsStop();