Autor Zpráva
Glumik
Profil *
Zdravim, mam 5 stranek, kde chci pouzit univerzalni funkci z duvodu, ze se tam nektere hodnoty opakuji a bylo by uplne zbytecne psat pro kazdou stranku dalsi funkci, ve ktere bych zmenil pouze nektere z parametru.
Budu mit napriklad pole 'zobrazitJako' a hodnoty 'seznam1', 'seznam2', 'seznam3', 'seznam4' a tohle pole chci pouzit jak pro stranku1, tak i pro stranku2 a nejak v kodu k temto polim priradit text, ktery bude odlisny. Napr. na strance1 bude pro hodnotu 'seznam1' text 'Strucny seznam' a na strance2 bude pro hodnotu 'seznam1' text 'Seznam'. Jakym zpusobem nebo lepsim zpusobem napsat tuto funkci napsat?
Madenio
Profil
no najlepsie asi bude ked budes zdielat jeden kod pre vsetky domeny a v ramci funkcii osetris aby sa podla nazvu domenu vykonali upravy, ktore chces.
Glumik
Profil *
Taky si to myslim, ze je nejlepsi mit jednu funkci a mit osetrene vystupu pro jednotlive stranky, nez psat skoro stejnou funkci pro kazdou stranku zvlast. Ale chtel jsem znat i nazor ostatnich, takze diky Ti na Tvuj nazor.
MzM
Profil
Glumik, Madenio si dělá prdel... A jestli ne, tak je to hodně divná odpověď.
Když se tam tolik věcí opakuje, tak si napiš něco, čemu se říká template, nebo to skldej v jednom php, kde se podle adresy dotáhne nějaké include, nebo na to vyrob třídu (stránka) nebo tak něco.
Dotaz je poměrně dost obecný, tak na něj nemůžu stvořit konkrétní odpověď.
Glumik
Profil *
MzM

Ja si nedelam prdel a moje otazka byla blbe polozena, protoze Madenio ani Ty jsi ji nepochopil dostatecne. Mam funkci na filtr, kterym si zvolim zpusob zobrazeni stranky. Vsechno funguje tak, jak mam, ale momentalne muzu tuto funkci pouzit jen na jedne strance, protoze mam problem s vytvorenim vicerozmerneho pole, jak jsi se mohl docist. Potrebuji v cyklu foreach mit tohle.

kdeZobrazit => sklad => zobrazitJako => seznam1
kdeZobrazit => sklad => zobrazitJako => seznam2
kdeZobrazit => sklad => zobrazitJako => seznam3
kdeZobrazit => sklad => zobrazitJako => seznam4
kdeZobrazit => faktury => zobrazitJako => seznam1
kdeZobrazit => faktury => zobrazitJako => seznam2
kdeZobrazit => faktury => zobrazitJako => seznam3
kdeZobrazit => faktury => zobrazitJako => seznam4
atd.
Madenio
Profil
MzM
Chytracik... teraz sa tu nebavime o templateoch, ale o pouziti funkcii, ktore sa maju na roznych strankach spravat rozne -> Co to ma spolocne s templateami a include ?!
MzM
Profil
Madenio: Nevím, asi jsem špatně pochopil dotaz. A když napíšeš "jeden kod pre vsetky domeny", co si o tom mám myslet?
Glumik: pravda na mě se musí pomalu a srozumitelně. Ale zase ze mě pak něco můžeš dostat...
Když se na něco takového ptáš a nevíš, jak, tak tam necpi "chci foreac", mě to pak mate a vůbec nevím, co chceš udělat.
..tak, teď jsem asi 8x přečetl dotazy, asi to trochu chápu, ale nechápu, co vlastně chceš vyrobit. Teď to chápu tak, že chceš mít pole, kde je pro danou stránku a pro daný prvek pole (to seznam1 seznam2) text, který chceš na té stránce zobrazit. Tedy něco jako:
$texty['strankaA']['text1'] = "podrobny seznam";
$texty['strankaB']['text1'] = "seznam";

a fce dostane parametry stranky a textu a zobrazí správný text. Tedy něco jako:
<h2><?php echo fn_text(basename($_SERVER['SCRIP_FILENAME']), 'titulek'); ?></h2>

kde to pole, ve kterém bys měl texty mohlo vypadat třeba takto:

$pole = array(
'index.php' => array('titulek' = > 'index stranky', 'seznam' => 'zakladni seznam'),
'sklad.php' => array('titulek'=>'sklad', 'seznam' => 'seznam skladu'),
'fatkury.php' => arrya('titulek' = 'faktury', 'seznam' => 'seznam faktur')
)

Toto chceš? Nebo jsem to pochopil špatně?
Madenio
Profil
MzM
Jeden source code pre vsetky domeny, kde bude tento web bezat = jeden root dir a k nemu x aliasov v apachi.
Glumik
Profil *
MzM

Ano, toho jsem si uz vsimnul, ze dokazes pomoct a za to Ti patri muj dik. V teto veci jsme se do toho pekne oba zamotali, jak se tak divam. :o) Tu fce jsi castecne pochopil dobre, ale to je vedlejsi, me zajima to pole a to jsi nepochopil. Ted napisi dve pole, ktere potrebuji mit v jedne promenne.

array(
'kdeZobrazovat' => array('sklad', 'faktury'));

array(
'zobrazitJako' => array('seznam1', 'seznam2', 'seznam3', 'seznam4'));

$filtrZobrazeni = array(....)// tady chci mit ty dve vyse uvedene pole, ktere k sobe neoddelitelne patri.

no fce dostane parametry

<?php echo filtr(basename($_SERVER['SCRIP_FILENAME']), 'zobrazitJako'); ?>

podminka v fce:

if((($_SERVER['SCRIP_FILENAME']) == 'sklad') && (zobrazitJako = 'zobrazitJako')){
return // hodnota, ktera vyhovuje podmince.
}

Proste potrebuji to pole, aby fce vedela, ze pole 'kdeZobrazovat' a pole 'zobrazitJako' patri neoddelitelne k sobe a fce se mohla ridit, co ma vlastne zobrazovat.

Uz nevim, jak to mam vysvetlit, doufam ze jsi to uz pochopil :o)
MzM
Profil
Madenio, OK, zase jsem to blbě pochopil, sorry. To jsem chytil na diskusích. Někde se ušklíbneš nad blbostí a hned tě pasují na arogantního nevědomce. Už to občas taky tak dělám. Měl bych se nad sebou zamyslet....

Glumik, jo, popsat problém a následně pochopit z popisu, to je někdy ořech. :-)
Takže ty potřebuješ akorát stvořit to pole?
podle mě to "sklad" a "faktury" má tvořit další rozměr toho n-rozměrného pole a ne prvky, ne?

Možná když zkusíš dva naprosto konkrétní případy. Spíš obecněji funkčně popsané, jak nějakou implementaci přes pole a php.
(teď nevím jesli jsem se vyjádřil jasně. Myslel jsem tím: napiš něco jako
"chci seznam po sobě jdoucích čísel" a ne "mám proměnnou i a chci ji v cyklu for zvětšovat o jedna a vypisovat hodnotu, která je uložená v i". To je sice jinými slovy totéž, ale to první je rychleji pochopitelné a dovoluje více řešení.)
Madenio
Profil
MzM
:)
Glumik
Profil *
MzM

podle mě to "sklad" a "faktury" má tvořit další rozměr toho n-rozměrného pole a ne prvky, ne?

Bingo, tohle prave potrebuji.
Glumik
Profil *
MzM


Jupiii, konecne jsem na to prisel. :o) Prave tohle jsem potreboval:

$filtrZobrazeni = array('zobrazitJako_faktury' => array('seznam1', 'seznam2', 'seznam3', 'seznam4', 'kdeZobrazit' => array('sklad', 'faktury')));

Diky za spolupraci.

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