What's new

PHP Punkty dla gildi

Status
Not open for further replies.

Zizi Knight

Advanced User
Joined
Jun 14, 2008
Messages
467
Reaction score
34
Widzia?em taki kod na jednym z ots i postanowi?em sobie taki zrobi?, a ?e nie mam ots to daje go wam, drogie pijawki.
W bazie danych wykonujemy takie zapytanie;
PHP:
CREATE TABLE `guild_zapisy` (
`id` int( 11 ) NOT NULL AUTO_INCREMENT ,
`id_guild` int( 11 ) NOT NULL ,
`opcja` TINYINT( 1 ) NOT NULL,
PRIMARY KEY ( `id` )
)
Potem tworzymy plik zapy.php a w nim
PHP:
<?PHP
/*##### Punkty dla gildi #######
Autor: Marek Wi?cek
Strona www;http://anonimus.aq.pl
*/
/*## Zapytanie do bazy danych
CREATE TABLE `guild_zapisy` (
`id` int( 11 ) NOT NULL AUTO_INCREMENT ,
`id_guild` int( 11 ) NOT NULL ,
`opcja` TINYINT( 1 ) NOT NULL,
PRIMARY KEY ( `id` )
)
*/
//### Konfiguracja
$ilosc_graczy = 9;//Ile graczy musi byc w gildi - musi byc o jeden mniej
$ilosc_pkt = 100;//Ile pkt za gracza
function zabezpiecz($n){ 
	return addslashes(trim(($n)));
	}
$main_content .="<table width=\"100%\" border=\"0\">";
if(!$logged){
	$main_content .= "Musisz sie zalogowac";
}
else{
if($_GET['panel'] == "yes" && $group_id_of_acc_logged >= $config['site']['access_admin_panel']){
	if($_GET['id'] && $_GET['a']){
		if($_GET['a'] == "canel"){
			if($SQL->query("UPDATE `guild_zapisy` SET `opcja` = '2' WHERE `id` =".$_GET['id'])){
				$main_content .= "Zgloszenie zostalo odrzucone";
			}
		}
		else{
		$guild = $ots->createObject('Guild');
		$guild->load($_GET['guild']);
		$guild_leader = $guild->getOwner();
		$guild_name = $guild->getName();
		$guild_id = $guild->getId();
		$rank_list = $guild->getGuildRanksList();
			foreach($rank_list as $rank){
				$players_with_rank = $rank->getPlayersList();
					foreach($players_with_rank as $players){
						$players_in[] = $players->getName();
						}
					}
		$player_count = count($players_in);
		$player = $ots->createObject('Player');
		$player->find($guild_leader);
		$player_acc_id = $player->getCustomField("account_id");
		$account_player = $ots->createObject('Account');
		$account_player->find($player_acc_id);
		$account_points = $account_player->getCustomField("premium_points");
		$pkt_do_dodania = $player_count*$ilosc_pkt;
		if($SQL->query("UPDATE `guild_zapisy` SET `opcja` = '1' WHERE `id` =".$_GET['id'])){
			if(!$account_player->setCustomField("premium_points",$account_points+$pkt_do_dodania)){
				$main_content .= "Dodano punkty";
				}
		}else{$main_content .="nie udalo sie dodac punktow";
		$main_content .= $account_points." ".$_GET['id'];}
		}
		}
	else{
	$main_content .= '
					<tr bgcolor="'.$config['site']['vdarkborder'].'" style="color:white;">
					<td class="white">Nazwa gildi</td>
					<td class="white">Zalozyciel</td>
					<td class="white">Ilosc czlonkow</td>
					<td class="white">Laczna ilosc pkt do zdobycia</td>
					<td class="white"></td>
					</tr>';
	$zapisani = $SQL->query("SELECT `id` , `id_guild` FROM `guild_zapisy` WHERE `opcja` =0");
	foreach($zapisani as $zapisany){
		$guild = $ots->createObject('Guild');
		$guild->load($zapisany['id_guild']);
		$guild_leader = $guild->getOwner();
		$guild_name = $guild->getName();
		$guild_id = $guild->getId();
		$rank_list = $guild->getGuildRanksList();
			foreach($rank_list as $rank){
				$players_with_rank = $rank->getPlayersList();
					foreach($players_with_rank as $players){
						$players_in[] = $players->getName();
						}
					}
		$players_count = count($players_in);
		if(is_int($nr_gracza / 2)) 
            $bgcolor = $config['site']['darkborder']; 
        else 
            $bgcolor = $config['site']['lightborder']; 
        $nr_gracza++;
		$main_content .= '<tr bgcolor="'.$bgcolor.'">
		<td>'.$guild_name.'</td>
		<td>'.$guild_leader.'</td>
		<td>'.$players_count.'</td>
		<td>'.$players_count * $ilosc_pkt.'</td>
		<td><a href="?subtopic=zapy&panel=yes&id='.$zapisany['id'].'&a=akcept&guild='.$guild_id.'">Akcjeptuj</a></br>
			<a href="?subtopic=zapy&panel=yes&id='.$zapisany['id'].'&a=canel">Odrzuc</a>
		</td>
		</tr>
		';
	}
}}
else{
	if($_POST['nazwa']){
		$nazwa = zabezpiecz($_POST['nazwa']);
		$player = $ots->createObject('Player');
		$player->find($nazwa);
		$rop = $player->getRank();
			if(empty($rop)){
				$main_content .= "Ten gracz nie jest w zadnej gildi";
			}
			else{
				$guild_id = $rop->getGuild()->getId();
				$guild_name = $rop->getGuild()->getName();
				$guild = $ots->createObject('Guild');
				$guild->load($guild_id);
				$guild_leader = $guild->getOwner();
				if($player->getName() != $guild_leader){
					$main_content .= "Ten gracz nie jest liderem gildi";
				}
				else{
					$rank_list = $guild->getGuildRanksList();
					$rank_list->orderBy('level', POT::ORDER_DESC);
					foreach($rank_list as $rank){
						$players_with_rank = $rank->getPlayersList();
						foreach($players_with_rank as $players){
							$players_in[] = $players->getName();
						}
					}
					$players_count = count($players_in);
					if($players_count < $ilosc_graczy){
						$ile_musi_byc = $ilosc_graczy +1;
						$main_content .= "Za malo graczy w gildi</br>Musi byc ".$ile_musi_byc.",a jest ".$players_count;
					}
					else{
						$zapytanie_czy_istnieje = $SQL->query("SELECT * FROM `guild_zapisy`	WHERE `id_guild` = '".$guild_id."'")->fetch();
						if($zapytanie_czy_istnieje){
							$main_content .= "Twoja gildia zostala zgloszona";
						}
						else{
							if($_GET['akcept'] == "yes"){
								if($SQL->query("INSERT INTO `guild_zapisy` ( `id` , `id_guild` ,  `opcja`) VALUES ( NULL , '".$guild_id."','0')")){
									$main_content .= "Twoje zgloszenie zostanie rozpatrzone przez ekipe";
								}
								else{
									$main_content .= "Wystapily bledy podczas dodawania zgloszenia.</br>Przepraszamy";
								}
							}
							else{
							$main_content .= '
								<tr bgcolor="'.$config['site']['vdarkborder'].'" style="color:white;">
								<td class="white" width="25%">Parametr</td>
								<td class="white">Wartosc</td>
								</tr>
								<tr bgcolor="'.$config['site']['darkborder'].'">
								<td>Zalozyciel</td>
								<td>'.$guild_leader.'</td>
								</tr>
								<tr bgcolor="'.$config['site']['lightborder'].'">
								<td>Ilosc punktow za gracza</td>
								<td>'.$ilosc_pkt.'</td>
								</tr>
								<tr bgcolor="'.$config['site']['darkborder'].'">
								<td>Laczna ilosc punktow do zdobycia</td>
								<td>'.$ilosc_pkt*$players_count.'</td>
								</tr>
								<tr bgcolor="'.$config['site']['lightborder'].'">
								<td>Lista graczy</td>
								<td>';
								foreach($players_in as $gracz){
									$main_content .= $gracz.'</br>';
								}
								$main_content .='
								</td>
								</tr>
								<tr bgcolor="'.$config['site']['darkborder'].'">
								<td>Wyslij podanie</td>
								<td><form action="?subtopic=zapy&akcept=yes" method="post"><input type="hidden" name="nazwa" value="'.$nazwa.'" /><input type="submit" value="Dalej" /></form></td>
								</tr>';
						}	}				
					}
				}
			}
	}
	else{
	$gracze = $account_logged->getPlayers();
	$main_content .='<tr bgcolor="'.$config['site']['vdarkborder'].'" style="color:white;">
						<td class="white">Wybierz lidera gildi ktora zglaszasz</td>
					</tr>
					<tr bgcolor="'.$config['site']['darkborder'].'"><td>
					<FORM ACTION="?subtopic=zapy" METHOD="post">
						<select name="nazwa">';
		foreach($gracze as $gracz){
			$main_content .= '<option>'.zabezpiecz($gracz->getName()).'</option>';
		}
	$main_content .='</td></tr>
	<tr bgcolor="'.$config['site']['lightborder'].'"><td><input type="submit" value="Dalej" /></select></form></td></tr>';
	$main_content .="</table>";
	}
}
}
if($group_id_of_acc_logged <= $config['site']['access_admin_panel'])
$panel = '<a href="?subtopic=zapy&panel=yes">Panel</a>';
$main_content .='<tr><td><a href="http://anonimus.aq.pl">Autor:Marek Wiecek</a> '.$panel.'</td></tr>
				 </table>';
?>
i do index.php dodajemy gdzie? pod
PHP:
	case "latestnews":
		$topic = "Latest News";
		$subtopic = "latestnews";
		include("latestnews.php");
	break;
PHP:
	case "zapy":
		$topic = "Punkty dla gildi";
		$subtopic = "Pkt dla gildi";
		include("zapy.php");
	break;
I pare fotek;
zapy2.png

zapy3.png

zapy4.png

zapy5.png

zapy6.png

zapy7.png

zapy8.png

zapy9.png

zapy.png

I ZAKAZ USUWANIA STOPKI

#500 post

#poprawi?em , sorry ,?e tak p??no ale mnie nie by?o 2 tygodznie
 

Wizardix

Active User
Joined
Sep 27, 2010
Messages
128
Reaction score
1
Odp: Punkty dla gildi

1. Co? to nie dzia?a bo wyskakuje mi b??d jak daje akceptuj.
PHP:
Fatal error: Uncaught exception 'E_OTS_NotLoaded' in /home/www/acc/acc447/pot/OTS_Account.php:769 Stack trace: #0 /home/www/acc/acc447/zapy.php(51): OTS_Account->getCustomField('premium_points') #1 /home/www/acc/acc447/index.php(85): include('/home/www/acc/a...') #2 {main} thrown in /home/www/acc/acc447/pot/OTS_Account.php on line 769

2. Nawet zwyk?y gracz widzi wszystkie podania i mo?e je odrzucac.


Fajny pomys? ale niedopracowany.
5/10
 

mlody1434

User
Joined
Dec 26, 2010
Messages
36
Reaction score
2
Odp: Punkty dla gildi

Moze jakis fix? bo zwykly gracz moze odrzucac zapisy xD
 

klon52

Advanced User
Joined
May 20, 2008
Messages
495
Reaction score
50
Odp: Punkty dla gildi

przed skryptem na liste zapisow dodaj warunek
PHP:
if if($group_id_of_acc_logged >= $config['site']['access_admin_panel']) 
	{
i po tej czesci gdzie ma byc zabezpieczenie dodaj sobie
PHP:
}
 

Arkam

Forum friend
Joined
Dec 20, 2008
Messages
1,980
Reaction score
180
Odp: Punkty dla gildi

nie
PHP:
if if($group_id_of_acc_logged >= $config['site']['access_admin_panel'])
tylko
PHP:
if($group_id_of_acc_logged >= $config['site']['access_admin_panel'])
literowke zrobiles ;D
 

Thoren

Active User
Joined
Jul 15, 2010
Messages
137
Reaction score
6
Odp: Punkty dla gildi

fajny skrypt tylko gdzie ja ma wkleic ten kod ??
if($group_id_of_acc_logged >= $config['site']['access_admin_panel'])
bo sie pogubi?em
 

mlody1434

User
Joined
Dec 26, 2010
Messages
36
Reaction score
2
Odp: Punkty dla gildi

ja tez sie zagubilem moze ktos dac juz przepisane?
 

klon52

Advanced User
Joined
May 20, 2008
Messages
495
Reaction score
50
Odp: Punkty dla gildi

W sumie tam jest wpisany juz ten warunek na zabezpieczenie lecz sprubuje to sprawdzi? i ewentualnie wstawi? poprawione p??niej poniewa? nie znam sie na programowaniu obiektowym ktore jest tam uzyte.

@Arkan dzi?ki za poprawienie mnie. ;)
 

Wallygator

Advanced User
Joined
Apr 10, 2011
Messages
251
Reaction score
35
Odp: Punkty dla gildi

wystarczy zmieni? w skrypcie z pierwszego postu
Code:
if($group_id_of_acc_logged <= $config['site']['access_admin_panel'])
na
Code:
if($group_id_of_acc_logged >= $config['site']['access_admin_panel'])
;]
 
Status
Not open for further replies.
Top