Yii Framework Forum: Main.php Personalizzata Per Il Login - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Main.php Personalizzata Per Il Login Rate Topic: -----

#1 User is offline   killo 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 5
  • Joined: 24-September 12

Posted 25 September 2012 - 10:49 AM

Ciao ragazzi,
sto lavorando ad un'applicazione in Yii con un template personalizzato, avrei necessità di reindirizzare la login ad un main.php diverso da quello base, diciamo loginMain.php, ho proceduto in questo modo:

  • in siteController, nella actionLogin mi sono impostato $this->layout='application.views.layouts.loginColumn';
  • in loginColumn.php ho impostato $this->beginContent('//layouts/loginMain');


A quanto pare pero' continuo ad utilizzare il vecchio main.php, cosa sto sbagliando?

Grazie mille.
0

#2 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,986
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 25 September 2012 - 11:17 AM

Questo è il layout column1.php di default:

<?php $this->beginContent('//layouts/main'); ?>
<div id="content">
	<?php echo $content; ?>
</div><!-- content -->


puoi creare un layout columnLogin.php e modificarlo in questo modo

<?php $this->beginContent('//layouts/mainLogin'); ?>
<div id="content">
	<?php echo $content; ?>
</div><!-- content -->


Quindi avrai un mainLogin personalizzato. Ed un layout columnLogin personalizzato.

dentro all'action fissi il layout
La mia action utilizza un layout (ad esempio column1 che posso sovrascrivere con $this->layout='columnLogin';).

a sua volta il layout richiama un altro template:
<?php $this->beginContent('//layouts/mainLogin'); ?>
0

#3 User is offline   killo 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 5
  • Joined: 24-September 12

Posted 26 September 2012 - 03:34 AM

Ciao e innanzi tutto grazie della risposta :)

Continua a non funzionare, in effetti l'unica differenza dai miei tentativi è la diversa nomenclatura dei files che ho provveduto ad allineare alla tua, provo a postare qui sotto il mio codice perchè non riesco a capire dove possa essere l'errore.

Ho 3 files:
  • SiteController.php
  • columnLogin.php
  • mainLogin.php



Su SiteController nella action actionLogin() ho impostato:

	public function actionLogin()
	{
		$model=new LoginForm;
		$this->layout='//layouts/columnLogin';
                ...
         }


Ho provato a settare layout anche così (senza il path):
$this->layout='columnLogin';

ottenendo lo stesso risultato.

In columnLogin.php ho questo codice:
<?php
	$this->beginContent('//layouts/mainLogin');
	echo $content;
	$this->endContent();
?>


In mainLogin.php ho dell'altro codice che pero' non credo sia necessario alla soluzione del problema, sta di fatto che Yii continua ad utilizzare il vecchio main.php (non quello di default, ma quello nella cartella dei themes).

Ho copiato i file columnLogin.php e mainLogin.php sia nella cartella delle views/layout del mio template, sia in quella di default, Yii continua ad utilizzare il file main.php presente nella cartella del template.

Grazie ancora.
Marco.
0

#4 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,986
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 26 September 2012 - 04:17 AM

Il nome del tema è specificato correttamente all'interno del file di configurazione!?
0

#5 User is offline   killo 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 5
  • Joined: 24-September 12

Posted 26 September 2012 - 04:29 AM

Il template lo imposto così, in /config/main.php:

// This is the main Web application configuration. Any writable
// CWebApplication properties can be configured here.
return array(
	'basePath'	=> dirname(__FILE__).DIRECTORY_SEPARATOR.'..',
	'name'		=> 'Lince',
	'theme'		=> 'lince2012',
        ...


Ed ho creato la cartella "lince2012" in "/themes". I file di cui parlavamo, tranne il controller, ovviamente, sono in "/themes/lince2012/views/layouts/"



Grazie ancora.
Marco.
0

#6 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,986
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 27 September 2012 - 05:54 PM

E sei certo che "tira su" le view presenti nella cartella themes?
0

#7 User is offline   killo 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 5
  • Joined: 24-September 12

Posted 01 October 2012 - 10:30 AM

Ciao sensorario,
in realtà no (infatti ho i files in entrambe le directory, quella di default e quella del tema) però in effetti per la index usa correttamente la main.php del template, però è l'unica conferma che ho trovandomi ancora in una fase di sviluppo embrionale. Per il momento ho messo in "stand-by" questo task concentrandomi su cose più "core", appena torneremo sull'argomento tornerò a chiedere lumi o a postare l'eventuale soluzione al problema.

A presto, grazie.
0

#8 User is offline   killo 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 5
  • Joined: 24-September 12

Posted 11 October 2012 - 05:50 AM

Oggi ho affrontato nuovamente il problema, e l'ho risolto senza trovare particolari difficolta, si vede che quel giorno ero particolarmente rinco :).
Riporto di seguito i passi necessari al raggiungimento dello scopo, magari possono tornare utili a qualcuno:

  • Creo 2 nuovi files in /views/layouts e li chiamo "columnLogin.php" e "mainLogin.php" (consiglio di duplicare column1.php e main.php e poi andarli ad editare).

  • Nel controller siteController nella actionLogin modifico il codice in questo modo:

da
$this->layout='//layouts/column1';

a
$this->layout='//layouts/columnLogin';


  • Nel file columnLogin.php metto questo codice:

<?php
    //*** column1 del tema
    $this->beginContent('//layouts/mainLogin');
    echo $content;
    $this->endContent();
?>


  • Nel caso io stia utilizzando un template personalizzato, il path /views/layouts sarà riferito alle cartelle presenti all'interno del vostro template in /themes/nomeTemplate/ e non a quelle di default. Sempre in questo caso sarà necessario creare i files per le viste delle singole actions quindi provvedo a copiare la cartella /views/site in quella del template, avrò così la possibilità di personalizzare la login andando a modificare i files /views/layouts/mainLogin.php e /views/site/login.php.


Spero di essere riuscito a spiegarmi bene.
Ciao a tutti
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users