43 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
| <?php
 | |
| /**
 | |
|  * Smarty plugin
 | |
|  * -------------------------------------------------------------
 | |
|  * File:     function.urlFor.php
 | |
|  * Type:     function
 | |
|  * Name:     urlFor
 | |
|  * Purpose:  outputs url for a function with the defined name method
 | |
|  * @version   0.1.3
 | |
|  * @package   SlimViews
 | |
|  * -------------------------------------------------------------
 | |
|  */
 | |
| function smarty_function_urlFor($params, $template)
 | |
| {
 | |
|     $name = isset($params['name']) ? $params['name'] : '';
 | |
|     $appName = isset($params['appname']) ? $params['appname'] : 'default';
 | |
| 
 | |
|     $url = \Slim\Slim::getInstance($appName)->urlFor($name);
 | |
| 
 | |
|     if (isset($params['options'])) {
 | |
|         switch (gettype($params['options'])) {
 | |
|             case 'array':
 | |
|                 $opts = $params['options'];
 | |
|                 break;
 | |
| 
 | |
|             case 'string':
 | |
|                 $options = explode('|', $params['options']);
 | |
|                 foreach ($options as $option) {
 | |
|                     list($key, $value) = explode('.', $option);
 | |
|                     $opts[$key] = $value;
 | |
|                 }
 | |
|                 break;
 | |
| 
 | |
|             default:
 | |
|                 throw new \Exception('Options parameter is of unknown type, provide either string or array');
 | |
|         }
 | |
| 
 | |
|         $url = \Slim\Slim::getInstance($appName)->urlFor($name, $opts);
 | |
|     }
 | |
| 
 | |
|     return $url;
 | |
| }
 |