Válí se ti projekty v šuplíku? Dostaň je mezi lidi a získej cool tričko a body na profi IT kurzy v soutěži ITnetwork summer 2017!
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)

Diskuze: změna designu podle časový doby

PHP PHP změna designu podle časový doby American English version English version

Aktivity (1)
Avatar
albertpatera
Redaktor
Avatar
albertpatera:8.12.2012 22:46

ahoj, nemůžu najít, jak se změní desing...abych se mi automaticky prepnul..abych v 7 hodin mel den v 7 hodin vecer zase jinej design. Nevíte někdo nějqakej php script? díky moc

 
Odpovědět 8.12.2012 22:46
Avatar
matesax
Redaktor
Avatar
Odpovídá na albertpatera
matesax:9.12.2012 5:52

V čem? Co takhle timer?

 
Nahoru Odpovědět 9.12.2012 5:52
Avatar
Kit
Redaktor
Avatar
Odpovídá na albertpatera
Kit:9.12.2012 9:42

Když budeš mít dva soubory CSS, můžeš do HTML pokaždé nalinkovat jiný.

Také můžeš v PHP dynamicky generovat CSS, ale není to tak výhodné.

Časově závislou část CSS můžeš umístit z PHP přímo do HTML.

V .htaccess můžeš udělat přesměrování dle denní doby.

Nahoru Odpovědět 9.12.2012 9:42
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Redaktor
Avatar
Odpovídá na Kit
matesax:9.12.2012 10:32

A co když nebude chtít pro změnění načítat stránku - to je právě to - nenapsal co chce...

 
Nahoru Odpovědět 9.12.2012 10:32
Avatar
Kit
Redaktor
Avatar
Odpovídá na matesax
Kit:9.12.2012 10:41

Chtěl "nějqakej php script". To znamená, že s reloadem stránky počítá.

Samozřejmě se to dá napsat i v Javascriptu, ale to nebylo požadováno.

Nahoru Odpovědět 9.12.2012 10:41
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
albertpatera
Redaktor
Avatar
Odpovídá na Kit
albertpatera:9.12.2012 10:51

ok a to dam normalne do

<head></head>

?

a jak pak se udela to nacasování?? diky

 
Nahoru Odpovědět 9.12.2012 10:51
Avatar
matesax
Redaktor
Avatar
Odpovídá na albertpatera
matesax:9.12.2012 10:56

PHP by mělo být mimo - nemám rád, když se píší scripty do stránky - proč také - že? V PHP žádné načasování právě nebude - nýbrž podmínka - zda-li je aktuální čas am/pm popř. přesně podle hodin - to je na tobě... Načasovat to můžeš v JS - stránka se změní bez načtení...

Editováno 9.12.2012 10:59
 
Nahoru Odpovědět 9.12.2012 10:56
Avatar
albertpatera
Redaktor
Avatar
Odpovídá na matesax
albertpatera:9.12.2012 10:58

ok diky a jak ude ten php kod na timer? nemuzu to nikde najit

 
Nahoru Odpovědět 9.12.2012 10:58
Avatar
matesax
Redaktor
Avatar
Odpovídá na Kit
matesax:9.12.2012 11:00

Vidíš Kite - já to věděl! :)

albertpatera

Timer musí být v JS ne v PHP - u klienta ne na serveru. Buď v PHP dáš podmínku a stránka se rozvětví při načítání - buď pro noční režim, či denní. V JS ale můžeš udělat timer, který to změní bez znovunačítání...

 
Nahoru Odpovědět 9.12.2012 11:00
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na albertpatera
David Čápka:9.12.2012 11:01

Stačí vložit podmínku do souboru css a dát mu příponu php.

Nahoru Odpovědět 9.12.2012 11:01
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Kit
Redaktor
Avatar
Odpovídá na matesax
Kit:9.12.2012 11:07

No jo, to máš z toho koukání do křišťálové koule. Dnešní web se skládá ze správné kombinace sedmi jazyků a ty se dají poskládat různými způsoby.

Nahoru Odpovědět 9.12.2012 11:07
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Michael Olšavský:9.12.2012 11:09

Pokud to opravdu chceš v PHP, tak tady je kratky kod co se da vložit do hlavičky, ale nemělo by se to takhle používat.

<?php
        $date = (int)Date("H");
        if($date < 17){
        ?>
        <link rel="stylesheet" href="style1.css" type="text/css"/>
        <?}
            else {?>
        <link rel="stylesheet" href="style2.css" type="text/css"/>
        <?}?>
    </head>
 
Nahoru Odpovědět 9.12.2012 11:09
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:9.12.2012 11:11

To je právě ta nevýhodná varianta. Znemožňuje ukládání CSS do cache u klienta. Tedy pokud si nepohraješ s hlavičkami.

Nahoru Odpovědět 9.12.2012 11:11
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Redaktor
Avatar
Odpovídá na Kit
matesax:9.12.2012 11:12

A má PHP něco jako CodeBehind? (Timer u clienta - kód v PHP - AJAX)

Editováno 9.12.2012 11:14
 
Nahoru Odpovědět 9.12.2012 11:12
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na matesax
David Čápka:9.12.2012 11:19

Proč bys měl timer u klienta? Stačí měnit CSS dle času, nebo jak psal Michael Olšavský, přepínat CSSka, to se bude cachovat, ale zas člověk musí spravovat 2 soubory.

Nahoru Odpovědět 9.12.2012 11:19
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Kit
Redaktor
Avatar
Odpovídá na matesax
Kit:9.12.2012 11:20

Ano, má. Jen se tomu neříká tak honosně. Je to prostě AJAX.

Nahoru Odpovědět 9.12.2012 11:20
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:9.12.2012 11:25

Těch rozdílů mezi dnem a nocí nebývá mnoho. Proto bych společné vlastnosti dal do jednoho CSS a ty rozdílné generoval přímo do hlavičky HTML.

Ty dva soubory CSS se také dají generovat staticky z PHP.

Nahoru Odpovědět 9.12.2012 11:25
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Michael Olšavský
Kit:9.12.2012 11:33

Po aplikaci DRY by to mohlo vypadat třeba takto:

<?php
$date = (int)Date("H");
$styl=(($date < 19) && ($date >= 7))?'style1.css':'style2.css';
echo <<<EOT
<link rel="stylesheet" href="$styl" type="text/css"/>
</head>
EOT;
Nahoru Odpovědět 9.12.2012 11:33
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Redaktor
Avatar
Kit:9.12.2012 11:41

Přes .htaccess je to ještě jednodušší, do aplikace není nutné zasahovat.

RewriteEngine On
RewriteBase /

RewriteCond %{TIME_HOUR} >07
RewriteCond %{TIME_HOUR} <19
RewriteRule ^style\.css$ /style-day.css
Nahoru Odpovědět 9.12.2012 11:41
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
albertpatera
Redaktor
Avatar
albertpatera:9.12.2012 16:25

nejde mi tam zmenit pozadi..

background: url('images/pozadi.jpg')
  • to nefunguje..co s tim??
Editováno 9.12.2012 16:27
 
Nahoru Odpovědět 9.12.2012 16:25
Avatar
Kit
Redaktor
Avatar
Odpovídá na albertpatera
Kit:9.12.2012 16:28

Zřejmě jsi sem dal funkční část kódu a tu nefunkční si tutláš pro sebe.

Adresář 'images' musí být ve stejném adresáři jako soubor s CSS.

Editováno 9.12.2012 16:30
Nahoru Odpovědět 9.12.2012 16:28
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
albertpatera
Redaktor
Avatar
albertpatera:9.12.2012 16:32
body {
     border:5px solid black;
     border-color:#00afc00;
     border: url("images/gradient.jpg");

     }
  • tohle mam v den.css, kterej mam nastavenej podle toho kodu cos mi poslal...border funguje, ale background nefunguje...pořád tam mam to zakladni pozadi..nevis co s tim?? diky

www.bertuvweb.8u.cz

 
Nahoru Odpovědět 9.12.2012 16:32
Avatar
albertpatera
Redaktor
Avatar
albertpatera:9.12.2012 16:38

no ve stejnym adresari to mam :(

 
Nahoru Odpovědět 9.12.2012 16:38
Avatar
matesax
Redaktor
Avatar
Odpovídá na albertpatera
matesax:9.12.2012 16:42
border: url("images/gradient.jpg");

Nemám slov... :)

Editováno 9.12.2012 16:43
 
Nahoru Odpovědět 9.12.2012 16:42
Avatar
albertpatera
Redaktor
Avatar
albertpatera:9.12.2012 16:45
Editováno 9.12.2012 16:45
 
Nahoru Odpovědět 9.12.2012 16:45
Avatar
albertpatera
Redaktor
Avatar
Odpovídá na matesax
albertpatera:9.12.2012 16:46

ale tak jaktoze to nefunguje??

 
Nahoru Odpovědět 9.12.2012 16:46
Avatar
matesax
Redaktor
Avatar
Odpovídá na albertpatera
matesax:9.12.2012 16:51

border border border border...

background background background...

:)
 
Nahoru Odpovědět 9.12.2012 16:51
Avatar
albertpatera
Redaktor
Avatar
Odpovídá na matesax
albertpatera:9.12.2012 17:02

nevim čim to je, umazal sem tam to ostatni a nechal sem tam jenom background...
ale nepomohlo to..pozadi se mi tam vubec nezobrazuje..­.zobrazuje se mi tam jenom to původní.. :( fakt nevim..

 
Nahoru Odpovědět 9.12.2012 17:02
Avatar
matesax
Redaktor
Avatar
matesax:9.12.2012 17:06

Místo:

border: url("images/gradient.jpg");

dej:

background: url("images/gradient.jpg");
Editováno 9.12.2012 17:06
 
Nahoru Odpovědět 9.12.2012 17:06
Avatar
Kit
Redaktor
Avatar
Odpovídá na albertpatera
Kit:9.12.2012 17:12

Opravdu? Často se setkávám s tím, že někdo dá CSS do souboru css/style.css a obrázek do images/obrazek.jpg a velice se diví, že mu to nefunguje.

Ujasni si, jestli řešíš background nebo border. Nějak moc často to střídáš.

body {
   background: white url("images/pozadi.jpg");
}
Nahoru Odpovědět 9.12.2012 17:12
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
albertpatera
Redaktor
Avatar
albertpatera:9.12.2012 17:13

to sem taky zkouse a nefuguje...nevim co s tim :(

 
Nahoru Odpovědět 9.12.2012 17:13
Avatar
matesax
Redaktor
Avatar
Odpovídá na albertpatera
matesax:9.12.2012 17:23
background-image: url("images/gradient.jpg");
 
Nahoru Odpovědět 9.12.2012 17:23
Avatar
albertpatera
Redaktor
Avatar
Odpovídá na Kit
albertpatera:9.12.2012 17:24

aha diky :D

 
Nahoru Odpovědět 9.12.2012 17:24
Avatar
matesax
Redaktor
Avatar
Odpovídá na albertpatera
matesax:9.12.2012 17:30

Máš-li images o řád níže, stačí ../

 
Nahoru Odpovědět 9.12.2012 17:30
Avatar
Kit
Redaktor
Avatar
Odpovídá na matesax
Kit:9.12.2012 17:39

Prvním parametrem background je barva. Teprve druhým je URL. Některé prohlížeče to mohou zvládnout i bez barvy, ale nemusí.

Nahoru Odpovědět 9.12.2012 17:39
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
albertpatera
Redaktor
Avatar
albertpatera:9.12.2012 17:40

hele ale ja sem tam mel images a neměl sem tam nasmerovanej adresar a taky to fungovalo
*

<?php
$date = (int)Date("H");
$styl=(($date < 19) && ($date >= 7))?'den.css':'den.css';
echo <<<EOT
<link rel="stylesheet" href="$den"  type="images/css"/>
</head>
EOT;

*

a stejne to nefunguje :( nevim fakt uz co s tim je :(

 
Nahoru Odpovědět 9.12.2012 17:40
Avatar
Kit
Redaktor
Avatar
Odpovídá na matesax
Kit:9.12.2012 17:40

Také může obrázek s pozadím nahrát do stejného adresáře jako CSS a další podadresáře neřešit.

Nahoru Odpovědět 9.12.2012 17:40
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Redaktor
Avatar
Odpovídá na albertpatera
Kit:9.12.2012 17:42

A co kdybys dal v noci jiné CSS?

Nahoru Odpovědět 9.12.2012 17:42
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Redaktor
Avatar
Odpovídá na albertpatera
matesax:9.12.2012 17:45

Máš v ternárním operátoru stejné větve a proměnnou používáš úplně jinou - v href...

 
Nahoru Odpovědět 9.12.2012 17:45
Avatar
Kit
Redaktor
Avatar
Odpovídá na matesax
Kit:9.12.2012 17:48

Aha, netušil jsem, že je možné to při opisování tak zkonit. Jméno souboru je v $styl, ale odkazuje se na $den.

Nahoru Odpovědět 9.12.2012 17:48
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
albertpatera
Redaktor
Avatar
Odpovídá na Kit
albertpatera:9.12.2012 17:55

a jak to má teda bejt správně?..diky

Editováno 9.12.2012 17:55
 
Nahoru Odpovědět 9.12.2012 17:55
Avatar
Kit
Redaktor
Avatar
Odpovídá na albertpatera
Kit:9.12.2012 18:01
<?php
$date = (int)Date("H");
$styl=(($date < 19) && ($date >= 7))?'den.css':'noc.css';
echo <<<EOT
<link rel="stylesheet" href="$styl"  type="images/css"/>
</head>
EOT;
Nahoru Odpovědět 9.12.2012 18:01
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Kit
Kit:9.12.2012 18:07

Je tam ještě jedna chyba. Místo

$date = (int)Date("H");

patří

$date = (int)Date("G");

Abych všechno ověřoval...

Nahoru Odpovědět 9.12.2012 18:07
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
albertpatera
Redaktor
Avatar
Odpovídá na Kit
albertpatera:9.12.2012 18:09

diky ale furt to nejde

 
Nahoru Odpovědět 9.12.2012 18:09
Avatar
Kit
Redaktor
Avatar
Odpovídá na albertpatera
Kit:9.12.2012 18:12

Co znamená "nejde"? Máš v kořenovém adresáři soubory den.css a noc.css?

Nahoru Odpovědět 9.12.2012 18:12
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
albertpatera
Redaktor
Avatar
albertpatera:9.12.2012 18:16

no v images ho nemam ale mam ho mimo a jinou slozku tam nemam

 
Nahoru Odpovědět 9.12.2012 18:16
Avatar
Kit
Redaktor
Avatar
Odpovídá na albertpatera
Kit:9.12.2012 18:20

Píšeš v hádankách. Kde máš soubory den.css, noc.css, pozadi.jpg a gradient.jpg? Nejlépe bude, když to všechno nahážeš do kořene webu.

Nahoru Odpovědět 9.12.2012 18:20
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
albertpatera
Redaktor
Avatar
albertpatera:9.12.2012 18:23

den.css mam v sem si presunul do images, noc.css taky a gradient.jpg mam v images

Editováno 9.12.2012 18:26
 
Nahoru Odpovědět 9.12.2012 18:23
Avatar
Kit
Redaktor
Avatar
Odpovídá na albertpatera
Kit:9.12.2012 18:42

No vidíš, jaký v tom máš binec. A jak to má chudák prohlížeč tušit, když podle linku máš den.css i noc.css ve stejném adresáři, jak index.php?

A proč dáváš CSS do adresáře images? Vždyť to nemá logiku. To jsi měl raději všechno nechat v kořeni webu, když neumíš pracovat s adresáři.

Nahoru Odpovědět 9.12.2012 18:42
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
albertpatera
Redaktor
Avatar
albertpatera:9.12.2012 18:55

stejne mi to nefunguje....a ja uz fakt nevim

 
Nahoru Odpovědět 9.12.2012 18:55
Avatar
Kit
Redaktor
Avatar
Odpovídá na albertpatera
Kit:9.12.2012 19:01

A proč by to mělo fungovat, když to máš blbě?

Nahoru Odpovědět 9.12.2012 19:01
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
albertpatera
Redaktor
Avatar
albertpatera:9.12.2012 19:03

a tak jak to pak bude dobre?

 
Nahoru Odpovědět 9.12.2012 19:03
Avatar
Kit
Redaktor
Avatar
Odpovídá na albertpatera
Kit:9.12.2012 19:11

Až všechny podadresáře zrušíš a zrušíš i odkazy na ně. Všechno hezky v kořeni webu a bude pokoj.

Nahoru Odpovědět 9.12.2012 19:11
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Redaktor
Avatar
Odpovídá na Kit
matesax:9.12.2012 19:13

Pro někoho dělení smysl má - pro někoho ne - to si myslím, že takový problém není. Prostě albertpatera se musí naučit co je to kořenový adresář webu. Co jsou to řády, a jak se v nich pohybovat. K čemu je vlnovka a k čemu ../ atd... A to tu najde v CSS tutoriálu. I kdybychom mu dali celý funkční web, nedopadlo by to dobře - vlastní zkušenost... :)

Editováno 9.12.2012 19:13
 
Nahoru Odpovědět 9.12.2012 19:13
Avatar
albertpatera
Redaktor
Avatar
Odpovídá na matesax
albertpatera:9.12.2012 19:14

ok chápu už se mi to jednou stalo...

 
Nahoru Odpovědět 9.12.2012 19:14
Avatar
Kit
Redaktor
Avatar
Odpovídá na matesax
Kit:9.12.2012 19:29

Podadresáře zpravidla řeším až od několika set či tisíc souborů v adresáři. Lépe se mi s tím pracuje, když mám vše hezky pohromadě. Dobře se dělají i hromadné úpravy - nemusím pokaždé traverzovat stromem, ale použjiji jednoduchou utilitu v jednom adresáři. Každému to však nevyhovuje.

Nahoru Odpovědět 9.12.2012 19:29
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Redaktor
Avatar
Odpovídá na Kit
matesax:9.12.2012 19:31

A co jsem psal?

"Pro někoho dělení smysl má - pro někoho ne..."

Jde mi o to, že problém nechceš řešit, ale pohřbít - ať si klidně má vše v jednom adresáři, ale ať chápe, jak má pracovat s relativní URL... (To se přeci netýká jen adresářů.)

Editováno 9.12.2012 19:32
 
Nahoru Odpovědět 9.12.2012 19:31
Avatar
Kit
Redaktor
Avatar
Odpovídá na matesax
Kit:9.12.2012 19:45

Správně. Když ten problém teď pohřbí, bude dělat funkční stránky. Sice to nebude dokonalé podle měřítek jiných programátorů, ale fungovat to bude. Časem ten problém sice bude řešit znovu, ale už bude pokročilejší a možná na to přijde sám.

Proč webmasteři používají primitivní Smarty a nechávají ladem dokonalé XSLT? Protože ve Smarty udělá šablonu každý začátečník za pár minut. A mnoho jich u Smarty také zůstane. XSLT se učí mnohem déle.

Pokud někdo pro správu souborů používá GUI, tak i 50 souborů v jednom adresáři je mnoho. Když ho nepoužívám, nevadí mi ani 50 000 souborů.

Nahoru Odpovědět 9.12.2012 19:45
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
albertpatera
Redaktor
Avatar
Odpovídá na Kit
albertpatera:9.12.2012 19:56

to mluvíte ke mě?

 
Nahoru Odpovědět 9.12.2012 19:56
Avatar
Kit
Redaktor
Avatar
Odpovídá na albertpatera
Kit:9.12.2012 20:08

Ne. Teď se dohadujeme o tom, zda se mají některé problémy pohřbívat nebo vždy řešit a to i za cenu utopení autora v těch problémech.

Nahoru Odpovědět 9.12.2012 20:08
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
albertpatera
Redaktor
Avatar
 
Nahoru Odpovědět 9.12.2012 20:23
Avatar
albertpatera
Redaktor
Avatar
Odpovídá na Kit
albertpatera:10.12.2012 16:29

částečně jsem můj problém vyřešil...dal jsem tak jenom obrázek, ale mám problém s tím, že ten obrázek je furt dole a nejde ho nijak napozicovat?? nevíte, co s tím?? díky

 
Nahoru Odpovědět 10.12.2012 16:29
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 62 zpráv z 62.