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+unsubscr...@googlegroups.com.
Visit this group at http://groups.google.com/group/cake-php?hl=en.


Reply via email to