assets class
This commit is contained in:
		
							
								
								
									
										66
									
								
								kernel/Assets.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								kernel/Assets.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,66 @@ | |||||||
|  | <?php | ||||||
|  |  | ||||||
|  | namespace kernel; | ||||||
|  |  | ||||||
|  | class Assets | ||||||
|  | { | ||||||
|  |     protected array $jsHeader = []; | ||||||
|  |     protected array $jsBody = []; | ||||||
|  |  | ||||||
|  |     protected array $css = []; | ||||||
|  |  | ||||||
|  |     protected string $resourceURI = "/resource"; | ||||||
|  |  | ||||||
|  |     public function __construct(string $resourceURI) | ||||||
|  |     { | ||||||
|  |         $this->setResourceURI($resourceURI); | ||||||
|  |         $this->createCSS(); | ||||||
|  |         $this->createJS(); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     protected function createCSS(){} | ||||||
|  |     protected function createJS(){} | ||||||
|  |  | ||||||
|  |     public function setResourceURI(string $resourceURI): void | ||||||
|  |     { | ||||||
|  |         $this->resourceURI = $resourceURI; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function registerJS(string $slug, string $resource, bool $body = true, bool $addResourceURI = true): void | ||||||
|  |     { | ||||||
|  |         $resource = $addResourceURI ? $this->resourceURI . $resource : $resource; | ||||||
|  |         if ($body) { | ||||||
|  |             $this->jsBody[$slug] = $resource; | ||||||
|  |         } else { | ||||||
|  |             $this->jsHeader[$slug] = $resource; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function registerCSS(string $slug, string $resource, bool $addResourceURI = true): void | ||||||
|  |     { | ||||||
|  |         $resource = $addResourceURI ? $this->resourceURI . $resource : $resource; | ||||||
|  |         $this->css[$slug] = $resource; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function getJSAsStr(bool $body = true): void | ||||||
|  |     { | ||||||
|  |         if ($body) { | ||||||
|  |             foreach ($this->jsBody as $key => $item){ | ||||||
|  |                 echo "<script src='$item'></script>"; | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         else { | ||||||
|  |             foreach ($this->jsHeader as $key => $item){ | ||||||
|  |                 echo "<script src='$item'></script>"; | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function getCSSAsSTR(): void | ||||||
|  |     { | ||||||
|  |         foreach ($this->css as $key => $item){ | ||||||
|  |             echo "<link rel='stylesheet' href='$item'>"; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
|  | } | ||||||
							
								
								
									
										25
									
								
								kernel/admin_themes/default/DefaultAdminThemeAssets.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								kernel/admin_themes/default/DefaultAdminThemeAssets.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,25 @@ | |||||||
|  | <?php | ||||||
|  |  | ||||||
|  | namespace kernel\admin_themes\default; | ||||||
|  |  | ||||||
|  | use kernel\Assets; | ||||||
|  |  | ||||||
|  | class DefaultAdminThemeAssets extends Assets | ||||||
|  | { | ||||||
|  |  | ||||||
|  |     protected function createJS(): void | ||||||
|  |     { | ||||||
|  |         $this->registerJS(slug: "jquery", resource: "/js/jquery.min.js"); | ||||||
|  |         $this->registerJS(slug: "popper", resource: "/js/popper.js"); | ||||||
|  |         $this->registerJS(slug: "bootstrap", resource: "/js/bootstrap.min.js"); | ||||||
|  |         $this->registerJS(slug: "main", resource: "/js/main.js"); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     protected function createCSS() | ||||||
|  |     { | ||||||
|  |         $this->registerCSS(slug: "font-awesome", resource: "https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.6.0/css/all.min.css", addResourceURI: false); | ||||||
|  |         $this->registerCSS(slug: "bootstrap", resource: "/css/bootstrap.min.css"); | ||||||
|  |         $this->registerCSS(slug: "style", resource: "/css/style.css"); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  | } | ||||||
| @@ -6,6 +6,7 @@ | |||||||
|  * @var \kernel\CgView $view |  * @var \kernel\CgView $view | ||||||
|  */ |  */ | ||||||
| \Josantonius\Session\Facades\Session::start(); | \Josantonius\Session\Facades\Session::start(); | ||||||
|  | $assets = new \kernel\admin_themes\default\DefaultAdminThemeAssets($resources) | ||||||
| ?> | ?> | ||||||
| <!doctype html> | <!doctype html> | ||||||
| <html lang="en"> | <html lang="en"> | ||||||
| @@ -17,9 +18,8 @@ | |||||||
|  |  | ||||||
|     <link href="https://fonts.googleapis.com/css?family=Poppins:300,400,500,600,700,800,900" rel="stylesheet"> |     <link href="https://fonts.googleapis.com/css?family=Poppins:300,400,500,600,700,800,900" rel="stylesheet"> | ||||||
|  |  | ||||||
|     <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.6.0/css/all.min.css"> |     <?php $assets->getCSSAsSTR(); ?> | ||||||
|     <link rel="stylesheet" href="<?= $resources ?>/css/bootstrap.min.css"> |     <?php $assets->getJSAsStr(body: false); ?> | ||||||
|     <link rel="stylesheet" href="<?= $resources ?>/css/style.css"> |  | ||||||
| </head> | </head> | ||||||
| <body> | <body> | ||||||
|  |  | ||||||
| @@ -92,9 +92,6 @@ | |||||||
|     </div> |     </div> | ||||||
| </div> | </div> | ||||||
|  |  | ||||||
| <script src="<?= $resources ?>/js/jquery.min.js"></script> | <?php $assets->getJSAsStr(); ?> | ||||||
| <script src="<?= $resources ?>/js/popper.js"></script> |  | ||||||
| <script src="<?= $resources ?>/js/bootstrap.min.js"></script> |  | ||||||
| <script src="<?= $resources ?>/js/main.js"></script> |  | ||||||
| </body> | </body> | ||||||
| </html> | </html> | ||||||
		Reference in New Issue
	
	Block a user