71 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| namespace nur\v\bs3\vc;
 | |
| 
 | |
| use nur\A;
 | |
| use nur\b\params\Tparametrable;
 | |
| use nur\v\base\MenuManager;
 | |
| use nur\v\page;
 | |
| use nur\v\v;
 | |
| use nur\v\vo;
 | |
| 
 | |
| class CNavTabs extends _CItemList {
 | |
|   use Tparametrable;
 | |
| 
 | |
|   /** @var array tabs à afficher par défaut */
 | |
|   const TABS = null;
 | |
| 
 | |
|   const PARAMETRABLE_PARAMS_SCHEMA = [
 | |
|     "select" => ["?string", null, "identifiant de l'élément sélectionné"],
 | |
|     "params" => ["?array", null, "paramètres par défaut à rajouter à tous les urls"]
 | |
|   ];
 | |
| 
 | |
|   const AUTOPRINT = true;
 | |
| 
 | |
|   function __construct(?iterable $items=null, ?string $select=null, ?array $params=null) {
 | |
|     A::set_nn($params, "select", $select);
 | |
|     parent::__construct($items, $params);
 | |
|   }
 | |
| 
 | |
|   protected function ITEMS(): ?iterable {
 | |
|     return static::TABS;
 | |
|   }
 | |
| 
 | |
|   /** @var ?string */
 | |
|   protected $ppSelect;
 | |
| 
 | |
|   /** @var ?array */
 | |
|   protected $ppParams;
 | |
| 
 | |
|   protected function buildItems(): void {
 | |
|     if ($this->ppItems !== null) {
 | |
|       $menu = new MenuManager(["items" => $this->ppItems], $this->ppSelect);
 | |
|       $items = $menu->get()["navbar_items"];
 | |
|     } else {
 | |
|       $items = null;
 | |
|     }
 | |
|     $this->items = $items;
 | |
|   }
 | |
| 
 | |
|   function printStartContainer(): void {
 | |
|     vo::sul([
 | |
|       "class" => "nav nav-tabs",
 | |
|     ]);
 | |
|   }
 | |
| 
 | |
|   function printItem($item): void {
 | |
|     vo::li([
 | |
|       "class" => ["active" => $item["active"]],
 | |
|       "role" => "presentation",
 | |
|       v::a([
 | |
|         "href" => page::bu($item["url"], $this->ppParams, $item["params"]),
 | |
|         "accesskey" => $item["accesskey"],
 | |
|         $item["text"],
 | |
|       ]),
 | |
|     ]);
 | |
|   }
 | |
| 
 | |
|   function printEndContainer(): void {
 | |
|     vo::eul();
 | |
|   }
 | |
| }
 |