Nasledio sam rad na jednom CMS-u.
Jedan od modula koji je uradjen je modul News.
U okviru CMS-a moze biti vise modula News. Svaki od tih modula ima svoj ID.
Svaki od njih takodje moze imati vise vesti u okviru samog sebe.
Jedan modul ima vise vesti. CMS ima vise modula News.
Pojavila se potreba da ja dodam arhivu vesti.
Dodao sam polje u tabeli koje sam nazvao Arhiva, i nakon sto administrtaor klikne na "Stavi u arhivu" , polje u tabeli se updateuje i dobije vrednost '1'. Po defaultu sam stavio da je '0'.
Treba da prikazem otprilike ovo:
Ako odredjeni Modul News (tu odredjujem koji je tako sto radim upit ka bazi da mi se izdvoje ModuleID svih koji imaju Arhiva='1') ima arhivu, u zaglavlju samog modula prikazi link "arhiva".
Na izgled jednostavno, pojavio se problem. Kada u tabeli News, postoji makar samo jedno polje Arhiv koje ima vrednost '1', meni se u zaglavlju svih Modula News, pojavljuje link ka arhivi. Trebalo bi da s pokaze samo u onom Modulu koji ima arhivu, odnosno gde je stanje Arhiva='1'.
Dakle, primera radi, Modul News ima sledece podatke:
ModuleID | Title | ShortDesc | LongDesc | Arhiva(ovo sam ja dodao)
1 Naslov Kratak opis Duzi opis 1
2 Naslov Kratak opis Duzi opis 0
1 Naslov Kratak opis Duzi opis 0
2 Naslov Kratak opis Duzi opis 1
Kao sto vidite, Modul koji ima isti ID moze da ima nekoliko vesti. Neke su u arhivi a neke ne.
Jednostavno nemam ideju kako da to prikazem. Uradio sam , izmedju ostalog i sledece(ovo je poslednje sto sam napisao, takod a verovatno i ne radi i besmisleno je, ali meni mozak kljuca, tako da ...pardon :)):
Code:
function CheckArhiv($mid){
global $conn,$smarty;
$sql_arhiva="select ModuleID, Arhiva from news where Arhiva='1'";
$sql=mysql_query($sql_arhiva);
while ($arhiva=mysql_fetch_array($sql)) {
if ($modid==$mid and $arhiv==1) {
$smarty->assign("arhiva","Arhiva"); }}
}
function CheckArhiv($mid){
global $conn,$smarty;
$sql_arhiva="select ModuleID, Arhiva from news where Arhiva='1'";
$sql=mysql_query($sql_arhiva);
while ($arhiva=mysql_fetch_array($sql)) {
if ($modid==$mid and $arhiv==1) {
$smarty->assign("arhiva","Arhiva"); }}
}
elem to je samo jedna od kombinacija koje sam pokusao.
Zatim sam na template koji prikazuje stranicu stavio:
Code:
{if $CentralPane_content[b].ModuleDefID==3 and $arhiva}{if $arhiva}<a href="?modid={$CentralPane_content[b].ModuleID}&portalid={$portalid}&p=viewArchive">{php} echo NEWSARCHIV;{/php}</a>{/if}{/if}
{if $CentralPane_content[b].ModuleDefID==3 and $arhiva}{if $arhiva}<a href="?modid={$CentralPane_content[b].ModuleID}&portalid={$portalid}&p=viewArchive">{php} echo NEWSARCHIV;{/php}</a>{/if}{/if}
Na kraju kao rezultat dobijam ono sto rekoh na pocetku: Ukoliko se u tabeli pronadje makar samo jedno polje gde je Arhiva='1', u svakom Modulu News, ja dobijem link ka arhivi za taj modul.
'Rvem se sa ovim nekoliko dana kombinujuci, ali ne uspevam. Pls help :)
[Ovu poruku je menjao vladimirn dana 07.03.2007. u 15:10 GMT+1]
[Ovu poruku je menjao vladimirn dana 07.03.2007. u 16:05 GMT+1]
[Ovu poruku je menjao vladimirn dana 08.03.2007. u 13:39 GMT+1]