Changeset 3371792
- Timestamp:
- 10/02/2025 12:56:58 PM (6 months ago)
- Location:
- menu-item-types/trunk
- Files:
-
- 19 edited
-
admin/metabox/mitypes-menu-item-types.php (modified) (2 diffs)
-
admin/nav_menu.php (modified) (6 diffs)
-
composer.json (modified) (1 diff)
-
composer.lock (modified) (1 diff)
-
core/App.php (modified) (3 diffs)
-
menu-item-types.php (modified) (2 diffs)
-
mitypes/item-types/heading.php (modified) (2 diffs)
-
mitypes/item-types/image.php (modified) (5 diffs)
-
mitypes/item-types/nolink.php (modified) (3 diffs)
-
mitypes/item-types/paragraph.php (modified) (3 diffs)
-
mitypes/renders/renders.php (modified) (2 diffs)
-
mitypes/renders/templates/image.php (modified) (1 diff)
-
readme.txt (modified) (4 diffs)
-
vendor/autoload.php (modified) (1 diff)
-
vendor/composer/InstalledVersions.php (modified) (5 diffs)
-
vendor/composer/autoload_files.php (modified) (1 diff)
-
vendor/composer/autoload_real.php (modified) (2 diffs)
-
vendor/composer/autoload_static.php (modified) (2 diffs)
-
vendor/composer/installed.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
menu-item-types/trunk/admin/metabox/mitypes-menu-item-types.php
r3115898 r3371792 10 10 require_once( $app->getDirectoryPath() . 'admin/metabox/item-types/mitypes-item-type-custom.php' ); 11 11 12 13 12 /** 14 * 15 * 16 * handler for add menuitem in nva-menu admin screen 13 * Handler for add menuitem in nav-menu admin screen 17 14 * check with custom and flag and param added url of item 18 15 */ 19 20 add_filter( 'wp_setup_nav_menu_item' , 'mitypes_setup_nav_menu_item' );21 16 22 17 function mitypes_setup_nav_menu_item( $menu_item ){ … … 138 133 return $menu_item; 139 134 } 135 136 add_filter( 'wp_setup_nav_menu_item' , 'mitypes_setup_nav_menu_item' ); -
menu-item-types/trunk/admin/nav_menu.php
r3115898 r3371792 6 6 7 7 /** 8 * Enqueue script for admin WP:AM setings page 9 * 10 * @since 1.0 8 * Enqueue script for admin 11 9 */ 12 add_action( 'admin_enqueue_scripts', 'mitypes_nav_menu_enqueue_scripts' );13 14 10 function mitypes_nav_menu_enqueue_scripts( $hook ){ 15 11 … … 29 25 } 30 26 27 add_action( 'admin_enqueue_scripts', 'mitypes_nav_menu_enqueue_scripts' ); 31 28 32 29 30 31 /** 32 * Customize custom menu item types in menu screen 33 * 34 * @return void 35 */ 33 36 function mitypes_nav_menu_mark_item_type( $item_id, $item, $depth, $args, $id ) { 34 37 … … 44 47 45 48 // find item type 46 47 49 $mit_buildin = array_keys( $menu_item_types['buildin'] ); 48 50 $mit_plugin = array_keys( $menu_item_types['plugin'] ); … … 53 55 $hide_url_of_nav_item = true ; 54 56 } 55 56 57 } 57 58 58 // $wp_buildin = array( 'post_type', 'taxonomy' );59 60 59 echo '<script> mitypes_set_menu_item_type_css( '.$item_id.', "' . $item_type . '", ' . $hide_url_of_nav_item . ' ); </script>'; 61 62 60 } 63 61 … … 67 65 68 66 /** 69 * 70 * @since : 1.1 67 * Add CSS for menu item types 71 68 */ 72 73 add_action( 'admin_head', 'mitypes_mit_items_icons_css' );74 75 69 function mitypes_mit_items_icons_css( $hook ){ 76 70 … … 95 89 echo '</style>'; 96 90 } 91 } 97 92 98 } 93 add_action( 'admin_head', 'mitypes_mit_items_icons_css' ); -
menu-item-types/trunk/composer.json
r3115898 r3371792 1 1 { 2 "name": "m axpertici/menu-item-types",2 "name": "mxp/menu-item-types", 3 3 "require-dev": {}, 4 4 "autoload": { -
menu-item-types/trunk/composer.lock
r3115898 r3371792 5 5 "This file is @generated automatically" 6 6 ], 7 "content-hash": " e73746999016f68c6ba32422bbd87176",7 "content-hash": "20a78310cef7c845da281eb9ebb1a427", 8 8 "packages": [], 9 9 "packages-dev": [], 10 10 "aliases": [], 11 11 "minimum-stability": "stable", 12 "stability-flags": [],12 "stability-flags": {}, 13 13 "prefer-stable": false, 14 14 "prefer-lowest": false, 15 "platform": [],16 "platform-dev": [],15 "platform": {}, 16 "platform-dev": {}, 17 17 "plugin-api-version": "2.6.0" 18 18 } -
menu-item-types/trunk/core/App.php
r3223618 r3371792 9 9 10 10 public $prefix = '#mitypes' . '_' ; 11 12 public $acf_group_prefix = 'group_mit_' ; 13 public $acf_field_prefix = 'field_mit_' ; 11 14 12 15 private $itemsColection = []; … … 53 56 } 54 57 55 do_action('mitypes_init');58 // do_action('mitypes_init'); 56 59 } 57 60 … … 136 139 } 137 140 141 do_action('mitypes_init'); 142 138 143 if( is_admin() ){ 139 144 $admin = Admin::instance(); -
menu-item-types/trunk/menu-item-types.php
r3223618 r3371792 4 4 Plugin URI: https://maxpertici.fr#menu-item-types 5 5 Description: Use elements of a personalized type in the navigation menus. 6 Version: 1. 66 Version: 1.7 7 7 Author: @maxpertici 8 8 Author URI: https://maxpertici.fr … … 18 18 use MXP\MITypes\App; 19 19 20 require_once( 'config.php' );21 20 $loader = require __DIR__ . '/vendor/autoload.php'; 22 21 -
menu-item-types/trunk/mitypes/item-types/heading.php
r3115898 r3371792 1 1 <?php 2 3 use MXP\MITypes\App; 4 5 $App = App::instance(); 2 6 3 7 return [ … … 7 11 'render' => '', 8 12 'field-group' => array( 9 'key' => MITYPES_ACF_PREFIX_GROUP.'heading',13 'key' => $App->acf_group_prefix.'heading', 10 14 'title' => __( 'Heading settings group', 'menu-item-types' ), 11 15 'fields' => array( 12 16 array( 13 'key' => MITYPES_ACF_PREFIX_FIELD. 'heading_selector',17 'key' => $App->acf_field_prefix . 'heading_selector', 14 18 'label' => __( 'Heading level' , 'menu-item-types'), 15 19 'name' => 'mitypes_heading_selector', -
menu-item-types/trunk/mitypes/item-types/image.php
r3115898 r3371792 1 1 <?php 2 3 use MXP\MITypes\App; 4 5 $App = App::instance(); 6 2 7 3 8 /** … … 35 40 } 36 41 42 43 37 44 return [ 38 45 'slug' => 'image', … … 45 52 }, 46 53 'field-group' => array( 47 'key' => MITYPES_ACF_PREFIX_GROUP.'image',54 'key' => $App->acf_group_prefix.'image', 48 55 'title' => __( 'Image settings group', 'menu-item-types' ), 49 56 'fields' => array( 50 57 array( 51 'key' => MITYPES_ACF_PREFIX_FIELD.'image_selector',58 'key' => $App->acf_field_prefix.'image_selector', 52 59 'label' => __( 'Image', 'menu-item-types' ), 53 60 'name' => 'mitypes_image_media', … … 78 85 79 86 array( 80 'key' => MITYPES_ACF_PREFIX_FIELD.'image_size',87 'key' => $App->acf_field_prefix.'image_size', 81 88 'label' => __( 'Size', 'menu-item-types' ), 82 89 'name' => 'mitypes_image_size', … … 106 113 107 114 ), 108 109 110 115 'location' => array( 111 116 array( 112 117 array( 113 // 'param' => 'nav_menu_item',114 118 'param' => 'mitypes', 115 119 'operator' => '==', 116 // 'value' => 'all',117 120 'value' => 'image', 118 121 ), -
menu-item-types/trunk/mitypes/item-types/nolink.php
r3115898 r3371792 1 1 <?php 2 3 use MXP\MITypes\App; 4 5 $App = App::instance(); 2 6 3 7 return [ … … 8 12 'field-group' => array( 9 13 10 'key' => MITYPES_ACF_PREFIX_GROUP.'nolink',14 'key' => $App->acf_group_prefix.'nolink', 11 15 'title' => __( 'Nolink settings group', 'menu-item-types' ), 12 16 … … 16 20 array( 17 21 array( 18 // 'param' => 'nav_menu_item',19 22 'param' => 'mitypes', 20 23 'operator' => '==', 21 // 'value' => 'all',22 24 'value' => 'nolink', 23 25 ), -
menu-item-types/trunk/mitypes/item-types/paragraph.php
r3115898 r3371792 1 1 <?php 2 use MXP\MITypes\App; 3 4 $App = App::instance(); 2 5 3 6 return [ 4 'slug' => 'para praph',7 'slug' => 'paragraph', 5 8 'label' => __( 'Paragraph', 'menu-item-types'), 6 9 'icon' => '', … … 8 11 'field-group' => array( 9 12 10 'key' => MITYPES_ACF_PREFIX_GROUP.'paragraph',13 'key' => $App->acf_group_prefix.'paragraph', 11 14 'title' => __( 'Paragraph settings group', 'menu-item-types' ), 12 15 … … 14 17 15 18 array( 16 'key' => MITYPES_ACF_PREFIX_FIELD. 'paragraph_text',19 'key' => $App->acf_field_prefix . 'paragraph_text', 17 20 'label' => __( 'Text' , 'menu-item-types'), 18 21 'name' => 'mitypes_paragraph_text', -
menu-item-types/trunk/mitypes/renders/renders.php
r3115898 r3371792 5 5 defined( 'ABSPATH' ) or die(); 6 6 7 add_filter( 'walker_nav_menu_start_el', 'mitypes_menu_item_custom_output', 10, 4 );8 7 9 // https://developer.wordpress.org/reference/hooks/walker_nav_menu_start_el/ 10 8 /** 9 * Custom output for menu item 10 * 11 * @see https://developer.wordpress.org/reference/hooks/walker_nav_menu_start_el/ 12 */ 11 13 function mitypes_menu_item_custom_output( $item_output, $item, $depth, $args ) { 12 14 … … 99 101 } 100 102 103 add_filter( 'walker_nav_menu_start_el', 'mitypes_menu_item_custom_output', 10, 4 ); 104 105 101 106 102 107 /** -
menu-item-types/trunk/mitypes/renders/templates/image.php
r3115898 r3371792 30 30 $size = 'thumbnail' ; 31 31 $img_size = get_field('mitypes_image_size', $item->ID ); 32 if( isset( $img_size ) && $img_size != '' ){ $size = array_keys($img_size) ; } 32 33 if( isset( $img_size ) && is_array( $img_size ) && isset( $img_size['value'] ) ){ 34 $size = $img_size['value'] ; 35 } 33 36 34 37 echo wp_kses( $args->before, $img_tags ); -
menu-item-types/trunk/readme.txt
r3223634 r3371792 4 4 Tags: Menu, Custom, Nav item 5 5 Requires at least: 5.8 6 Tested up to: 6. 7.17 Stable tag: 1. 68 Requires PHP: 7.06 Tested up to: 6.9.3 7 Stable tag: 1.7 8 Requires PHP: 8.0 9 9 License: GPLv2 10 10 License URI: http://www.gnu.org/licenses/gpl-2.0.html … … 19 19 20 20 21 == Menu Item Types can be extended == 22 You can create your own item type like this : 21 == Create your own item type == 22 You need to declare your new type in a plugin, child theme, or your custom theme like this : 23 23 24 ` 24 25 function register_my_custom_type(){ … … 26 27 $args = array( 27 28 'slug' => "my-custom-type", 28 'icon' => 'https://url-to-icon-file.svg',29 29 'label' => __( 'My Custom Type', 'my-custom-type' ), 30 'field-group' => 'path/to/acf/field-group-array.php',31 30 'render' => 'path/to/render/my-custom-render.php', 32 'callback' => function(){33 // Use callback for customize your item34 // you can add filter on 'mitypes_nav_menu_link_attributes' if you need35 }36 31 ); 37 32 38 33 mitypes_register_type( $args ); 39 34 } 40 add_ filter( 'mitypes_init', 'register_my_custom_type' );35 add_action( 'mitypes_init', 'register_my_custom_type' ); 41 36 ` 37 38 You can do more than that on $args. 39 40 ` 41 $args = array( 42 'slug' => "my-custom-type", 43 'label' => __( 'My Custom Type', 'my-custom-type' ), 44 'render' => 'path/to/my-custom-type-render.php', 45 46 // Link your custom icon 47 'icon' => 'https://url-to-icon-file.svg', 48 49 // Return ACF Group field array 50 'field-group' => [ 51 'key' => 'uniq_key', 52 'title' => 'Group Title', 53 'fields => [ 54 ... 55 ], 56 'location' => [ 57 [ 58 [ 59 'param' => 'mitypes', 60 'operator' => '==', 61 'value' => 'my-custom-type', 62 ], 63 ], 64 ], 65 66 ], 67 68 // Use callback for customize your item 69 // you can add filter on 'mitypes_nav_menu_link_attributes' if you need 70 'callback' => function(){ ... } 71 ); 72 ` 73 74 And finally, you can work in the render with some variables. 75 You have two variables available: 76 * $item which is the WP_Post of the menu item, with which you can, for example, retrieve custom field data. 77 * $args which is the array of arguments used during the generation of the menu item. 42 78 43 79 There are already additional plugins. … … 85 121 == Changelog == 86 122 123 = 1.7 = 124 * Fix : mitypes_init hook timing 125 * Fix : buildin paragraph slug (maybe if you excluded it with the error, it will be back in your admin, sorry) 126 * Fix : image size in Image type 127 * Update readme.txt with more code information 128 * PHP 8.x required 129 130 87 131 = 1.6 = 88 132 * Fix : translation's notices -
menu-item-types/trunk/vendor/autoload.php
r3115898 r3371792 23 23 require_once __DIR__ . '/composer/autoload_real.php'; 24 24 25 return ComposerAutoloaderInit e73746999016f68c6ba32422bbd87176::getLoader();25 return ComposerAutoloaderInit20a78310cef7c845da281eb9ebb1a427::getLoader(); -
menu-item-types/trunk/vendor/composer/InstalledVersions.php
r3115898 r3371792 32 32 */ 33 33 private static $installed; 34 35 /** 36 * @var bool 37 */ 38 private static $installedIsLocalDir; 34 39 35 40 /** … … 310 315 self::$installed = $data; 311 316 self::$installedByVendor = array(); 317 318 // when using reload, we disable the duplicate protection to ensure that self::$installed data is 319 // always returned, but we cannot know whether it comes from the installed.php in __DIR__ or not, 320 // so we have to assume it does not, and that may result in duplicate data being returned when listing 321 // all installed packages for example 322 self::$installedIsLocalDir = false; 312 323 } 313 324 … … 323 334 324 335 $installed = array(); 336 $copiedLocalDir = false; 325 337 326 338 if (self::$canGetVendors) { 339 $selfDir = strtr(__DIR__, '\\', '/'); 327 340 foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) { 341 $vendorDir = strtr($vendorDir, '\\', '/'); 328 342 if (isset(self::$installedByVendor[$vendorDir])) { 329 343 $installed[] = self::$installedByVendor[$vendorDir]; … … 331 345 /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */ 332 346 $required = require $vendorDir.'/composer/installed.php'; 333 $installed[] = self::$installedByVendor[$vendorDir] = $required; 334 if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) { 335 self::$installed = $installed[count($installed) - 1]; 347 self::$installedByVendor[$vendorDir] = $required; 348 $installed[] = $required; 349 if (self::$installed === null && $vendorDir.'/composer' === $selfDir) { 350 self::$installed = $required; 351 self::$installedIsLocalDir = true; 336 352 } 353 } 354 if (self::$installedIsLocalDir && $vendorDir.'/composer' === $selfDir) { 355 $copiedLocalDir = true; 337 356 } 338 357 } … … 351 370 } 352 371 353 if (self::$installed !== array() ) {372 if (self::$installed !== array() && !$copiedLocalDir) { 354 373 $installed[] = self::$installed; 355 374 } -
menu-item-types/trunk/vendor/composer/autoload_files.php
r3115898 r3371792 7 7 8 8 return array( 9 ' ec224cf6c752fb07fdf33257d272c280' => $baseDir . '/functions/register.php',9 '223b7f274868971ca7628883dd886300' => $baseDir . '/functions/register.php', 10 10 ); -
menu-item-types/trunk/vendor/composer/autoload_real.php
r3115898 r3371792 3 3 // autoload_real.php @generated by Composer 4 4 5 class ComposerAutoloaderInit e73746999016f68c6ba32422bbd871765 class ComposerAutoloaderInit20a78310cef7c845da281eb9ebb1a427 6 6 { 7 7 private static $loader; … … 23 23 } 24 24 25 spl_autoload_register(array('ComposerAutoloaderInit e73746999016f68c6ba32422bbd87176', 'loadClassLoader'), true, true);25 spl_autoload_register(array('ComposerAutoloaderInit20a78310cef7c845da281eb9ebb1a427', 'loadClassLoader'), true, true); 26 26 self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); 27 spl_autoload_unregister(array('ComposerAutoloaderInit e73746999016f68c6ba32422bbd87176', 'loadClassLoader'));27 spl_autoload_unregister(array('ComposerAutoloaderInit20a78310cef7c845da281eb9ebb1a427', 'loadClassLoader')); 28 28 29 29 require __DIR__ . '/autoload_static.php'; 30 call_user_func(\Composer\Autoload\ComposerStaticInit e73746999016f68c6ba32422bbd87176::getInitializer($loader));30 call_user_func(\Composer\Autoload\ComposerStaticInit20a78310cef7c845da281eb9ebb1a427::getInitializer($loader)); 31 31 32 32 $loader->register(true); 33 33 34 $filesToLoad = \Composer\Autoload\ComposerStaticInit e73746999016f68c6ba32422bbd87176::$files;34 $filesToLoad = \Composer\Autoload\ComposerStaticInit20a78310cef7c845da281eb9ebb1a427::$files; 35 35 $requireFile = \Closure::bind(static function ($fileIdentifier, $file) { 36 36 if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { -
menu-item-types/trunk/vendor/composer/autoload_static.php
r3115898 r3371792 5 5 namespace Composer\Autoload; 6 6 7 class ComposerStaticInit e73746999016f68c6ba32422bbd871767 class ComposerStaticInit20a78310cef7c845da281eb9ebb1a427 8 8 { 9 9 public static $files = array ( 10 ' ec224cf6c752fb07fdf33257d272c280' => __DIR__ . '/../..' . '/functions/register.php',10 '223b7f274868971ca7628883dd886300' => __DIR__ . '/../..' . '/functions/register.php', 11 11 ); 12 12 … … 32 32 { 33 33 return \Closure::bind(function () use ($loader) { 34 $loader->prefixLengthsPsr4 = ComposerStaticInit e73746999016f68c6ba32422bbd87176::$prefixLengthsPsr4;35 $loader->prefixDirsPsr4 = ComposerStaticInit e73746999016f68c6ba32422bbd87176::$prefixDirsPsr4;36 $loader->classMap = ComposerStaticInit e73746999016f68c6ba32422bbd87176::$classMap;34 $loader->prefixLengthsPsr4 = ComposerStaticInit20a78310cef7c845da281eb9ebb1a427::$prefixLengthsPsr4; 35 $loader->prefixDirsPsr4 = ComposerStaticInit20a78310cef7c845da281eb9ebb1a427::$prefixDirsPsr4; 36 $loader->classMap = ComposerStaticInit20a78310cef7c845da281eb9ebb1a427::$classMap; 37 37 38 38 }, null, ClassLoader::class); -
menu-item-types/trunk/vendor/composer/installed.php
r3115898 r3371792 1 1 <?php return array( 2 2 'root' => array( 3 'name' => 'm axpertici/menu-item-types',3 'name' => 'mxp/menu-item-types', 4 4 'pretty_version' => 'dev-master', 5 5 'version' => 'dev-master', 6 'reference' => ' 089059d72cadc8040819426320c8017b3ca7435b',6 'reference' => 'd6f1333defa45bd91b520c54e1b86517d494dfb9', 7 7 'type' => 'library', 8 8 'install_path' => __DIR__ . '/../../', … … 11 11 ), 12 12 'versions' => array( 13 'm axpertici/menu-item-types' => array(13 'mxp/menu-item-types' => array( 14 14 'pretty_version' => 'dev-master', 15 15 'version' => 'dev-master', 16 'reference' => ' 089059d72cadc8040819426320c8017b3ca7435b',16 'reference' => 'd6f1333defa45bd91b520c54e1b86517d494dfb9', 17 17 'type' => 'library', 18 18 'install_path' => __DIR__ . '/../../',
Note: See TracChangeset
for help on using the changeset viewer.