datatable.directory codebase
				https://datatable.directory/
			
			
		
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							91 lines
						
					
					
						
							1.9 KiB
						
					
					
				
			
		
		
	
	
							91 lines
						
					
					
						
							1.9 KiB
						
					
					
				| <?php
 | |
| 
 | |
| namespace MightyPork\Providers;
 | |
| 
 | |
| use Blade;
 | |
| use Illuminate\Support\ServiceProvider;
 | |
| 
 | |
| class BladeExtensionsProvider extends ServiceProvider
 | |
| {
 | |
| 	/**
 | |
| 	 * Parse argument of a blade directive
 | |
| 	 *
 | |
| 	 * @param string $x argument received by a blade directive
 | |
| 	 * @return array the arguments (strings without quotes)
 | |
| 	 */
 | |
| 	private static function parseBladeArgs($x)
 | |
| 	{
 | |
| 		// strip wrapping parens
 | |
| 		return array_map('trim', str_getcsv($x));
 | |
| 	}
 | |
| 
 | |
| 
 | |
| 	/**
 | |
| 	 * Add blade directives
 | |
| 	 *
 | |
| 	 * @return void
 | |
| 	 */
 | |
| 	public function boot()
 | |
| 	{
 | |
| 		// @faker(text, 100)
 | |
| 		Blade::directive('faker', function ($x) {
 | |
| 			$args = self::parseBladeArgs($x);
 | |
| 
 | |
| 			$method = $args[0];
 | |
| 			$params = count($args) > 1 ? $args[1] : '';
 | |
| 
 | |
| 			return "<?= e(app()->make('\\Faker\\Generator')->$method($params)) ?>";
 | |
| 		});
 | |
| 
 | |
| 		// csrf token for forms
 | |
| 		Blade::directive('formCsrf', function () {
 | |
| 			return '<?= csrf_field() ?>';
 | |
| 		});
 | |
| 
 | |
| 		// json encode
 | |
| 		Blade::directive('json', function ($x) {
 | |
| 			if (config('app.pretty_json')) {
 | |
| 				return "<?= json_encode(($x), JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES) ?>";
 | |
| 			} else {
 | |
| 				return "<?= json_encode(($x), JSON_UNESCAPED_SLASHES) ?>";
 | |
| 			}
 | |
| 		});
 | |
| 
 | |
| 		// json encode, escaped
 | |
| 		Blade::directive('jsone', function ($x) {
 | |
| 			if (config('app.pretty_json')) {
 | |
| 				return "<?= e(json_encode(($x), JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES)) ?>";
 | |
| 			} else {
 | |
| 				return "<?= e(json_encode(($x), JSON_UNESCAPED_SLASHES)) ?>";
 | |
| 			}
 | |
| 		});
 | |
| 
 | |
| 		// selected if cond true
 | |
| 		Blade::directive('selected', function ($x) {
 | |
| 			return "<?= ($x) ? 'selected' : '' ?>";
 | |
| 		});
 | |
| 
 | |
| 		// checked if cond true
 | |
| 		Blade::directive('checked', function ($x) {
 | |
| 			return "<?= ($x) ? 'checked' : '' ?>";
 | |
| 		});
 | |
| 
 | |
| 		Blade::if('admin', function () {
 | |
| 			return \Auth::user()->isAdmin();
 | |
| 		});
 | |
| 
 | |
| 		Blade::if('set', function ($x) {
 | |
| 			return config($x) != '';
 | |
| 		});
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Register any application services.
 | |
| 	 *
 | |
| 	 * @return void
 | |
| 	 */
 | |
| 	public function register()
 | |
| 	{
 | |
| 		//
 | |
| 	}
 | |
| }
 | |
| 
 |