$filter) { $filters_id[$filter['id']] = $name; $filters_combo[__($name)] = $filter['id']; } $action = $_POST['action'] ?? ''; $part = $_REQUEST['part'] ?? key($filters_id); if (!isset($filters_id[$part])) { return null; } $header = ''; $filter = $_filters[$filters_id[$part]]; $records = new epcRecords($core); # -- Action -- if (!empty($action)) { # --BEHAVIOR-- enhancePostContentAdminSave $core->callBehavior('enhancePostContentAdminSave', $core); } try { # Update filter settings if ($action == 'savefiltersetting') { # Parse filters options $f = [ 'nocase' => !empty($_POST['filter_nocase']), 'plural' => !empty($_POST['filter_plural']), 'limit' => abs((integer) $_POST['filter_limit']), 'style' => (array) $_POST['filter_style'], 'notag' => (string) $_POST['filter_notag'], 'tplValues' => (array) $_POST['filter_tplValues'], 'pubPages' => (array) $_POST['filter_pubPages'] ]; $core->blog->settings->addNamespace('enhancePostContent'); $core->blog->settings->enhancePostContent->put('enhancePostContent_' . $filter['name'], serialize($f)); $core->blog->triggerBlog(); dcPage::addSuccessNotice( __('Filter successfully updated.') ); $core->adminurl->redirect( 'admin.plugin.enhancePostContent', ['part' => $part], '#settings' ); } # Add new filter record if ($action == 'savenewrecord' && !empty($_POST['new_key']) && !empty($_POST['new_value']) ) { $cur = $records->openCursor(); $cur->epc_filter = $filter['name']; $cur->epc_key = html::escapeHTML($_POST['new_key']); $cur->epc_value = html::escapeHTML($_POST['new_value']); if ($records->isRecord($cur->epc_filter, $cur->epc_key)) { dcPage::addErrorNotice(__('Key already exists for this filter')); } else { $records->addRecord($cur); $core->blog->triggerBlog(); dcPage::addSuccessNotice( __('Filter successfully updated.') ); } $core->adminurl->redirect( 'admin.plugin.enhancePostContent', ['part' => $part], '#record' ); } # Update filter records if ($action == 'deleterecords' && $filter['has_list'] && !empty($_POST['epc_id']) && is_array($_POST['epc_id']) ) { foreach($_POST['epc_id'] as $id) { $records->delRecord($id); } $core->blog->triggerBlog(); dcPage::addSuccessNotice( __('Filter successfully updated.') ); if (!empty($_REQUEST['redir'])) { http::redirect($_REQUEST['redir']); } else { $core->adminurl->redirect( 'admin.plugin.enhancePostContent', ['part' => $part], '#record' ); } } } catch(Exception $e) { $core->error->add($e->getMessage()); } # -- Prepare page -- if ($filter['has_list']) { $sorts = new adminGenericFilter($core, 'epc'); $sorts->add(dcAdminFilters::getPageFilter()); $sorts->add('part', $part); $params = $sorts->params(); $params['epc_filter'] = $filter['name']; try { $list = $records->getRecords($params); $counter = $records->getRecords($params, true); $pager = new adminEpcList($core, $list, $counter->f(0)); } catch (Exception $e) { $core->error->add($e->getMessage()); } $header = $sorts->js($core->adminurl->get('admin.plugin.enhancePostContent', ['part' => $part], '&').'#record'); } # -- Display page -- # Page headers echo ' ' . __('Enhance post content') . '' . //dcPage::jsLoad('js/_posts_list.js') . dcPage::jsToolbar() . dcPage::jsPageTabs() . dcPage::jsLoad(dcPage::getPF('enhancePostContent/js/index.js')) . $header . # --BEHAVIOR-- enhancePostContentAdminHeader $core->callBehavior('enhancePostContentAdminHeader', $core) . ' ' . # Page title dcPage::breadcrumb([ __('Plugins') => '', __('Enhance post content') => '', __($filter['name']) => '' ]) . dcPage::notices() . # Filters select menu list '
' . '

' . form::combo('part', $filters_combo, $part) . ' ' . '' . form::hidden('p', 'enhancePostContent') . '

' . '
'; # Filter title and description echo '

' . __($filter['name']) . '

' . $filter['help'] . '

'; # Filter settings echo '

' . __('Pages to be filtered') . '

'; foreach(libEPC::blogAllowedPubPages() as $k => $v) { echo '

'; } echo '

' . __('Filtering') . '

' . form::number('filter_limit', ['min' => 0, 'max' => 99, 'default' => (integer) $filter['limit']]) . '

' . __('Leave it blank or set it to 0 for no limit') . '

' . __('Contents to be filtered') . '

'; foreach(libEPC::blogAllowedTplValues() as $k => $v) { echo '

'; } echo '

' . __('Style') . '

'; foreach($filter['class'] as $k => $v) { echo '

' . form::field( ['filter_style[]', 'filter_style'.$k], 60, 255, html::escapeHTML($filter['style'][$k]) ) . '

'; } echo '

' . sprintf(__('The inserted HTML tag looks like: %s'), html::escapeHTML(str_replace('%s', '...', $filter['replace']))) . '

' . form::field('filter_notag', 60, 255, html::escapeHTML($filter['notag'])) . '

' . __('This is the list of HTML tags where content will be ignored.') . ' ' . (empty($filter['htmltag']) ? '' : sprintf(__('Tag "%s" always be ignored.'), $filter['htmltag'])) . '

' . $core->formNonce() . form::hidden(['action'], 'savefiltersetting') . form::hidden(['part'], $part) . '

'; # Filter records list if ($filter['has_list']) { $pager_url = $core->adminurl->get('admin.plugin.enhancePostContent', array_diff_key($sorts->values(true), ['page' => ''])).'&page=%s#record'; echo '
'; $sorts->display(['admin.plugin.enhancePostContent', '#record'], form::hidden('p', 'enhancePostContent') . form::hidden('part', $part)); $pager->display($sorts, $pager_url, '
' . '%s' . '
' . '

' . '

' . form::hidden('action', 'deleterecords') . '

' . $core->adminurl->getHiddenFormFields('admin.plugin.enhancePostContent', array_merge(['p' => 'enhancePostContent'], $sorts->values(true))) . form::hidden('redir', $core->adminurl->get('admin.plugin.enhancePostContent', $sorts->values(true))) . $core->formNonce() . '
' . '
' ); echo '
'; # New record echo '
' . '

' . form::field('new_key', 60, 255, ['extra_html' => 'required']) . '

' . '

' . form::field('new_value', 60, 255, ['extra_html' => 'required']) . '

' . form::hidden(['action'], 'savenewrecord') . form::hidden(['part'], $part) . $core->formNonce() . '

'; } # --BEHAVIOR-- enhancePostContentAdminPage $core->callBehavior('enhancePostContentAdminPage', $core); dcPage::helpBlock('enhancePostContent'); echo '';