Accueil > Divers > Infographiste > CMS > GetSimple > Comment modifier le menu de GetSimple

Comment modifier le menu de GetSimple

jeudi 27 juillet 2017, par Philippe Donnart

Comment modifier le menu par défaut sous GetSimple, ici en ajoutant une class sur la balise de lien pour un thème.

Par défaut le code pour ajouter le menu sous GetSimple est :
<?php get_navigation(return_page_slug()); ?>

Ce que je veux : obtenir ce menu https://pixelarity.com/indivisible pour ce thème que j’ai adapté sous GetSimple.
Le problème est de rajouter une class="button" sur la balise a href="

L’idée : créer un plugin, qui ne fonctionnera que pour ce thème, reprenant le code d’origine utilisé par GetSimple et rajouter la class

Les étapes :

  1. étape : rechercher " function get_navigation " dans les fichiers (normalement ce code se trouve dans admin/inc/theme_functions.php)
  2. étape : créer le plugin, vous trouverez sur le wiki toutes les infos sur la création, notamment les éléments à ajouter pour afficher les infos dans l’administration
  3. étape : ajouter la class="button"
  4. étape : télécharger et activer le plugin
  5. étape : remplacer le code du menu get_navigation par get_my_navigation
    dans le thème

Le code du plugin My Navigation

<?php 
/*
Plugin Name: My Navigation
Description: This is a theme function that add class="button" on navigation for your theme; this is a revisit of get_navigation() code
Version: 0.1
Author: Philippe DONNART
Author URI: https://www.donnart.fr
*/

# get correct id for plugin
$thisfile=basename(__FILE__, ".php");
 
# register plugin
register_plugin(
	$thisfile, //Plugin id
	'My Navigation', 	//Plugin name
	'1.0', 		//Plugin version
	'Philippe DONNART',  //Plugin author
	'https://www.donnart.fr/', //author website
	'Add class="button" on balise a for theme Indivisible ', //Plugin description
	'theme', //page type - on which admin tab to display
	'get_my_navigation'  //main function (administration)
);

/**
 * Get Main Navigation
 *
 * This will return unordered list of main navigation
 * This function uses the menu opitions listed within the 'Edit Page' control panel screen
 *
 * @since 1.0
 * @uses GSDATAOTHERPATH
 * @uses getXML
 * @uses subval_sort
 * @uses find_url
 * @uses strip_quotes 
 * @uses exec_filter 
 *
 * @param string $currentpage This is the ID of the current page the visitor is on
 * @param string $classPrefix Prefix that gets added to the parent and slug classnames
 * @return string 
 */	
function get_my_navigation($currentpage,$classPrefix = "") {

	$menu = '';

	global $pagesArray;
	
	$pagesSorted = subval_sort($pagesArray,'menuOrder');
	if (count($pagesSorted) != 0) { 
		foreach ($pagesSorted as $page) {
			$sel = ''; $classes = '';
			$url_nav = $page['url'];
			
			if ($page['menuStatus'] == 'Y') { 
				$parentClass = !empty($page['parent']) ? $classPrefix.$page['parent'] . " " : "";
				$classes = trim( $parentClass.$classPrefix.$url_nav);
				if ("$currentpage" == "$url_nav") $classes .= " current active";
				if ($page['menu'] == '') { $page['menu'] = $page['title']; }
				if ($page['title'] == '') { $page['title'] = $page['menu']; }
				$menu .= '<li class="'. $classes .'"><a href="'. find_url($page['url'],$page['parent']) . '" title="'. encode_quotes(cl($page['title'])) .'" class="button">'.strip_decode($page['menu']).'</a></li>'."\n";
			}
		}
		
	}
	
	echo exec_filter('menuitems',$menu);
}
?>

Pour utiliser le thème :


 il faut activer tous les plugins (Custom Title, I18N Base, I18N Custom Fields, I18N et My Navigation)
 télécharger une image (720x900 idéalement)
 aller dans admin/load.php ?id=i18n_customfields et créer un Custom Fields (photo, imagepage, Image, et éventuellement le lien vers l’image)
 ensuite sur la page dépliez Options et renseignez imagepage : et Custom page title :