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']); $records->addRecord($cur); $core->blog->triggerBlog(); dcPage::addSuccessNotice( __('Filter successfully updated.') ); $core->adminurl->redirect( 'admin.plugin.enhancePostContent', ['part' => $default_part], '#record' ); } # Update filter records 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]); $records->updRecord($id, $cur); } } $core->blog->triggerBlog(); $redir = !empty($_REQUEST['redir']) ? $_REQUEST['redir'] : $core->adminurl->get('admin.plugin.enhancePostContent', ['part' => $default_part]) . '#record'; 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') => $p_url ]; $top_menu = []; foreach($filters_id as $id => $name) { $active = ''; if ($default_part == $id) { $breadcrumb[__($filters_id[$default_part])] = ''; $active = ' class="active"'; } $top_menu[] = '' . __($name) . ''; } # -- Display page -- # Headers echo ' ' . __('Enhance post content') . '' . dcPage::jsLoad('js/_posts_list.js') . dcPage::jsToolbar() . dcPage::jsPageTabs() . # --BEHAVIOR-- enhancePostContentAdminHeader $core->callBehavior('enhancePostContentAdminHeader', $core) . ' ' . # Title dcPage::breadcrumb($breadcrumb) . dcPage::notices() . # Filters list ''; # 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']) { $sortby_combo = [ 'epc_upddt', 'epc_key', 'epc_value', 'epc_id' ]; $order_combo = [ 'asc', 'desc' ]; $sortby = !empty($_GET['sortby']) ? $_GET['sortby'] : (string) $s->enhancePostContent_list_sortby; $order = !empty($_GET['order']) ? $_GET['order'] : (string) $s->enhancePostContent_list_order; $page = !empty($_GET['page']) ? (integer) $_GET['page'] : 1; $nb = !empty($_GET['nb']) && (integer) $_GET['nb'] > 0 ? (integer) $_GET['nb'] : (integer) $s->enhancePostContent_list_nb; $params = []; $params['epc_filter'] = $name; $params['limit'] = [(($page - 1) * $nb), $nb]; if ($sortby !== '' && in_array($sortby, $sortby_combo)) { if ($order !== '' && in_array($order, $order_combo)) { $params['order'] = $sortby . ' ' . $order; } } try { $list = $records->getRecords($params); $counter = $records->getRecords($params, true); } catch (Exception $e) { $core->error->add($e->getMessage()); } $pager_url = $p_url . '&nb=' . $nb . '&sortby=%s' . '&order=' . ($order == 'desc' ? 'desc' : 'asc') . '&page=%s' . '&part=' . $default_part . '#record'; $pager = new pager($page, $counter->f(0), $nb, 10); $pager->html_prev = __('«prev.'); $pager->html_next = __('next»'); $pager->base_url = sprintf($pager_url, $sortby, '%s'); $pager->var_page = 'page'; echo '
'; if ($core->error->flag() || $list->isEmpty()) { echo '

' . __('No record') . '

'; } else { echo '

' . __('Page(s)') . ' : ' . $pager->getLinks() . '

'; while($list->fetch()) { echo ' '; } echo '
' . __('Key') . ' ' . __('Value') . ' ' . __('Date') . '
' . 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), 'maximal') . ' ' . 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.') . '

' . __('Page(s)') . ' : ' . $pager->getLinks() . '

' . $core->formNonce() . form::hidden(['redir'], sprintf($pager_url, $sortby, $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'); # Footers echo '

enhancePostContent - ' . $core->plugins->moduleInfo('enhancePostContent', 'version') . '  ' . __('enhancePostContent') . '

';