dir_name = basename(dirname(__FILE__)); $this->plugin_url = WP_PLUGIN_URL . '/' . $this->dir_name; $this->plugin_path = WP_PLUGIN_DIR . '/' . $this->dir_name; $this->reg_deactivation_hook(); add_action('init', array($this, 'admin_init'), 3); add_action('init', array($this, 'init')); } /**********************************************************************/ function deactivate() { $this->options = get_option($this->hook); if ($this->options['clear_options']) delete_option($this->hook); } /**********************************************************************/ function query_vars_endpoint($vars) { $vars[] = 'all'; return $vars; } /**********************************************************************/ function add_custom_css() { echo '\n\n'; } /**********************************************************************/ function init() { global $wp_rewrite; $wp_rewrite->add_endpoint('all', EP_ALL); $wp_rewrite->flush_rules(); add_filter('query_vars', array($this, 'query_vars_endpoint')); $this->add_js('zmg-pn-admin-js', $this->plugin_url . '/zmg_page_navigation_admin.js', true); $this->add_css('zmg-pn-admin-js', $this->plugin_url . '/zmg_page_navigation_admin.css', true); if ($this->options['is_zmg_css']) $this->add_css('zmg-pn-css', $this->plugin_url . '/zmg_page_navigation.css'); else add_action('wp_head', array($this, 'add_custom_css')); if ($wp_query->is_feed || is_admin()) return true; $before_loop = new zmg_pn_parser ('before_loop', $this->options, $this->version); $after_loop = new zmg_pn_parser ('after_loop', $this->options, $this->version); if ($this->options['before_loop']) add_action('loop_start', array($before_loop, 'parse_br')); if ($this->options['after_loop']) add_action('loop_end', array($after_loop, 'parse_br')); if ($this->options['before_loop_s']) add_action('loop_start', array($before_loop, 'parse_sp')); if ($this->options['after_loop_s']) add_action('loop_end', array($after_loop, 'parse_sp')); } /**********************************************************************/ function plugin_option_page_content() { if (isset($_POST['ZMG_SUBMIT'])) { $this->validate_params(); if (isset($this->errors)) echo $this->disappearing_message( __('Incorrect settings value', $this->hook) ); else { $this->save_options(); echo $this->disappearing_message( __('Settings have been saved', $this->hook) ); } } $this->form_begin($this->hidden('ZMG_SUBMIT')); $this->postbox($this->hook . '-blogroll_navigation', __('Blogroll navigation', $this->hook), $this->blogroll_navigation()); $this->postbox($this->hook . '-quick_links_on_single_post', __('Quick links on single post', $this->hook), $this->quick_links_on_single_post()); $this->postbox($this->hook . '-common_options_and_css', __('Common options & CSS', $this->hook), $this->common_options_and_css()); $this->form_end(); } /**********************************************************************/ function blogroll_navigation() { $content = '

'; $content .= __('You may use the following Zamango "tags" while ' . 'configuring Page Navigation bar on lists pages', $this->hook); $content .= '

'; $ul = array(); $html = '[zmg_pn:current] '; $html .= __('current page number (i.e. page on which the ' . 'navigation bar is shown)', $this->hook); $ul[] = $this->elem($html); $html = '[zmg_pn:total] '; $html .= __('total pages amount', $this->hook); $ul[] = $this->elem($html); $html = '[zmg_pn:page] '; $html .= __('number of page which is processing by script for ' . 'that moment (note that if page navigation bar ' . 'contains links to 10 pages plus current then value ' . 'of [zmg_pn:page] will have 11 valuessequentially)', $this->hook); $ul[] = $this->elem($html); $content .= $this->ul($ul); $content .= '

'; $content .= __('Also you can use any HTML tags.', $this->hook); $content .= '

'; $disc_link = $this->add_description(__('Help on Zamango tags', $this->hook), $content, 'blogroll_navigation'); $content = $this->information_message( __('Navigation bar shown on the index, category, tag, ' . 'archive browsing, search results and other lists', $this->hook) ); $rows = array(); $row = array(); $html = ''; $html = __('Where the pagebar must be inserted:', $this->hook); $row[] = $this->elem($html); $html = $this->checkbox('before_loop', '1', $this->options['before_loop'], __('before posts list', $this->hook)); $html .= '
'; $html .= $this->checkbox('after_loop', '1', $this->options['after_loop'], __('after posts list', $this->hook)); $row[] = $this->elem($html); $rows[] = $this->elem($row); $row = array(); $html = __('Left part', $this->hook); $row[] = $this->elem($html); $html = $this->text('left', $this->options['left'], __('Any positive number which defines amount ' . 'of links in the LEFT part of pagebar', $this->hook)); if ($this->errors['left']) $html .= $this->error_message( __($this->errors['left'], $this->hook)); $row[] = $this->elem($html); $rows[] = $this->elem($row); $row = array(); $html = __('Center part', $this->hook); $row[] = $this->elem($html); $html = $this->text('center', $this->options['center'], __('Any odd positive number which defines ' . 'amount of links in the CENTRAL part of ' . 'pagebar. Note that if you enter even ' . 'number it will be increased by one (to ' . 'become odd one).', $this->hook)); if ($this->errors['center']) $html .= $this->error_message( __($this->errors['center'], $this->hook)); $row[] = $this->elem($html); $rows[] = $this->elem($row); $row = array(); $html = __('Right part', $this->hook); $row[] = $this->elem($html); $html = $this->text('right', $this->options['right'], __('Any positive number which defines amount ' . 'of links in the RIGHT part of pagebar', $this->hook)); if ($this->errors['right']) $html .= $this->error_message( __($this->errors['right'], $this->hook)); $row[] = $this->elem($html); $rows[] = $this->elem($row); $row = array(); $html = __('Separator', $this->hook); $row[] = $this->elem($html); $html = $this->text('separator', $this->options['separator'], __('Text separating the central part of page ' . 'bar from the right and left ones', $this->hook)); if ($this->errors['separator']) $html .= $this->error_message( __($this->errors['separator'], $this->hook)); $row[] = $this->elem($html); $rows[] = $this->elem($row); $row = array(); $html = __('Link to previous page:', $this->hook); $row[] = $this->elem($html); $ul = array(); $ul[] = $this->elem( $this->radio('prev_link', 'never', $this->options['prev_link'] == 'never', __('don\'t show', $this->hook))); $ul[] = $this->elem( $this->radio('prev_link', 'auto', $this->options['prev_link'] == 'auto', __('auto', $this->hook))); $ul[] = $this->elem( $this->radio('prev_link', 'always', $this->options['prev_link'] == 'always', __('always show', $this->hook))); $html = $this->ul($ul, 'row'); if ($this->errors['prev_link']) $html .= $this->error_message( __($this->errors['prev_link'], $this->hook)); $label = __('Text of the link to previous page', $this->hook); $label .= ' hook) . '">'; $label .= __('(Zamango tags and HTML are allowed)', $this->hook); $label .= ''; $html .= $this->text('prev_tag', $this->options['prev_tag'], $label); if ($this->errors['prev_tag']) $html .= $this->error_message( __($this->errors['prev_tag'], $this->hook)); $row[] = $this->elem($html); $rows[] = $this->elem($row); $row = array(); $html = __('Link to next page:', $this->hook); $row[] = $this->elem($html); $ul = array(); $ul[] = $this->elem( $this->radio('next_link', 'never', $this->options['next_link'] == 'never', __('don\'t show', $this->hook))); $ul[] = $this->elem( $this->radio('next_link', 'auto', $this->options['next_link'] == 'auto', __('auto', $this->hook))); $ul[] = $this->elem( $this->radio('next_link', 'always', $this->options['next_link'] == 'always', __('always show', $this->hook))); $html = $this->ul($ul, 'row'); if ($this->errors['next_link']) $html .= $this->error_message( __($this->errors['next_link'], $this->hook)); $label = __('Text of the link to next page', $this->hook); $label .= ' hook) . '">'; $label .= __('(Zamango tags and HTML are allowed)', $this->hook); $label .= ''; $html .= $this->text('next_tag', $this->options['next_tag'], $label); if ($this->errors['next_tag']) $html .= $this->error_message( __($this->errors['next_tag'], $this->hook)); $row[] = $this->elem($html); $rows[] = $this->elem($row); $row = array(); $html = __('Link to first page:', $this->hook); $row[] = $this->elem($html); $label = __('Text of the link to first page', $this->hook); $label .= ' hook) . '">'; $label .= __('(Zamango tags and HTML are allowed)', $this->hook); $label .= ''; $html = $this->text('first_tag', $this->options['first_tag'], $label); if ($this->errors['first_tag']) $html .= $this->error_message( __($this->errors['first_tag'], $this->hook)); $row[] = $this->elem($html); $rows[] = $this->elem($row); $row = array(); $html = __('Link to last page:', $this->hook); $row[] = $this->elem($html); $label = __('Text of the link to last page', $this->hook); $label .= ' hook) . '">'; $label .= __('(Zamango tags and HTML are allowed)', $this->hook); $label .= ''; $html = $this->text('last_tag', $this->options['last_tag'], $label); if ($this->errors['last_tag']) $html .= $this->error_message( __($this->errors['last_tag'], $this->hook)); $row[] = $this->elem($html); $rows[] = $this->elem($row); $row = array(); $html = __('Current page sign:', $this->hook); $row[] = $this->elem($html); $label = __('Text defining the current page', $this->hook); $label .= ' hook) . '">'; $label .= __('(Zamango tags and HTML are allowed)', $this->hook); $label .= ''; $html = $this->text('curr_tag', $this->options['curr_tag'], $label); if ($this->errors['curr_tag']) $html .= $this->error_message( __($this->errors['curr_tag'], $this->hook)); $row[] = $this->elem($html); $rows[] = $this->elem($row); $row = array(); $html = __('Common link text:', $this->hook); $row[] = $this->elem($html); $label = __('Text of the link to other page i.e. which is not ' . 'described above', $this->hook); $label .= ' hook) . '">'; $label .= __('(Zamango tags and HTML are allowed)', $this->hook); $label .= ''; $html = $this->text('stnd_tag', $this->options['stnd_tag'], $label); if ($this->errors['stnd_tag']) $html .= $this->error_message( __($this->errors['stnd_tag'], $this->hook)); $row[] = $this->elem($html); $rows[] = $this->elem($row); $row = array(); $html = __('Pop-up hints', $this->hook); $row[] = $this->elem($html); $html = $this->checkbox('tooltips', '1', $this->options['tooltips'], __('Show hints', $this->hook)); $html .= '
'; $html .= $this->text('ttip_tag', $this->options['ttip_tag'], __('Text of on-hover hint', $this->hook)); if ($this->errors['ttip_tag']) $html .= $this->error_message( __($this->errors['ttip_tag'], $this->hook)); $html .= '
'; if (! $this->options['tooltips']) { $html .= ''; } $row[] = $this->elem($html); $rows[] = $this->elem($row); $row = array(); $row[] = $this->elem(''); $html = $this->submit(__('Save', $this->hook)); $row[] = $this->elem($html); $rows[] = $this->elem($row); $content .= $this->table($rows); return $content; } /**********************************************************************/ function quick_links_on_single_post() { $content = '

'; $content .= __('You may use the following Zamango "tags" while ' . 'configuring Page Navigation bar on single posts', $this->hook); $content .= '

'; $ul = array(); $html = '[zmg_pn:prev_post] '; $html .= __('Title for link to previous post', $this->hook); $ul[] = $this->elem($html); $html = '[zmg_pn:next_post] '; $html .= __('Title for link to next post', $this->hook); $ul[] = $this->elem($html); $content .= $this->ul($ul); $content .= '

'; $content .= __('Also you can use any HTML tags.', $this->hook); $content .= '

'; $disc_link = $this->add_description(__('Help on Zamango tags', $this->hook), $content, 'quick_links_on_single_post'); $content = $this->information_message( __('Links to `Previous post` and `Next post` shown on single ' . 'post', $this->hook) ); $rows = array(); $row = array(); $html = ''; $html = __('Where links must be inserted:', $this->hook); $row[] = $this->elem($html); $html = $this->checkbox('before_loop_s', '1', $this->options['before_loop_s'], __('before post', $this->hook)); $html .= '
'; $html .= $this->checkbox('after_loop_s', '1', $this->options['after_loop_s'], __('after post', $this->hook)); $row[] = $this->elem($html); $rows[] = $this->elem($row); $row = array(); $html = __('Linking', $this->hook); $row[] = $this->elem($html); $html = $this->checkbox('in_category', '1', $this->options['in_category'], __('Show links to the same category ' . 'posts only', $this->hook)); $html .= '
'; $html .= $this->checkbox('fl_linking', '1', $this->options['fl_linking'], __('Crosslink newest and oldest posts ' . '(make links circle)', $this->hook)); $row[] = $this->elem($html); $rows[] = $this->elem($row); $row = array(); $html = __('Link to previous post:', $this->hook); $row[] = $this->elem($html); $label = __('Text of the link to previos post', $this->hook); $label .= ' hook) . '">'; $label .= __('(Zamango tags and HTML are allowed)', $this->hook); $label .= ''; $html = $this->text('prev_tag_s', $this->options['prev_tag_s'], $label); if ($this->errors['prev_tag_s']) $html .= $this->error_message( __($this->errors['prev_tag_s'], $this->hook)); $row[] = $this->elem($html); $rows[] = $this->elem($row); $row = array(); $html = __('Link to next post:', $this->hook); $row[] = $this->elem($html); $label = __('Text of the link to next post', $this->hook); $label .= ' hook) . '">'; $label .= __('(Zamango tags and HTML are allowed)', $this->hook); $label .= ''; $html = $this->text('next_tag_s', $this->options['next_tag_s'], $label); if ($this->errors['next_tag_s']) $html .= $this->error_message( __($this->errors['next_tag_s'], $this->hook)); $row[] = $this->elem($html); $rows[] = $this->elem($row); $row = array(); $row[] = $this->elem(''); $html = $this->submit(__('Save', $this->hook)); $row[] = $this->elem($html); $rows[] = $this->elem($row); $content .= $this->table($rows); return $content; } /**********************************************************************/ function common_options_and_css() { $content = $this->information_message( __('Common options (only one for now) & CSS customization', $this->hook) ); $rows = array(); $row = array(); $html = ''; $row[] = $this->elem(''); $html = $this->checkbox('clear_options', '1', $this->options['clear_options'], __('Delete options when deactivating the ' . 'plugin', $this->hook)); $row[] = $this->elem($html); $rows[] = $this->elem($row); $row = array(); $html = __('Use CSS:', $this->hook); $row[] = $this->elem($html); $ul = array(); $ul[] = $this->elem( $this->radio('is_zmg_css', '1', $this->options['is_zmg_css'], __('Default CSS', $this->hook))); $html = $this->radio('is_zmg_css', '0', (! $this->options['is_zmg_css']), __('Custom CSS:', $this->hook)); $html .= '
'; $html .= $this->textarea('css', $this->options['css'], 13, 80); $ul[] = $this->elem($html); $html = $this->ul($ul, 'col'); if ($this->errors['is_zmg_css']) $html .= $this->error_message( __($this->errors['is_zmg_css'], $this->hook)); $row[] = $this->elem($html); $rows[] = $this->elem($row); $row = array(); $row[] = $this->elem(''); $html = $this->submit(__('Save', $this->hook)); $row[] = $this->elem($html); $rows[] = $this->elem($row); $content .= $this->table($rows); return $content; } } $zmg_page_navigation = new zmg_page_navigation(); /**************************************************************************/ class zmg_pn_parser { var $current_page; var $num_pages; var $options; var $id; /**********************************************************************/ function zmg_pn_parser($id, $options, $version) { $this->options = $options; $this->id = $id; $this->version = $version; } /**********************************************************************/ function parse_br() { global $paged, $wp_query, $wpdb; if (defined('ZMG_BLOGROLL_RENDERED')) return true; if (!defined('ZMG_BLOGROLL_RENDERED')) define('ZMG_BLOGROLL_RENDERED', true); if (is_single() || !in_the_loop() || is_feed()) return true; $this->current_page = $paged; $this->num_pages = intval($wp_query->max_num_pages); if ($this->num_pages <= 1) return 1; if (empty($this->current_page)) $this->current_page = 1; echo "\n\n"; echo "
"; echo "
\n"; $this->prev_page(); if ($this->num_pages <= $this->options["left"] + $this->options["center"] + $this->options["right"]) { for ($i = 1; $i <= $this->num_pages; $i++) if ($i == $this->current_page) $this->curr_page(); else $this->stnd_page($i); } else if ($this->current_page < $this->options["left"] + $this->options["center"]) { $lc = $this->options["left"] + $this->options["center"]; for ($i = 1; $i <= $lc; $i++) if ($i == $this->current_page) $this->curr_page(); else $this->stnd_page($i); $this->separator(); for ($i = $this->num_pages - $this->options["right"] +1; $i <= $this->num_pages; $i++) $this->stnd_page($i); } else if ($this->current_page - 1> $this->num_pages - $this->options["center"] - $this->options["right"]) { for ($i = 1; $i <= $this->options["left"]; $i++) $this->stnd_page($i); $this->separator(); for ($i = 1 + $this->num_pages - $this->options["center"] - $this->options["right"]; $i <= $this->num_pages; $i++) if ($i == $this->current_page) $this->curr_page(); else $this->stnd_page($i); } else { for ($i = 1; $i <= $this->options["left"]; $i++) $this->stnd_page($i); $this->separator(); $c = floor ($this->options["center"] / 2); for ($i = $this->current_page - $c; $i <= $this->current_page + $c; $i++) if ($i == $this->current_page) $this->curr_page(); else $this->stnd_page($i); $this->separator(); for ($i = $this->num_pages - $this->options["right"] +1; $i <= $this->num_pages; $i++) $this->stnd_page($i); } $this->next_page(); echo "
\n"; echo "
"; echo "\n"; } /**********************************************************************/ function parse_sp() { global $wpdb; if (!is_single() || !in_the_loop() || is_feed()) return true; $id = get_the_ID(); $date = $wpdb->get_var(" SELECT `post_date_gmt` FROM `$wpdb->posts` WHERE `ID` = '$id' LIMIT 1 "); if ($this->options['in_category']) { $cat_id = $wpdb->get_var(" SELECT `tr`.`term_taxonomy_id` FROM `$wpdb->term_relationships` AS `tr` INNER JOIN `$wpdb->term_taxonomy` AS `tt` ON `tr`.`term_taxonomy_id` = `tt`.`term_taxonomy_id` WHERE `tr`.`object_id` = '$id' AND `tt`.`taxonomy` = 'category' LIMIT 1 "); $query = " SELECT `object_id` FROM `$wpdb->term_relationships` WHERE `term_taxonomy_id` = '$cat_id' "; $posts_id = $wpdb->get_results($query, ARRAY_N); if ($posts_id) { $posts = array (); foreach ($posts_id as $post_id) array_push($posts, $post_id[0]); $posts_in = implode(',', $posts); $query = " SELECT `post_date_gmt`, `ID`, `post_title` FROM `$wpdb->posts` WHERE `ID` IN ($posts_in) AND `post_status` = 'publish' AND `post_type` = 'post' ORDER BY `post_date_gmt`, `ID` "; $sorted_posts = $wpdb->get_results($query, ARRAY_A); $count = count($sorted_posts); for ($i = 0; $i < $count && $sorted_posts[$i]['ID'] != $id; $i++) {} $prev = ($i == 0) ? (($this->options['fl_linking']) ? $sorted_posts[$count - 1] : NULL) : $sorted_posts[$i - 1]; $next = ($i == $count - 1) ? (($this->options['fl_linking']) ? $sorted_posts[0] : NULL) : $sorted_posts[$i + 1]; } } else { $query = " SELECT `ID`, `post_title` FROM `$wpdb->posts` WHERE `post_date_gmt` <= '$date' AND `post_status` = 'publish' AND `post_type` = 'post' ORDER BY `post_date_gmt`, `ID` "; $sorted_posts = $wpdb->get_results($query, ARRAY_A); $count = count($sorted_posts); for ($i = 0; $i < $count && $sorted_posts[$i]['ID'] != $id; $i++) {} $prev = ($i == 0) ? (($this->options['fl_linking']) ? $sorted_posts[$count - 1] : NULL) : $sorted_posts[$i - 1]; $next = ($i == $count - 1) ? (($this->options['fl_linking']) ? $sorted_posts[0] : NULL) : $sorted_posts[$i + 1]; } if ($prev || $next) { echo "\n"; echo "
"; echo "
\n"; if ($prev) { echo "" . str_replace("[zmg_pn:prev_post]", $prev['post_title'], $this->options['prev_tag_s']) . "\n"; } if ($next) { echo "" . str_replace("[zmg_pn:next_post]", $next['post_title'], $this->options['next_tag_s']) . "\n"; } echo "
\n"; echo "
"; echo "\n"; } } /**********************************************************************/ function prev_page() { if ($this->options["prev_link"] == "never") return 1; if (($this->options["prev_link"] == "auto") && ($this->current_page == 1)) return 1; echo ($this->current_page == 1) ? "" . $this->replace_tags($this->options["prev_tag"], 0) . "\n" : "get_tooltip($this->current_page - 1) . ">" . $this->replace_tags($this->options["prev_tag"], $this->current_page - 1) . "\n"; } /**********************************************************************/ function next_page() { if ($this->options["next_link"] == "never") return 1; if (($this->options["next_link"] == "auto") && ($this->current_page == $this->num_pages)) return 1; echo ($this->current_page == $this->num_pages) ? "" . $this->replace_tags($this->options["next_tag"], 0) . "\n" : "get_tooltip($this->current_page + 1) . ">" . $this->replace_tags($this->options["next_tag"], $this->current_page + 1) . "\n"; } /**********************************************************************/ function curr_page() { echo "" . $this->replace_tags("", 0) . "\n"; } /**********************************************************************/ function stnd_page($page) { echo "get_tooltip($page) . ">" . $this->replace_tags("", $page) . "\n"; } /**********************************************************************/ function separator() { echo ""; echo ($this->options["separator"] !== "") ? $this->options["separator"] : "..."; echo"\n"; } /**********************************************************************/ function get_link($page) { return get_pagenum_link($page); } /**********************************************************************/ function get_tooltip($page) { if (! $this->options["tooltips"]) return ""; return " title='" . $this->replace_tags($this->options["ttip_tag"], $page) . "'"; } /**********************************************************************/ function replace_tags($text, $page) { if (! $page) $page = $this->current_page; if (! $text) switch ($page) { case 1 : $text = $this->options["first_tag"]; break; case $this->num_pages : $text = $this->options["last_tag"]; break; case $this->current_page : $text = $this->options["curr_tag"]; break; default : $text = $this->options["stnd_tag"]; } $text = str_replace ("[zmg_pn:page]" , $page, $text); $text = str_replace ("[zmg_pn:current]", $this->current_page, $text); $text = str_replace ("[zmg_pn:total]" , $this->num_pages, $text); return $text; } } } Recensement Web '; } ?>
 

 
 
 
   

 
 

Ajouts récents

Bureau d'études thermiques dans l'Hérault

Le bureau d'études Rousselot (Hérault) vous accompagne de l'étude thermique jusqu'à la fin de votre votre chantier...

 

CME, panneau solaire et chauffage électrique

Basée dans l'Aude, l'entreprise CME est spécialisée dans l'installation de systèmes à énergie renouvelable. Pour tous vos projets, CME vous accompagne...

 

Beaute chirurgie esthetique

Beauté chirurgie esthétique est une agence spécialiste de la médecine esthétique qui vous donne toutes les informations nécessaires pour votre projet...

 

KER Interim : votre agence à Saint-Brieuc

KER Interim est une agence de recrutement située à Saint-Brieuc dont la zone de chalandise s'étend au département des Côtes d'Armor...

 

Experts en sécurité et réseaux informatiques

Wancore aide les grandes entreprises et organisations à améliorer leur infrastructure IT en matière de télécommunications, réseaux et cybersécurité..

 

Ilot savoureuse, ecoquartier à Sochaux

L'ilot savoureuse est un projet d'aménagement initié par la ville de Sochaux en vue d'établir un éco-quartier...

 

Formabilis (Suisse)

Organisation de stages formateurs et de cours destinés aux personnes désirant acquérir les connaissances de base dans les professions liées à la petite enfance. Stag..

 

Accelec électricien en contrôle d'accès

Accelec propose ses services d'électricien à Paris et en Ile de France. Il est spécialiste en pose, entretien et dépannage de matériel électrique..

 
 
 
 

© Copyright 2016. Recensement-Web - thumbshots by thumbshots.com