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 = array( '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.') ); http::redirect( $p_url.'part='.$default_part.'#setting' ); } # 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.') ); http::redirect( $p_url.'&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'] : $p_url.'&part='.$default_part.'#record'; dcPage::addSuccessNotice( __('Filter successfully updated.') ); http::redirect( $redir ); } } catch(Exception $e) { $core->error->add($e->getMessage()); } # -- Prepare page -- $breadcrumb = array( html::escapeHTML($core->blog->name) => '', __('Enhance post content') => $p_url ); $top_menu = array(); 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( array('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(array('action'), 'savefiltersetting').'

'; # Filter records list if ($filter['has_list']) { $sortby_combo = array( 'epc_upddt', 'epc_key', 'epc_value', 'epc_id' ); $order_combo = array( '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 = array(); $params['epc_filter'] = $name; $params['limit'] = array((($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(array('epc_id[]'), $list->epc_id). form::hidden(array('epc_old_key[]'), html::escapeHTML($list->epc_key)). form::hidden(array('epc_old_value[]'), html::escapeHTML($list->epc_value)). form::field(array('epc_key[]'), 30, 225, html::escapeHTML($list->epc_key), '').' '. form::field(array('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(array('redir'), sprintf($pager_url, $sortby, $page)). form::hidden(array('action'), 'saveupdaterecords').'

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

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

'. '

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

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

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

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

';