Autor Zpráva
Zane
Profil *
Prosím o kontrolu skriptu. Potřebuji do <head> vypsat různý kód (konkrétně vložit link na soubory se styly) podle toho jaká stránka je volána a pokud nejsou splněny podmínky pak vložit komentář. Co jsem sesmolil uvádím níže - dělá to přesně to co potřebuji, ale nevím jestli by se to nedalo napsat elegantněji.

<?php
$page = empty($_GET['page']) ? '' : $_GET['page'];
switch($page) {
case 'page1': echo '<link rel="stylesheet" type="text/css" href="css/styl1.css">'; break;
case 'page2': echo '<link rel="stylesheet" type="text/css" href="css/styl2.css">'; break;
case 'pageX': echo '<link rel="stylesheet" type="text/css" href="css/stylX.css">'; break;
default: echo '<!-- NO CSS IMAGE MAP -->';
}?>
Shadowek
Profil
Na tom není co zelegantňovat :) snad jen nebyl by lepší nějaký defaultní styl?
petr 6
Profil
Zane:
ale nevím jestli by se to nedalo napsat elegantněji

Asi dalo. Záleží, kolik těch stránek máš, jaký tvar mají jejich názvy ($_GET['page']) a názvy souborů css, kolik je těch stylů a jestli jsou některé styly společné více stránkám.

Pro začátek například:
switch($page) {
case 'page1': $styl='styl1'; break;
// a tak dale
default: echo '<!-- NO CSS IMAGE MAP -->';
} 
if(isset($styl)) echo '<link rel="stylesheet" type="text/css" href="css/'.$styl.'.css">';
virgo86
Profil
Shadowek:
snad jen nebyl by lepší nějaký defaultní styl?
přemyšlel jsem nad tímto tematem a vytvořil jsem pomocí java tento script:
<?
function detekce()
{
?>
 <script language="JavaScript" type="text/javascript">
<!--
var cozacss;
if (navigator.appName=="Microsoft Internet Explorer")
{
document.write("<link rel=\"stylesheet\"  type=\"text/css\"        href=\"iedex.css\">");
//  cozacss = "indexIE.css";
//document.write("použivas " + navigator.appName + " Zobrazit pomocí " + cozacss);
}
else
{
if (navigator.appName=="Netscape")
{
 document.write("<link rel=\"stylesheet\"  type=\"text/css\"        href=\"firedex.css\">");

}
else
{
document.write("<link rel=\"stylesheet\"  type=\"text/css\"        href=\"index.css\">");
}
}
-->
</script>
<noscript>
<link rel="stylesheet"  type="text/css"        href="index.css">
</noscript>
<?php
}


Pokud máš IE budeš to mít odladěné pro IE pokud FF tak zase bude jinej css. pokud máš prohližeč jinej tak bude defaulni styl. pokud vyplý java tak taky defaul. Co myslíte je to blbost nebo se to tak použivá? Protože to je asi jedinej script který jsem uplně od pismene psal sám bez pomoci:)
Zane
Profil *
Defaultní styl je OK. Jde o to, že mám pomocí css vytvořené klikací mapy s nepravidelnými tvary. Styl pro css image maps je v zásadě jednoduchý, ale díky nepravidlným tvarům narůstá specifikace ploch - konkrétně:

.area1{width:175px;left:3px;top:12px; height:12px;}
.area2{width:192px;left:8px;top:24px; height:12px;}
...
.areaX{width:201px;left:3px;top:32px; height:12px;}


V tuto chvíli mám 38 stránek s klikacími mapami a soubor se styly má více jak 3500 řádek. Je nesmysl ho načítat do hlavičky všech volaných stránek. Chci ho rozdělit a příslušnou část načíst jen tam kam potřebuji. Pro zajímavost - validátoru CSS trvá půl minuty než to přechroupe... :-(

Java Script ani Flash použít nechci - cílem je, aby si to prohlídlo co nejvíce lidí - skriptování má spousta lidí vypnuté, prvky ActiveX na, kterých běží Flash rovněž, ale kdo vypíná CSS? Takových moc není.
Snažím se, aby se maximum věcí zpracovalo na serveru a nebyly závislé na softwareovém či hardwareovém vybavení toho kdo si je prohlíží.

Líbí se mi řešení petra 6 - dovolím si malou rekapitulaci - jestli jsem to dobře pochopil:

<?php
$page = empty($_GET['page']) ? '' : $_GET['page'];  //k tomuto řádku se zeptám  -je nutné uvádět za tím otazníkem ty dva apostrofy a co by mezi nimi mělo být případně napsáno resp. co by měly obsahovat  ? ''
switch($page) {
case 'page1': $styl='styl1'; break;
case 'page2': $styl='styl2'; break;
case 'pageX': $styl='stylX'; break;
default: echo '<!-- NO CSS IMAGE MAP -->';
} 
if(isset($styl)) echo '<link rel="stylesheet" type="text/css" href="css/'.$styl.'.css">';
?>
panther
Profil
virgo86:
Co myslíte je to blbost nebo se to tak použivá?
je to blbost a nepoužívá se to. Není třeba každému prohlížeči podsouvat samostatný styl.
Zane
Profil *
Jen dodám, že dané řešení stylů - jak defaultní tak klikacích map v css mám otestované a funkční (tedy naprosto totožné zobrazení) v:
- IE6, 7, 8
- FF 1.5, 2, 3 3.5
- Google Chrome 1, 2, 3, 4
- Opeře 9, 10
- Safari 3, 4
- Maxtronu 2.5
- Netscapu 9
A validní.
Chamurappi
Profil
Reaguji na virga86:
Co myslíte je to blbost
Ano.

to je asi jedinej script který jsem uplně od pismene psal sám bez pomoci:)
Gratuluji.


Reaguji na Zane:
Pokud máš 3500 řádků, na každém cca 60 bajtů a zagzipuješ to, neměl bys překročit 30 kB, což je snesitelná zátěž.

Je nesmysl ho načítat do hlavičky všech volaných stránek.
Pak možná ani není důvod, aby tyto styly byly v externím souboru.

dané řešení stylů - jak defaultní tak klikacích map v css mám otestované a funkční
Ukážeš? Třeba by tu někdo dostal nějaký zázračný nápad.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0