afsane
afsane

Reputation: 1919

get current page url and change action

I need to give current page url and change action url. After that I want echo that in view file. I want do these in view file, not controller!

Do you have any idea?

Upvotes: 7

Views: 27215

Answers (4)

Josh Rumbut
Josh Rumbut

Reputation: 2710

Late to the party for sure, but the following worked for me in a Zend 1 project:

<?php echo htmlspecialchars($this->serverUrl(true)); ?>

If you're echoing out the (user supplied) URL on the page, it's a good idea to use htmlspecialchars() to avoid someone sending your users to http://example.com/?q=<script>nastyBusiness()</script>.

Upvotes: 1

Mostafa Lavaei
Mostafa Lavaei

Reputation: 2039

$front = Zend_Controller_Front::getInstance();
$fullUrl = 'http://' .
$front->getRequest()->getHttpHost() .
$front->getRequest()->getRequestUri();

Don't forget protocol(in this example http://) if you are going to use $fullUrl for href attributes

Upvotes: 2

temuri
temuri

Reputation: 2807

If your current scope is a controller action, you can do this:

$uri = $this->view->serverUrl() . $this->view->url();

Upvotes: 5

Marcin
Marcin

Reputation: 238957

You can get current page url as follows:

  $uri = Zend_Controller_Front::getInstance()->getRequest()->getRequestUri();

  // or using userAgent view helper:
  $uri = $this->userAgent()->getServerValue('request_uri');

The view helper $this->userAgent() returns an instance of Zend_Http_UserAgent that can provide you with many useful info.

If you want to get an action in your views you can get it as follows:

Zend_Controller_Front::getInstance()->getRequest()->getActionName();

Not sure what you mean by 'changing an action'. You want to change it when you echo it, or you want to redirect user. Anyway, hope this will help.

Upvotes: 22

Related Questions