Bien le coucou,

Alors j'ai un besoin particulier ^^
En fait, mes urls sont des urls de base genre :

developpementdeouf/tropbien/youhou

Sauf que moi j'ai besoin de mettre à la fin de chaque url :

developpementdeouf/tropbien/youhou/?needconnect=false#start

Je n'ai pas le choix -_- Et j'aimerai ne pas me retaper tous mes liens à la main...Avez-vous une idée de la chose ? Je ne suis pas du tout caler en Htaccess ou truc du genre -_-

6 réponses


amethyste
Réponse acceptée

Si tu fais tes liens avec le HtmlHelper, tu peux modifier la fonction link et retourner en plus :

'#'=>'start'

Hey !

En fait, c'est " ?needconnect=false#start " qu'il faut que je rajoute ^^
Donc si je suis ton idée, je rajoute

'?'=>'needconnect=false#start'

Mais du coup, je vais comment pour l'url racine ?

Tu pourrai réecrire la fonction URL de Cake via un helper :

AppHelper

class AppHelper extends Helper {
    public function url($url = null, $full = false) {
        /**
         * Rajoute ton paramètre ici
         */
        return parent::url($url, $full);
    }
}

Chalut,

Alors j'ai bien fait la modification de l'url avec ce que tu m'as dit Amethyste, mais maintenant mon formulaire de connexion est inactif. Quand j'essaie de le valider rien ne se passe...

function login(){
            if($this->request->is('post')){
                    if($this->Auth->login()){
                            $this->User->id = $this->Auth->user("id");
                            $this->User->saveField('lastlogin',date('Y-m-d H:i:s')); 
                            $this->Session->setFlash("Vous êtes maintenant connecté","notif_ok");
                            $this->redirect(array('controller' => 'accueil', 'action' => 'accueil','?'=>'needconnect=false'));
                    }else{
                            $this->Session->setFlash("Identifiants incorrects","notif_ko",array('type'=>'error'));
                    }
            }
            if($this->Auth->user('id')){
                $this->Session->setFlash("Vous venez d'être redirigé vers l'accueil car vous êtes déjà connecté.","notif_ok");
                $this->redirect(array('controller' => 'accueil', 'action' => 'accueil','?'=>'needconnect=false'));
            }
    }

Et le dit formulaire :

<section>               
    <div id="container_demo" >
        <a class="hiddenanchor" id="toregister"></a>
        <a class="hiddenanchor" id="tologin"></a>
        <div id="wrapper-connexion">
            <div id="login-connexion" class="animate form">
                <div class="form-login"></div>
                <?php echo $this->Form->create('User'); ?>
                <div class="row">
                    <div class="span5"> 
                        <label for="username" class="uname" data-icon="u"></label>
                        <?php echo $this->Form->input('username',array('label'=>"Login : ",'data-icon'=>"u",'placeholder'=>"mon pseudo",'class'=>"uname",'class'=>'keynav_box keynav_focusbox')); ?>
                    </div>
                </div>
                <div class="row">
                    <div class="span5">  
                        <label for="password" class="youpasswd" data-icon="p"></label>
                        <?php echo $this->Form->input('password',array('label'=>"Votre mot de passe :",'data-icon'=>"p",'class'=>"youpasswd", 'placeholder'=>"eg. X8df!90EO",'class'=>'keynav_box keynav_focusbox')); ?>
                    </div>
                    <div class="login button">
                            <div class="signin button"> 
                                <input type="submit" value="Se connecter" class="keynav_box"/> 
                            </div>
                    </div>
                </div>
                         <?php echo $this->Form->end(); ?>
                </div>
            </div>                  
        </div>
    </div>  
</section>

Aurais-tu une idée ?

j'ai eu un problème du même genre mais avec la pagination à essayer j'ai ajouté au sein de PostController.php

$this->paginate = array(
       'limit' => 6,
       'order' => 'created DESC',
       'paramType'=> 'querystring'
   );

'paramType'=> 'querystring' cette ligne permet d'avoir les urls de type http://127.0.0/Projet/?page=1

En ce qui concerne la réécriture d'urls voir dans Config/routes.php

Merci de ta réponse aussi Phil ^^
Du coup la solution d'améthyste suffit, donc je clos le sujet merci à vous :)