blog->settings->addNamespace('enhancePostContent'); $s = $core->blog->settings->enhancePostContent; # -- Prepare queries and object -- $_filters = libEPC::blogFilters(); $filters_id = array(); foreach($_filters as $name => $filter) { $filters_id[$filter['id']] = $name; } $action = isset($_POST['action']) ? $_POST['action'] : ''; $default_part = isset($_REQUEST['part']) ? $_REQUEST['part'] : key($filters_id); $records = new epcRecords($core); # -- Action -- if (!empty($action)) { # --BEHAVIOR-- enhancePostContentAdminSave $core->callBehavior('enhancePostContentAdminSave', $core); } try { # Update filter settings if ($action == 'savefiltersetting' && isset($filters_id[$default_part])) { # Parse filters options $name = $filters_id[$default_part]; $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'] ]; $s->put('enhancePostContent_' . $name, serialize($f)); $core->blog->triggerBlog(); dcPage::addSuccessNotice( __('Filter successfully updated.') ); $core->adminurl->redirect( 'admin.plugin.enhancePostContent', ['part' => $default_part], '#settings' ); } # Add new filter record if ($action == 'savenewrecord' && isset($filters_id[$default_part]) && !empty($_POST['new_key']) && !empty($_POST['new_value'])) { $cur = $records->openCursor(); $cur->epc_filter = $filters_id[$default_part]; $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' => $default_part], '#record' ); } # Update filter records $error = false; if ($action == 'saveupdaterecords' && isset($filters_id[$default_part]) && $_filters[$filters_id[$default_part]]['has_list']) { foreach($_POST['epc_id'] as $k => $id) { $k = abs((integer) $k); $id = abs((integer) $id); if (empty($_POST['epc_key'][$k]) || empty($_POST['epc_value'][$k])) { $records->delRecord($id); } elseif ($_POST['epc_key'][$k] != $_POST['epc_old_key'][$k] || $_POST['epc_value'][$k] != $_POST['epc_old_value'][$k]) { $cur = $records->openCursor(); $cur->epc_filter = $filters_id[$default_part]; $cur->epc_key = html::escapeHTML($_POST['epc_key'][$k]); $cur->epc_value = html::escapeHTML($_POST['epc_value'][$k]); if ($records->isRecord($cur->epc_filter, $cur->epc_key, $id)) { dcPage::addErrorNotice(__('Key already exists for this filter')); $error = true; } else { $records->updRecord($id, $cur); } } } $core->blog->triggerBlog(); $redir = !empty($_REQUEST['redir']) ? $_REQUEST['redir'] : $core->adminurl->get('admin.plugin.enhancePostContent', ['part' => $default_part]) . '#record'; if (!$error) { dcPage::addSuccessNotice( __('Filter successfully updated.') ); } http::redirect( $redir ); } } catch(Exception $e) { $core->error->add($e->getMessage()); } # -- Prepare page -- $breadcrumb = [html::escapeHTML($core->blog->name) => '', __('Enhance post content') => '', __('Filters') => '']; $filters_combo = []; foreach($filters_id as $id => $name) { if ($default_part == $id) { $breadcrumb[__($filters_id[$default_part])] = ''; } $filters_combo[__($name)] = $id; } # -- Display page -- # Headers echo ' ' . __('Enhance post content') . '' . //dcPage::jsLoad('js/_posts_list.js') . dcPage::jsToolbar() . dcPage::jsPageTabs() . dcPage::jsLoad(dcPage::getPF('enhancePostContent/js/index.js')) . # --BEHAVIOR-- enhancePostContentAdminHeader $core->callBehavior('enhancePostContentAdminHeader', $core) . ' ' . # Title dcPage::breadcrumb($breadcrumb) . dcPage::notices() . # Filters list '
' . '

' . form::combo('part', $filters_combo, $default_part) . ' ' . $core->formNonce() . '

' . '
'; # Filter content if (isset($filters_id[$default_part])) { $name = $filters_id[$default_part]; $filter = $_filters[$name]; # Filter title and description echo '

' . __($filters_id[$default_part]) . '

' . $filter['help'] . '

'; # Filter settings echo '
'; echo '

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

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

'; } echo '
'; echo '

' . __('Filtering') . '

' . form::field('filter_limit', 4, 10, html::escapeHTML($filter['limit'])) . '

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

'; echo '

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

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

'; } 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'])) . '

'; echo '

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

'; # Filter records list if ($filter['has_list']) { $sorts = new adminGenericFilter($core, 'epc'); $sorts->add(dcAdminFilters::getPageFilter()); $params = $sorts->params(); $params['epc_filter'] = $name; try { $list = $records->getRecords($params); $counter = $records->getRecords($params, true); $pager_url = $p_url . '&nb=' . $sorts->nb . '&sortby=%s' . '&order=%s' . '&page=%s' . '&part=' . $default_part . '#record'; $pager = new dcPager($sorts->page, $counter->f(0), $sorts->nb, 10); $pager->base_url = sprintf($pager_url, $sorts->sortby, $sorts->order, '%s'); } catch (Exception $e) { $core->error->add($e->getMessage()); } echo '
'; if ($core->error->flag() || $list->isEmpty()) { echo '

' . __('No record') . '

'; } else { echo '
' . $pager->getLinks() . '
'; $lines = [ __('Key') => 'epc_key', __('Value') => 'epc_value', __('Date') => 'epc_date' ]; foreach($lines as $k => $v) { echo ''; } echo ' '; while($list->fetch()) { echo ' '; } echo '
' .$k . '
' . form::hidden(['epc_id[]'], $list->epc_id) . form::hidden(['epc_old_key[]'], html::escapeHTML($list->epc_key)) . form::hidden(['epc_old_value[]'], html::escapeHTML($list->epc_value)) . form::field(['epc_key[]'], 30, 225, html::escapeHTML($list->epc_key), '') . ' ' . form::field(['epc_value[]'], 90, 225, html::escapeHTML($list->epc_value), '') . ' ' . dt::dt2str(__('%Y-%m-%d %H:%M'), $list->epc_upddt,$core->auth->getInfo('user_tz')) . '

' . __('In order to remove a record, leave empty its key or value.') . '

' . $pager->getLinks() . '

' . $core->formNonce() . form::hidden(['redir'], sprintf($pager_url, $sorts->sortby, $sorts->order, $sorts->page)) . form::hidden(['action'], 'saveupdaterecords') . '

'; } echo '
'; # New record echo '
' . '

' . form::field('new_key', 60, 255) . '

' . '

' . form::field('new_value', 60, 255) . '

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

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