Browse Source

Update helpers to use UrlHelper.

ADmad 11 years ago
parent
commit
6cd3dcafa2

+ 6 - 6
src/View/Helper/FormHelper.php

@@ -51,7 +51,7 @@ class FormHelper extends Helper {
  *
  * @var array
  */
-	public $helpers = array('Html');
+	public $helpers = ['Url', 'Html'];
 
 /**
  * The various pickers that make up a datetime picker.
@@ -304,7 +304,7 @@ class FormHelper extends Helper {
 		unset($options['templates']);
 
 		$url = $this->_formUrl($context, $options);
-		$action = $this->url($url);
+		$action = $this->Url->url($url);
 		unset($options['url'], $options['action'], $options['idPrefix']);
 
 		$this->_lastAction($url);
@@ -1459,7 +1459,7 @@ class FormHelper extends Helper {
 
 		$formName = str_replace('.', '', uniqid('post_', true));
 		$formOptions = array(
-			'action' => $this->url($url),
+			'action' => $this->Url->url($url),
 			'name' => $formName,
 			'style' => 'display:none;',
 			'method' => 'post',
@@ -1563,11 +1563,11 @@ class FormHelper extends Helper {
 			$options['src'] = $caption;
 		} elseif ($isImage) {
 			if ($caption{0} !== '/') {
-				$url = $this->webroot(Configure::read('App.imageBaseUrl') . $caption);
+				$url = $this->Url->webroot(Configure::read('App.imageBaseUrl') . $caption);
 			} else {
-				$url = $this->webroot(trim($caption, '/'));
+				$url = $this->Url->webroot(trim($caption, '/'));
 			}
-			$url = $this->assetTimestamp($url);
+			$url = $this->Url->assetTimestamp($url);
 			$options['src'] = $url;
 		} else {
 			$options['value'] = $caption;

+ 18 - 11
src/View/Helper/HtmlHelper.php

@@ -32,6 +32,13 @@ class HtmlHelper extends Helper {
 	use StringTemplateTrait;
 
 /**
+ * List of helpers used by this helper
+ *
+ * @var array
+ */
+	public $helpers = ['Url'];
+
+/**
  * Reference to the Response object
  *
  * @var \Cake\Network\Response
@@ -237,7 +244,7 @@ class HtmlHelper extends Helper {
 		$out = null;
 
 		if (isset($options['link'])) {
-			$options['link'] = $this->assetUrl($options['link']);
+			$options['link'] = $this->Url->assetUrl($options['link']);
 			if (isset($options['rel']) && $options['rel'] === 'icon') {
 				$out = $this->formatTemplate('metalink', [
 					'url' => $options['link'],
@@ -286,7 +293,7 @@ class HtmlHelper extends Helper {
  *
  * If $url starts with "http://" this is treated as an external link. Else,
  * it is treated as a path to controller/action and parsed with the
- * HtmlHelper::url() method.
+ * UrlHelper::url() method.
  *
  * If the $url is empty, $title is used instead.
  *
@@ -307,9 +314,9 @@ class HtmlHelper extends Helper {
 	public function link($title, $url = null, array $options = array()) {
 		$escapeTitle = true;
 		if ($url !== null) {
-			$url = $this->url($url);
+			$url = $this->Url->url($url);
 		} else {
-			$url = $this->url($title);
+			$url = $this->Url->url($title);
 			$title = htmlspecialchars_decode($url, ENT_QUOTES);
 			$title = h(urldecode($title));
 			$escapeTitle = false;
@@ -400,7 +407,7 @@ class HtmlHelper extends Helper {
 		if (strpos($path, '//') !== false) {
 			$url = $path;
 		} else {
-			$url = $this->assetUrl($path, $options + array('pathPrefix' => Configure::read('App.cssBaseUrl'), 'ext' => '.css'));
+			$url = $this->Url->assetUrl($path, $options + array('pathPrefix' => Configure::read('App.cssBaseUrl'), 'ext' => '.css'));
 			$options = array_diff_key($options, array('fullBase' => null, 'pathPrefix' => null));
 		}
 
@@ -483,7 +490,7 @@ class HtmlHelper extends Helper {
 		}
 
 		if (strpos($url, '//') === false) {
-			$url = $this->assetUrl($url, $options + array('pathPrefix' => Configure::read('App.jsBaseUrl'), 'ext' => '.js'));
+			$url = $this->Url->assetUrl($url, $options + array('pathPrefix' => Configure::read('App.jsBaseUrl'), 'ext' => '.js'));
 			$options = array_diff_key($options, array('fullBase' => null, 'pathPrefix' => null));
 		}
 
@@ -753,7 +760,7 @@ class HtmlHelper extends Helper {
  * @link http://book.cakephp.org/2.0/en/core-libraries/helpers/html.html#HtmlHelper::image
  */
 	public function image($path, array $options = array()) {
-		$path = $this->assetUrl($path, $options + array('pathPrefix' => Configure::read('App.imageBaseUrl')));
+		$path = $this->Url->assetUrl($path, $options + array('pathPrefix' => Configure::read('App.imageBaseUrl')));
 		$options = array_diff_key($options, array('fullBase' => null, 'pathPrefix' => null));
 
 		if (!isset($options['alt'])) {
@@ -773,7 +780,7 @@ class HtmlHelper extends Helper {
 
 		if ($url) {
 			return $this->formatTemplate('link', [
-				'url' => $this->url($url),
+				'url' => $this->Url->url($url),
 				'attrs' => null,
 				'content' => $image
 			]);
@@ -1034,7 +1041,7 @@ class HtmlHelper extends Helper {
 					$ext = pathinfo($source['src'], PATHINFO_EXTENSION);
 					$source['type'] = $this->response->getMimeType($ext);
 				}
-				$source['src'] = $this->assetUrl($source['src'], $options);
+				$source['src'] = $this->Url->assetUrl($source['src'], $options);
 				$sourceTags .= $this->formatTemplate('tagselfclosing', [
 					'tag' => 'source',
 					'attrs' => $this->templater()->formatAttributes($source)
@@ -1047,7 +1054,7 @@ class HtmlHelper extends Helper {
 			if (empty($path) && !empty($options['src'])) {
 				$path = $options['src'];
 			}
-			$options['src'] = $this->assetUrl($path, $options);
+			$options['src'] = $this->Url->assetUrl($path, $options);
 		}
 
 		if ($tag === null) {
@@ -1064,7 +1071,7 @@ class HtmlHelper extends Helper {
 		}
 
 		if (isset($options['poster'])) {
-			$options['poster'] = $this->assetUrl($options['poster'], array('pathPrefix' => Configure::read('App.imageBaseUrl')) + $options);
+			$options['poster'] = $this->Url->assetUrl($options['poster'], array('pathPrefix' => Configure::read('App.imageBaseUrl')) + $options);
 		}
 		$text = $options['text'];
 

+ 8 - 1
src/View/Helper/PaginatorHelper.php

@@ -30,6 +30,13 @@ class PaginatorHelper extends Helper {
 	use StringTemplateTrait;
 
 /**
+ * List of helpers used by this helper
+ *
+ * @var array
+ */
+	public $helpers = ['Url'];
+
+/**
  * Defualt config for this class
  *
  * Options: Holds the default options for pagination links
@@ -426,7 +433,7 @@ class PaginatorHelper extends Helper {
 		) {
 			$url['sort'] = $url['direction'] = null;
 		}
-		return $this->url($url, $full);
+		return $this->Url->url($url, $full);
 	}
 
 /**

+ 6 - 6
src/View/Helper/RssHelper.php

@@ -30,7 +30,7 @@ class RssHelper extends Helper {
  *
  * @var array
  */
-	public $helpers = array('Time');
+	public $helpers = ['Url', 'Time'];
 
 /**
  * Base URL
@@ -127,7 +127,7 @@ class RssHelper extends Helper {
 		if (!isset($elements['description'])) {
 			$elements['description'] = '';
 		}
-		$elements['link'] = $this->url($elements['link'], true);
+		$elements['link'] = $this->Url->url($elements['link'], true);
 
 		$elems = '';
 		foreach ($elements as $elem => $data) {
@@ -228,14 +228,14 @@ class RssHelper extends Helper {
 						unset($attrib['url']);
 						$val = $val['url'];
 					}
-					$val = $this->url($val, true);
+					$val = $this->Url->url($val, true);
 					break;
 				case 'source':
 					if (is_array($val) && isset($val['url'])) {
-						$attrib['url'] = $this->url($val['url'], true);
+						$attrib['url'] = $this->Url->url($val['url'], true);
 						$val = $val['title'];
 					} elseif (is_array($val)) {
-						$attrib['url'] = $this->url($val[0], true);
+						$attrib['url'] = $this->Url->url($val[0], true);
 						$val = $val[1];
 					}
 					break;
@@ -248,7 +248,7 @@ class RssHelper extends Helper {
 							$val['type'] = mime_content_type(WWW_ROOT . $val['url']);
 						}
 					}
-					$val['url'] = $this->url($val['url'], true);
+					$val['url'] = $this->Url->url($val['url'], true);
 					$attrib = $val;
 					$val = null;
 					break;

+ 7 - 6
tests/TestCase/View/Helper/FormHelperTest.php

@@ -142,12 +142,13 @@ class FormHelperTest extends TestCase {
 		$this->View = new View();
 
 		$this->Form = new FormHelper($this->View);
-		$this->Form->request = new Request('articles/add');
-		$this->Form->request->here = '/articles/add';
-		$this->Form->request['controller'] = 'articles';
-		$this->Form->request['action'] = 'add';
-		$this->Form->request->webroot = '';
-		$this->Form->request->base = '';
+		$request = new Request('articles/add');
+		$request->here = '/articles/add';
+		$request['controller'] = 'articles';
+		$request['action'] = 'add';
+		$request->webroot = '';
+		$request->base = '';
+		$this->Form->Url->request = $this->Form->request = $request;
 
 		$this->dateRegex = array(
 			'daysRegex' => 'preg:/(?:<option value="0?([\d]+)">\\1<\/option>[\r\n]*)*/',

+ 12 - 11
tests/TestCase/View/Helper/HtmlHelperTest.php

@@ -68,6 +68,7 @@ class HtmlHelperTest extends TestCase {
 		$this->Html = new HtmlHelper($this->View);
 		$this->Html->request = new Request();
 		$this->Html->request->webroot = '';
+		$this->Html->Url->request = $this->Html->request;
 
 		Configure::write('App.namespace', 'TestApp');
 		Plugin::load(['TestTheme']);
@@ -390,12 +391,12 @@ class HtmlHelperTest extends TestCase {
  */
 	public function testImageWithFullBase() {
 		$result = $this->Html->image('test.gif', array('fullBase' => true));
-		$here = $this->Html->url('/', true);
+		$here = $this->Html->Url->url('/', true);
 		$expected = array('img' => array('src' => $here . 'img/test.gif', 'alt' => ''));
 		$this->assertHtml($expected, $result);
 
 		$result = $this->Html->image('sub/test.gif', array('fullBase' => true));
-		$here = $this->Html->url('/', true);
+		$here = $this->Html->Url->url('/', true);
 		$expected = array('img' => array('src' => $here . 'img/sub/test.gif', 'alt' => ''));
 		$this->assertHtml($expected, $result);
 
@@ -405,7 +406,7 @@ class HtmlHelperTest extends TestCase {
 		Router::pushRequest($request);
 
 		$result = $this->Html->image('sub/test.gif', array('fullBase' => true));
-		$here = $this->Html->url('/', true);
+		$here = $this->Html->Url->url('/', true);
 		$expected = array('img' => array('src' => $here . 'img/sub/test.gif', 'alt' => ''));
 		$this->assertHtml($expected, $result);
 	}
@@ -452,8 +453,8 @@ class HtmlHelperTest extends TestCase {
 		Configure::write('Asset.timestamp', true);
 		Configure::write('debug', true);
 
-		$this->Html->request->webroot = '/';
-		$this->Html->theme = 'TestTheme';
+		$this->Html->Url->request->webroot = '/';
+		$this->Html->Url->theme = 'TestTheme';
 		$result = $this->Html->image('__cake_test_image.gif');
 		$expected = array(
 			'img' => array(
@@ -462,7 +463,7 @@ class HtmlHelperTest extends TestCase {
 		));
 		$this->assertHtml($expected, $result);
 
-		$this->Html->request->webroot = '/testing/';
+		$this->Html->Url->request->webroot = '/testing/';
 		$result = $this->Html->image('__cake_test_image.gif');
 		$expected = array(
 			'img' => array(
@@ -481,7 +482,7 @@ class HtmlHelperTest extends TestCase {
 		$webRoot = Configure::read('App.www_root');
 		Configure::write('App.www_root', TEST_APP . 'webroot/');
 
-		$this->Html->theme = 'TestTheme';
+		$this->Html->Url->theme = 'TestTheme';
 		$result = $this->Html->css('webroot_test');
 		$expected = array(
 			'link' => array('rel' => 'stylesheet', 'href' => 'preg:/.*test_theme\/css\/webroot_test\.css/')
@@ -618,7 +619,7 @@ class HtmlHelperTest extends TestCase {
  */
 	public function testCssWithFullBase() {
 		Configure::write('Asset.filter.css', false);
-		$here = $this->Html->url('/', true);
+		$here = $this->Html->Url->url('/', true);
 
 		$result = $this->Html->css('screen', array('fullBase' => true));
 		$expected = array(
@@ -993,7 +994,7 @@ class HtmlHelperTest extends TestCase {
  * @return void
  */
 	public function testScriptWithFullBase() {
-		$here = $this->Html->url('/', true);
+		$here = $this->Html->Url->url('/', true);
 
 		$result = $this->Html->script('foo', array('fullBase' => true));
 		$expected = array(
@@ -1022,8 +1023,8 @@ class HtmlHelperTest extends TestCase {
 		$testfile = WWW_ROOT . '/test_theme/js/__test_js.js';
 		new File($testfile, true);
 
-		$this->Html->request->webroot = '/';
-		$this->Html->theme = 'TestTheme';
+		$this->Html->Url->request->webroot = '/';
+		$this->Html->Url->theme = 'TestTheme';
 		$result = $this->Html->script('__test_js.js');
 		$expected = array(
 			'script' => array('src' => '/test_theme/js/__test_js.js')

+ 3 - 3
tests/TestCase/View/Helper/RssHelperTest.php

@@ -104,7 +104,7 @@ class RssHelperTest extends TestCase {
 			'Title',
 			'/title',
 			'<link',
-			$this->Rss->url('/', true),
+			$this->Rss->Url->url('/', true),
 			'/link',
 			'<description',
 			'content',
@@ -551,7 +551,7 @@ class RssHelperTest extends TestCase {
 			'<description',
 			'<![CDATA[descriptive words]]',
 			'/description',
-			'enclosure' => array('url' => $this->Rss->url('/test.flv', true)),
+			'enclosure' => array('url' => $this->Rss->Url->url('/test.flv', true)),
 			'<pubDate',
 			date('r', strtotime('2008-05-31 12:00:00')),
 			'/pubDate',
@@ -633,7 +633,7 @@ class RssHelperTest extends TestCase {
 			'<![CDATA[descriptive words]]',
 			'/description',
 			'enclosure' => array(
-				'url' => $this->Rss->url('/tests/cakephp.file.test.tmp', true),
+				'url' => $this->Rss->Url->url('/tests/cakephp.file.test.tmp', true),
 				'length' => filesize($tmpFile),
 				'type' => $type
 			),