auth->makePermissions([dcAuth::PERMISSION_CONTENT_ADMIN])); # -- Prepare queries and object -- $_filters = libEPC::getFilters(); $filters_id = $filters_combo = []; foreach ($_filters as $id => $filter) { $filters_id[$id] = $filter->name; $filters_combo[$filter->name] = $id; } $action = $_POST['action'] ?? ''; $part = $_REQUEST['part'] ?? key($filters_id); if (!isset($filters_id[$part])) { return null; } $header = ''; $filter = $_filters[$part]; $records = new epcRecords(); # -- Action -- if (!empty($action)) { # --BEHAVIOR-- enhancePostContentAdminSave dcCore::app()->callBehavior('enhancePostContentAdminSave'); } try { # Update filter settings if ($action == 'savefiltersetting') { # Parse filters options $f = [ 'nocase' => !empty($_POST['filter_nocase']), 'plural' => !empty($_POST['filter_plural']), 'limit' => abs((int) $_POST['filter_limit']), 'style' => (array) $_POST['filter_style'], 'notag' => (string) $_POST['filter_notag'], 'tplValues' => (array) $_POST['filter_tplValues'], 'pubPages' => (array) $_POST['filter_pubPages'], ]; dcCore::app()->blog->settings->addNamespace('enhancePostContent'); dcCore::app()->blog->settings->enhancePostContent->put('enhancePostContent_' . $filter->id(), serialize($f)); dcCore::app()->blog->triggerBlog(); dcAdminNotices::addSuccessNotice( __('Filter successfully updated.') ); dcCore::app()->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->id(); $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)) { dcAdminNotices::addErrorNotice(__('Key already exists for this filter')); } else { $records->addRecord($cur); dcCore::app()->blog->triggerBlog(); dcAdminNotices::addSuccessNotice( __('Filter successfully updated.') ); } dcCore::app()->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); } dcCore::app()->blog->triggerBlog(); dcAdminNotices::addSuccessNotice( __('Filter successfully updated.') ); if (!empty($_REQUEST['redir'])) { http::redirect($_REQUEST['redir']); } else { dcCore::app()->adminurl->redirect( 'admin.plugin.enhancePostContent', ['part' => $part], '#record' ); } } } catch (Exception $e) { dcCore::app()->error->add($e->getMessage()); } # -- Prepare page -- if ($filter->has_list) { $sorts = new adminGenericFilter(dcCore::app(), 'epc'); $sorts->add(dcAdminFilters::getPageFilter()); $sorts->add('part', $part); $params = $sorts->params(); $params['epc_filter'] = $filter->id(); try { $list = $records->getRecords($params); $counter = $records->getRecords($params, true); $pager = new adminEpcList(dcCore::app(), $list, $counter->f(0)); } catch (Exception $e) { dcCore::app()->error->add($e->getMessage()); } $header = $sorts->js(dcCore::app()->adminurl->get('admin.plugin.enhancePostContent', ['part' => $part], '&') . '#record'); } # -- Display page -- # Page headers echo ' ' . __('Enhance post content') . '' . dcPage::jsPageTabs() . dcPage::jsLoad(dcPage::getPF('enhancePostContent/js/index.js')) . $header . # --BEHAVIOR-- enhancePostContentAdminHeader dcCore::app()->callBehavior('enhancePostContentAdminHeader') . ' ' . # 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' => (int) $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.') . ' ' . ('' != $filter->htmltag ? '' : sprintf(__('Tag "%s" always be ignored.'), $filter->htmltag)) . '

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

'; # Filter records list if ($filter->has_list && isset($sorts) && isset($pager)) { $pager_url = dcCore::app()->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') . '

' . dcCore::app()->adminurl->getHiddenFormFields('admin.plugin.enhancePostContent', array_merge(['p' => 'enhancePostContent'], $sorts->values(true))) . form::hidden('redir', dcCore::app()->adminurl->get('admin.plugin.enhancePostContent', $sorts->values(true))) . dcCore::app()->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) . dcCore::app()->formNonce() . '

'; } # --BEHAVIOR-- enhancePostContentAdminPage dcCore::app()->callBehavior('enhancePostContentAdminPage'); dcPage::helpBlock('enhancePostContent'); echo '';