Tuesday, November 6, 2012

Re: strange behavior with redirecting inside the Controller

Instead of redirecting just disable the max_execute_time at the
beginning of the action:

set_time_limit(0);

On Tue, Nov 6, 2012 at 6:21 AM, Serkan Sipahi <serkan.sipahi@yahoo.de> wrote:
>
> Hi bakers,
>
> first of all, my english is not good....
>
> i have a strange behavior with redirecting inside the Controller. Well, i
> must redirect(see below/end of public function index()) to the self
> controller(ModsitemapController) to bypassing the php _max_execute_time. If
> cake begin to redirect i get a redirection error. But if i redirect to other
> controller the redirect work. Whats i do wrong? is that a bug?
>
> <?php
>
> //Configure::write('debug', 2);
> class ModsitemapController extends AppController {
>
> public $theme = 'Frontend';
> public $layout = 'modsitemap';
>
> public $lastSpidertCatId = 0;
> public $catDetailSiteReached = 0;
> public $catDetailSiteTotal = 0;
> public $cachedCatId = 0;
>
> public function __construct($request = null, $response = null) {
>
> parent::__construct($request, $response);
>
> if(isset($request->params['pass'][0])){
> $this->lastSpidertCatId = (int)$request->params['pass'][0];
> }
> if(isset($request->params['pass'][1])){
> $this->catDetailSiteReached = (int)$request->params['pass'][1];
> }
> if(isset($request->params['pass'][2])){
> $this->catDetailSiteTotal = (int)$request->params['pass'][2];
> }
> }
>
> public function index(){
>
> $this->loadModel('Category');
>
> $res = $this->Category->find('all', array(
> 'conditions' => array(
> 'Category.blacklist' => 0,
> 'Category.is_searched_by_user' => 1,
> 'Category.id >=' => $this->lastSpidertCatId
> ),
> 'fields' => array('Category.id', 'Category.name'),
> 'recursive' => -1
> )); $x = 1;
>
> foreach($res as $key => $cat){
>
> $this->cachedCatId = $cat['Category']['id'];
>
> $urls = $this->Category->Url->find('all', array(
> 'conditions' => array(
> 'Url.category_id' => $cat['Category']['id']
> ),
> 'fields' => array('Url.name, Url.id'),
> 'recursive' => -1
> ));
>
> if(isset($urls[0]['Url']['id'])){
>
> foreach($urls as $url){
>
> $content = $this->Category->Content->find('first',
> array(
> 'conditions' => array(
> 'Content.category_id' =>
> $cat['Category']['id'],
> 'Content.url_id' => $url['Url']['id'],
> ),
> 'recursive' => -1,
> 'fields' => array('Content.id')
> ));
>
> if(isset($content['Content']['id'])){
>
> $hostForUrl = str_replace('www.', '',
> parse_url($url['Url']['name'], PHP_URL_HOST));
> $explodedHostUrl = explode('.', $hostForUrl);
> $popElement = array_pop($explodedHostUrl);
> $implodtedHostUrl = implode('.',
> $explodedHostUrl);
> $aHref = "/$implodtedHostUrl/$popElement/";
>
> $keyword = str_replace(' ', '-',
> $cat['Category']['name']); $x++;
>
>
> $this->xmlString .=
> "<url>
>
> <loc>http://domain.net/{$keyword}{$aHref}</loc>
> <lastmod>".$this->getDate()."</lastmod>
> <priority>0.60</priority>
> </url>";
>
> if($x === 50000){
>
> $this->buildXmlString();
> $this->saveXmlFile();
> $this->resetXmlString();
> break;
>
> }
> }
> }
> }
>
> if($x === 50000){ break; }
>
> }
>
> $this->redirect(array('controller' => 'modsitemap', 'action' =>
> 'index', (int)$this->cachedCatId));
>
> }
>
> protected function getDate(){ /***********/ }
> }
>
> ?>
>
> --
> Like Us on FaceBook https://www.facebook.com/CakePHP
> Find us on Twitter http://twitter.com/CakePHP
>
> ---
> You received this message because you are subscribed to the Google Groups
> "CakePHP" group.
> To post to this group, send email to cake-php@googlegroups.com.
> To unsubscribe from this group, send email to
> cake-php+unsubscribe@googlegroups.com.
> Visit this group at http://groups.google.com/group/cake-php?hl=en.
>
>

--
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP

---
You received this message because you are subscribed to the Google Groups "CakePHP" group.
To post to this group, send email to cake-php@googlegroups.com.
To unsubscribe from this group, send email to cake-php+unsubscribe@googlegroups.com.
Visit this group at http://groups.google.com/group/cake-php?hl=en.

No comments: