Ho caricato il mio template... e adesso?

Ciao a tutti,

dopo aver fatto con successo la mia prima installazione di Yii ed aver fatto la mia prima app ho deciso di addentrarmi di più nel mondo del framework. Ho realizzato un semplicissimo template XHTML/CSS e l’ho montato sull’installazione di base. Ora, vorrei apportare alcune modifiche sostanziali del tipo utilizzare il mio form per il login e non quello che mi propone l’app.

Come posso usare quello creato da me al posto di quello generato in automatico?

Leggi un po’ la definitive guide to Yii per avere un idea di come funziona il tutto.

La form di login e’ comandata dal controller SiteController, nella funzione actionLogin.

Questa funzione utilizza la view login, che si trova in view/site/login.php.

Se ti leggi tutta la guida capirai subuto dove si trovano i file che ti servono, e tutto sara’ molto piu’ semplice.

Ciao e grazie per la risposta. Ho provato a seguire quella guida e sono riuscito a "montare" la mia grafica sul login-form generato automaticamente. Io però vorrei che il login fosse un modulo vero e proprio e quindi ho fatto così:

view/site/login.php




<div class="subdiv">

<?php $form=$this->beginWidget('CActiveForm', array('id'=>'login-form','enableAjaxValidation'=>true,)); ?>

                	<p class="top">&nbsp;</p>

                    <h2 >Login</h2>

                    <form name="login" method="post" action="#">

                    	<?php echo $form->labelEx($model,'username'); ?>

		                  <?php echo $form->textField($model,'username'); ?>

		                  <?php echo $form->error($model,'username'); ?>

                      <?php echo $form->labelEx($model,'password'); ?>

		                  <?php echo $form->passwordField($model,'password'); ?>

		                  <?php echo $form->error($model,'password'); ?>

		                  Hint: You may login with <tt>demo/demo</tt> or <tt>admin/admin</tt>.

		                  <?php echo $form->checkBox($model,'rememberMe'); ?>

		<?php echo $form->label($model,'rememberMe'); ?>

		<?php echo $form->error($model,'rememberMe'); ?>

    		<?php echo CHtml::submitButton('Login'); ?>

    		<?php $this->endWidget(); ?>

                        <br class="spacer" />

                    </form>

                    <p class="bot"></p>

									

                </div>



mentre nel main ho inserito questo:




<?php $this->widget('login-form'); ?>



purtroppo mi va in errore.

Ho provato anche con zii.CWebModules.login ma non cambia nulla

Nel main non mettere nulla… quando tu carichi la pagina index.php?r=site/login

il template lo devi mettere nella cartella /protected/views/site/login.php ci pensa Yii a caricarlo. Il main è il tuo layout. Direi che una volta definita la grafica di massima del sito non va più toccato.

I widget vanno creati in compomentes.

Crea un file loginWidget in compoments, e li’ dentro ci metti:




<?php


class loginWidget extends CWidget

{


   public function run()

   {


   }

}






Un widget e’ un piccolo controller, in cui la funzione run rappresenta l’unica azione.

Per usare il widget fai semplicemente:




<?php $this->widget('loginWidget '); ?>



Quando crei dei widget puoi usare la funzione render, la view la va a cercare nella cartella protected/compoments/views.