Skocz do zawartości
"Idzie nowe..." - o zmianach i nie tylko ×
Przeniesienie zakupów z IPS Marketplace / Moving bought items from IPS Marketplace ×

[TZ34] Casting - propozycje, ocena


Rekomendowane odpowiedzi

Od paru dni piszę nową aplikację - Casting. Na czym polega? Opiszę może w kilku krokach:

  • Wybór grupy do której użytkownik ma zostać przerzucony po akceptacji
  • Napisanie apelacji przez kandydata
  • Oddawanie głosów przez innych na tak/nie
  • Komentowanie kandydatury
  • Ostatecznie akceptacja ( automatyczne przerzucenie do wcześniej wybranej grupy ) bądź odrzucenie

Dodatkowo:

  • Moduł poświęcony w całości informacją np. o trwającej rekrutacji,
  • Lista aktywnych apelacji ( w tej sekcji można przejść do modułu Nowej apelacji )
  • Lista rozpatrzonych apelacji
  • W w/w listach widoczne są wyniki głosowania ( w punktach oraz mały diagram? )
  • Karta apelacyjna
    • Możliwość oddawania głosów na kandydata
      • Tak/Nie
      • Cofnięcie głosu
      • Możliwość zobaczenia kto oddal głos na tak/nie
    • Możliwość oddawania komentarzy
      • Stronnicowanie
  • Możliwość akceptacji / odrzucenia
    • Po wydaniu werdyktu widać kto i kiedy go wykonał
  • Panel administracyjny, a w nim
    • Możliwość akceptacji / odrzucenia
    • Dodawanie / usuwanie / edycja pól
    • Logi apelacji

Demo: http://doside.pl/demo/index.php?app=casting
Dane testowe:

l: test11

h: test11

 

l: test22

h: test22

 

l: test33

h: test33

 

l:test44

h:test44

 

l:test55

h:test55

  • Lubię to 4

Znajdziesz mnie na LinkedIn

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Sporo uwag, ale to na spokojnie. ;)

 

Jedne co bardzo się rzuca w oczy - brak stosowania add_join, a zamiast tego dajesz nowe zapytanie do bazy per jedno wykonanie pętli while. Musisz koniecznie zmienić ten nawyk.

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

Sporo uwag, ale to na spokojnie. ;)

 

Jedne co bardzo się rzuca w oczy - brak stosowania add_join, a zamiast tego dajesz nowe zapytanie do bazy per jedno wykonanie pętli while. Musisz koniecznie zmienić ten nawyk.

 

Co gdy będę chciał wykonać pętlę dla danego zapytania, a dla innego już nie? Jak wtedy wybrnąć nie robiąc kolejnego zapytania? I co jest złego w while? :P

Znajdziesz mnie na LinkedIn

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Nie mówiłem, że while jest złe tylko to, że wykonujesz w pętli zapytania które z powodzeniem możesz zrobić przy pomocy add_join'a.

Jednak wszystko i tak zależy od tego, co właśnie chcesz osiągnąć.

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

A czy poza tym powinienem jeszcze na coś zwrócić szczególną uwagę np. wypisywanie wszystkich zmiennych pobranych z bazy danych jak to zrobiłem w module appeal?

$cos = $row['cos'];
$cos2 = $row['cos2'];
///
 
$this->registry->output->addContent($this->registry->output->getTemplate('casting')->card($cos, $cos2);

Co innego gdy używam pętli, a później mogę użyć foreach, tutaj mam wątpliwości czy robię to poprawnie, czy nie jest to jakieś łopatologiczne.

Edytowane przez TeeZ

Znajdziesz mnie na LinkedIn

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Najpierw:

$this->registry->output->addContent($this->registry->output->getTemplate('casting')->card($row);

A potem w skinie używasz już tych kluczy.

 

Po co sobie życie utrudniać.

 

I bardzo ale to bardzo nie stosujesz się do pisania ładnego kodu - wcięcia, opisy etc.

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

W .php przecież używam wcięć ( w szablonie nie ). Choćby przykład:

	public function reject()
	{
		if($this->settings['casting_check']!='' && in_array($this->memberData['member_group_id'],explode(",",$this->settings['casting_check'])))
		{
			
			$this->DB->update( "casting_appeal", array( 'casting_status' => '2', 'casting_acceptby' => $this->memberData['member_id'], 'casting_acceptdate' => IPS_UNIX_TIME_NOW ), 'casting_id='.$this->request['id'] );
			{
				if(!IN_ACP )
				{
					echo '<script language="javascript"> location.href="index.php?app=casting&module=appeal&id='.$this->request['id'].'"</script>';
				}
				else
				{
					$this->registry->output->redirect( $this->settings['base_url'].'module=appeals&section=appeals', 'You successfully accept user.', 5 );
				}
			}
			
		}
		else
		{
			if(IN_ACP )
			{
				$this->registry->output->showError( 'You do not have permission', 'TZ001' );
			}
			else
			{
				$this->registry->output->showError( 'You do not have permission', 00001, false, '', 403 );
			}
		}
	}

Wyrobiłem sobie wzór:

if(cos)
{
spacja cos
}
else 
{
spacja cos
}

W klasach / funkcjach

class klasa {
spacja funkcja
spacja spacja if
spacja spacja {
spacja spacja spacja cos
spacja spacja }
[...]
spacja }
}

Tfu, nie spacja, a tabulator.

:blind:

Znajdziesz mnie na LinkedIn

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 miesiące temu...

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.