Jump to content
php.lv forumi

styles..


GraaBeklis

Recommended Posts

Šāds kopsavilkums laikam:

<?
if(isset($_GET['style']){
 echo'<link href="'.$_GET['style'].'.css" rel="stylesheet" type="text/css"/>';
}else{
 echo'<link href="default.css" rel="stylesheet" type="text/css"/>';
}
?>
<a href="./?style=sarkans">Sarkans</a>

 

Mans variants:

<?
//Kopējam lapas sākuma daļā(pirms jebkāda izvadāmā teksta)
session_start();
$styles = array('default', 'melns', 'sarkans');//nodefinējam iespējamos stilus
if(isset($_GET['style']) && !empty($styles[$_GET['style'])){
 $_SESSION['style']=$styles[$_GET['style']];
}
?>
<html>
<head>
<?
echo'<link href="'.(isset($_SESSION['style']) ? $_SESSION['style'] : 'default' ).'.css" rel="stylesheet" type="text/css"/>';
?>
</head>
<body>
<a href="./?style=0">Default stils</a>
<a href="./?style=1">Melns</a>
</body>
</html>

 

Sessijas izmantojam tapēc, lai vēlāk varētu ložņāt pa labu ar to pašu izvēlēto stilu, bez īpašas adrešu modifikācijas...

Edited by Aleksandrs
Link to comment
Share on other sites

nu šitā te ka jūs man palīdzat man baig lab iespiezhas prātā, kas kā .. vaitad priekš tā nav forumi?? ;]

 

a shitaa kautkaa neder?:

<?php
$style = $_GET['style'];
switch($style) {
case '2':
setcookie ('<link href="styles/2.css" rel="stylesheet" type="text/css"/>', $style);
echo 'Tu uzvēlējies: <link href="styles/1.css" rel="stylesheet" type="text/css"/>';
}
?>

Tikai man raada error: Warning: Cannot add header information - headers already sent by (output started at d:\www\web\index.php:12) in d:\www\web\izskati.php on line 5

17336[/snapback]

 

Parasti shaads errors (par headeriem) tiek izmests gadiijumos, ja eksistee kaut viens outputs (kaut vai tags <html> utt) pirms, piemeeram, f-jaam setcookie(), session_start(), header() un taml.

Vai nu liec to kodu saakumaa vai arii lieto ob_start() ((output buffer) sho f-ju ieliec uzreiz peec <?php..). Shii funckija, cik es esmu sapratis, izveidot output bufferi kuraa tiek uzgjenireeta pati lapa un tikai peec tam tiek aizsuutiita klientam, kas to pieprasa. Taadejaadi koda viduu var lietot header() f-ju uc.

Lapas breigaas par sliktu nenaaktu ielikt arii ob_clean() ;)

Ja es ko aplami esmu sastaastiijis, labojiet mani.

Link to comment
Share on other sites

da takš uztaisi atsevišķu skriptu `setstyle.php`

 

 

`config.php`

$styles = Array( 'default' => 'Defaultais' , 'sarkans' => 'Sarkans', 'zils', 'peleks' );

 

`setstyle.php`

<?php

include 'config.php';
if (!empty($_GET['style'])) {
  $stylename = $_GET['style'];
  if (!empty($styles[$styleName])) {
      $_SESSION['pageStyle'] = $styleName;
  } else {
      $_SESSION['pageStyle'] = 'default';
  }
}

header( 'Location: '.$_SERVER['HTTP_REFERER'] );

?>

 

attiecīgi linkus izvadi

 

`stylemenu.php`

foreach($styles as $styleId => $stylename) {
  echo '<a href="setstyle.php?style='.$styleId.'">'.$styleName.'</a>';
}

 

 

un kad izvadi HTML

 

echo '<link href="'.$_SESSION['pageStyle'].'.css" rel="stylesheet" type="text/css" />';

Edited by Delfins
Link to comment
Share on other sites

×
×
  • Create New...