Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] jak przerobic ten kawalek kodu, aby nie powtarzac
Forum PHP.pl > Forum > PHP
AndyPSV
jak przerobic ten kawalek kodu,
  1. if($r['access'] == 1) {
  2. if(empty($this->u['id'])) {
  3. $r['infobox'] = 1; $r['text'] = substr($r['text'],0,$r['cut']); $r['text'] .= '... <a href="'.URL.'cart/?'.$r['product'].'=1" class="b">BUY ACCESS TO ARTICLE TO VIEW</a>';
  4. $this->tpl->assign('infbox1',PG_SAMPLE); $this->tpl->assign('infbox2','Please <a href='.URL.'cart/?'.$r['product'].'=1>make payment</a> and become a member to get the missing part');
  5. } else {
  6. if(!in_array($r['id'],array($this->u['paid']))) {
  7. $r['infobox'] = 1; $r['text'] = substr($r['text'],0,$r['cut']); $r['text'] .= '... <a href="'.URL.'cart/?'.$r['product'].'=1" class="b">BUY ACCESS TO ARTICLE TO VIEW</a>';
  8. $this->tpl->assign('infbox1',PG_SAMPLE); $this->tpl->assign('infbox2','Please <a href='.URL.'cart/?'.$r['product'].'=1>make payment</a> and become a member to get the missing part');
  9. }
  10. }
  11. }


aby nie trzeba bylo 2 razy powtarzac:

  1. $r['infobox'] = 1; $r['text'] = substr($r['text'],0,$r['cut']); $r['text'] .= '... <a href="'.URL.'cart/?'.$r['product'].'=1" class="b">BUY ACCESS TO ARTICLE TO VIEW</a>';
  2. $this->tpl->assign('infbox1',PG_SAMPLE); $this->tpl->assign('infbox2','Please <a href='.URL.'cart/?'.$r['product'].'=1>make payment</a> and become a member to get the missing part');


jakies koncepcje?
thek
Przypisać PRZED if(empty($this->u['id'])) i zmienić jedynie w przypadku nie pasującym do sytuacji? winksmiley.jpg

EDIT: Innymi słowy... Domyślnie jest to ustawione, a kasujesz tylko w wypadku, gdy user ma wykupione członkostwo.
redeemer
Instrukcje są takie same, więc powinieneś skorzystać z operatora logicznego "lub".


thek
A to nie prościej zrobić z negacją? Jeśli niepuste u['id'] oraz r['id'] jest w tablicy opłaconych skasuj tekst o konieczności płatności ustawiony przed owym IF sprawdzającym. Kwestia w sumie wyboru.
AndyPSV
Wydaje mi sie, ze zle mnie zrozumieliscie (albo ja czegos nie widze)

Kod wyglada tak


JESLI(NIEZALOGOWANY) {
wywal kod o kupnie artykulu
} ELSE {
JESLI(ARTYKUL_ID, JEST WYKUPIONY_ID) POKAZ ARTYKUL; ELSE wywal kod o kupnie artykulu


mmhm
moze jednak cos zgubilem

jak to rozwiazac
thek
No to "przeczytaj" moje podejście.
Wyświetl informacje o kupnie.
Jeśli jest zalogowany (niepuste u[id] ) oraz jest w opłaconych (r[id] w tablicy u[paid]) to wywal jednak ten komunikat, nie pokazuj go winksmiley.jpg Zrobiłem to więc od drugiej strony niż Ty Pokazuję komunikat zawsze oprócz przypadku gdy zalogowany i opłacony.
AndyPSV
tak jak powiedziales nie dzialalo, bo pozostal jeszcze problem niezalogowanego, ale przerobilem skrypt dzieki twym poradom, ze juz dziala:

  1. if((empty($this->u['id'])) OR (!empty($this->u['id']) AND !in_array($r['id'],array($this->u['paid'])))) {
  2. $r['infobox'] = 1; $r['text'] = substr($r['text'],0,$r['cut']); $r['text'] .= '... <a href="'.URL.'cart/?'.$r['product'].'=1" class="b">BUY ACCESS TO ARTICLE TO VIEW</a>';
  3. $this->tpl->assign('infbox1',PG_SAMPLE); $this->tpl->assign('infbox2','Please <a href='.URL.'cart/?'.$r['product'].'=1>make payment</a> and become a member to get the missing part');
  4. }


ah ta logika
dzieki
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.