Personalizzazione layout

Ciao ragazzi,

per capire come personalizzare graficamente yii ho aperto il file main.php in layouts e ho cambiato la struttura html e css e stranamente se clicco su qualche pagina, ad esempio About o Login non succede nulla…

Sapete spiegarmi il perchè? :blink:

Se non è troppo lungo puoi incollare qui il main.php ?

Eccola:




<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>

	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

	<meta name="language" content="en" />


	<!-- blueprint CSS framework -->

	<link rel="stylesheet" type="text/css" href="<?php echo Yii::app()->request->baseUrl; ?>/css/screen.css" media="screen, projection" />

	<link rel="stylesheet" type="text/css" href="<?php echo Yii::app()->request->baseUrl; ?>/css/print.css" media="print" />

	<!--[if lt IE 8]>

	<link rel="stylesheet" type="text/css" href="<?php echo Yii::app()->request->baseUrl; ?>/css/ie.css" media="screen, projection" />

	<![endif]-->


	<link rel="stylesheet" type="text/css" href="<?php echo Yii::app()->request->baseUrl; ?>/css/main.css" />

	<link rel="stylesheet" type="text/css" href="<?php echo Yii::app()->request->baseUrl; ?>/css/form.css" />


	<title><?php echo CHtml::encode($this->pageTitle); ?></title>

</head>


<body>

	<div id="topper">

		<div class="wrapper">

			<div id="header">

				<h1 class="logo">

					<a href="#">

						<img src="<?php echo Yii::app()->request->baseUrl; ?>/images/logo.png" width="155px" height="86px">

					</a>

				</h1>

				<div id="loreg">

					<a href="#">register</a>

					<div id="login_div">

						<div class="login_box">

							<form>

								<input type="text" name="email" class="nome_utente grey">

								<input type="text" name="password" class="password grey">

								<input type="submit" value="accedi" class="login_button">

								<label for="ricorda-l" style="cursor:pointer;">

									<input type="checkbox" name="ricorda" id="ricorda-l" value="ricorda">

									<span style="color: #fff;">Ricordami</span>

								</label>

								<a href="#">Password Persa?</a>

							</form>

						</div>

						<a id="login" href="#">login</a>

					</div>

				</div>

			</div>

			<div id="nav">

				<?php $this->widget('zii.widgets.CMenu',array(

					'htmlOptions'=>array('class'=>'menu'),

                    'activeCssClass'=>'current',

					'items'=>array(

						array('label'=>'Home', 'url'=>array('/site/index')),

						array('label'=>'About', 'url'=>array('/site/page', 'view'=>'about')),

						array('label'=>'Contact', 'url'=>array('/site/contact')),

						array('label'=>'Login', 'url'=>array('/site/login'), 'visible'=>Yii::app()->user->isGuest),

						array('label'=>'Logout ('.Yii::app()->user->name.')', 'url'=>array('/site/logout'), 'visible'=>!Yii::app()->user->isGuest)

						),

				)); ?>

			</div>

		</div>

	</div>

	<div class="wrapper">

		<div id="container_top"></div>

		<div id="container">

			<div id="content">

				<?php echo $content; ?>

			</div>

		</div>

		<div id="container_bottom"></div>

		<div id="footer">

			<p>Pannello di Controllo</p>

		</div>

	</div>

</body>

</html>



Posso cambiare la visualizzazione del menu generato dal crud?

Per capirci:




		<?php

		$this->menu=array(

			array('label'=>'List Categorie', 'url'=>array('index')),

			array('label'=>'Manage Categorie', 'url'=>array('admin')),

		);

		?>



E’ possibile evitare che vengano aggiunti i div class=“span-19”, etc… ?

dai un occhiata qui




$this->widget('zii.widgets.CMenu',array(

// container12 è il div che contiene tutto il menu

'htmlOptions'=>array('class'=>'container_12'),

'activeCssClass'=>'current',

'items'=>array

(

array('label'=>'Home', 'url'=>array('/site/index'),'itemOptions'=>array('class'=>'home'),

.

.

In parte ho risolto, solo che mi aggiunge dei div di troppo e non capisco come eliminarli…

Diciamo che il CMenu è ideale per quei menù (html) con strutture tipo (<ul><li></li></ul>) anche annidati …

Occhio alla proprietà itemTemplate o template che è molto utile per modificare lo schema html del tuo menù ;)

Si infatti con CMenu ho risolto il problema del menu con struttura <ul></ul>, ora rimangono solo questi div di troppo che aggiunge yii…

A che livello li aggiunge ? Div conetenitore di tutto il menù o dentro tra le voci (items) ?

Ecco la struttura:




<div class="span-19">

 <div id="content">

  <div class="content">

  </div>

  <div class="sidebar">

  </div>

 </div>

</div>

<div class="span-5 last">

 <div class="sidebar>

 </div>

</div>



I div che servono a me (quelli che aggiungo io) sono:




  <div class="content"></div>

  <div class="sidebar"></div>



Gli altri vorrei toglierli tutti: span-5 last, span-19, a parte che ho un div sidebar duplicato e non so se è di yii…

ma il menù in quale <div> sarà contenuto ? Puoi fare:


<div class="sidebar">

<?php

 //qui il widget

?>

</div>

o no ?

@paskuale: ho fatto così, ma quei div inutili vorrei rimuoverli.

Inoltre, vorrei capire una cosa, generato il crud c’è sempre




$this->menu=array(...);



Ma $this->menu dove viene inizializzato?

Ciao a tutti,

come fare per creare un menu tipo quello di rights, ovvero con le voci in alto, in linea, non a destra come quello di defalt ?