Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Molim da se tema obrise, problem sam resio

[es] :: PHP :: Molim da se tema obrise, problem sam resio

[ Pregleda: 1189 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

vladimirn
Vladimir Nikolic
Novi Sad

Član broj: 38585
Poruke: 81
*.static.sbb.co.yu.



Profil

icon Molim da se tema obrise, problem sam resio05.03.2007. u 13:02 - pre 208 meseci
Pokusacu da u najkracem mogucem obliku objasnim u cemu je problem:
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"); }}
        
  }


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}


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]
 
Odgovor na temu

w3bl0rd
Varaždin, Hrvatska

Član broj: 82659
Poruke: 380
*.cmu.carnet.hr.



+26 Profil

icon Re: PHP/Smarty pomoc06.03.2007. u 20:43 - pre 208 meseci
imaš varijablu u templateu koji je samo link i sad ako je arhiva 0 link setiraš da izgleda $link=""; a ako ne onda staviš $link="<a href..."; naravno ovo je samo da ti da ideju... iskreno ne znam dal sam najbolje skužio problem... ono sa id-ovima pa zašto nisi složio tako da id-evi nikako nemogu biti isti? ne znam opet dal sam sve dobro razumio pojasni bolje...
there's no place like 127.0.0.1
 
Odgovor na temu

vladimirn
Vladimir Nikolic
Novi Sad

Član broj: 38585
Poruke: 81
*.static.sbb.co.yu.



Profil

icon Re: PHP/Smarty pomoc07.03.2007. u 10:26 - pre 208 meseci
Hvala na pomoci. Potrudicu se da bolje objasnim.

Na sajtu moze postojati vise "modula" vesti. Svaki od tih modula, prilikom kreiranja, dobio je svoj ID.
Jedan tako kreiran modul mozes postaviti na koju zelis stranicu.
Modul moze imati vise , da ih tako nazovem, vesti.

Npr. Imas ModulVesti kojem si prilikom kreiranja dao ime Sportske vesti. On ce se nalaziti na npr stranici Sport.
Onda imas i drugi ModulVesti koji si nazvao Politicka desavanja. On ce se nalaziti na stranici Politik (npr)

Takodje, mozes imati i ModulSlike(npr) i sl.

Kapiras logiku? Znaci, svaki Modul(xx) ima svoj ID. ModulVesti ima ID 3. ModulSlike ima id 4. ModulProizvodi ima ID 5. itd.

Moduli su unapred odredjeni i njima sam dodelio ID. Tabela u kojoj se oni nalaze sadrzi samo ModulID i ModulName.

e sad, svaki modul moze imati vise celina u okviru sebe. Tako ModulVesti moze imati u sebi n vesti.
Znaci ti kreiras novi modul, das mu ime, i onda ui taj modul ubacujes sadrzaj koji hoces.
Ukoliko je taj sadrzaj nekakva news, onda ide u tabelu news, ukoliko je slika ide u tabelu galeriju slika i u te tabele se upisuje ID modula.
Uh.
puf puf...

Nadam se da sam nekako uspeo da objasnim to oko ID-a.

Zapravo mislim da sam identifikovao problem:
Realno u bazi imam dva modula koji imaju polje Arhiva = 1
Medjutim, kada pozovem dole napisanu funkciju, ja dobijem samo jedan ModulID sa Arhiva=1
Code:
function GetModulID() {
      global $conn,$smarty;
      $sql_arhiva="select * from annoucements where Arhiva ='1'";
      $arhiv=mysql_query($sql_arhiva);
      while($row=mysql_fetch_array($arhiv)){
    $modid = $row['ModuleID'];
    echo $modid;// [red]ispise mi samo jedan ID, umesto dva??[/red]
    return $modid;}
}


Ovako pozivam rezultat na stranici:
Code:
$modid = $news->GetModulID();


Uh. Hvala unapred :)
 
Odgovor na temu

[es] :: PHP :: Molim da se tema obrise, problem sam resio

[ Pregleda: 1189 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.