What's new

PHP [KONKURS][MODERN]Zmiana nazwy rangi dla lidera gildii

Status
Not open for further replies.

Kuzirashi

ASP.NET MVC, JS-SPA, PHP, NODE
Joined
Jul 24, 2010
Messages
772
Reaction score
157
Od razu zaznaczam, ?e do poprawnego dzia?ania wymagana jest bilbioteka JQuery do Javascript na stronie Twojego serwera.
VGfmFG0.jpg


W pliku /system/application/controlles/guilds.php pod:
PHP:
 public function management($id) {
...
...
}

Dodajemy kod:
PHP:
// KUZIRASHI
		public function ranks($id, $rank_id = null, $new_rankName = null) {
			$ide = new IDE;
			$ide->requireLogin();
			$id = (int)$id;
			if(empty($id)) $ide->redirect(WEBSITE."/index.php/guilds");
			$data = array();
			$this->load->model("guilds_model");
			$this->load->database(); //?adowanie bazy
			$data['guild'] = $this->guilds_model->getGuildInfo($id);
			if(empty($data['guild'])) $ide->redirect(WEBSITE."/index.php/guilds");
			if(!$this->guilds_model->isGuildLeader($data['guild'][0]['ownerid']) and !$this->guilds_model->isLeader($id)) $ide->redirect(WEBSITE."/index.php/guilds");
			if($this->guilds_model->isGuildLeader($data['guild'][0]['ownerid']) or $this->guilds_model->isLeader($id)) {
					$data['id'] 	= $id;
					$data['ranks'] 	= $this->guilds_model->getRanks($id);
					$this->load->view("guild_menu", $data);
					$this->load->view("gildie/ranks", $data);
					if ($rank_id != null) {
						$rank_id = (int)$rank_id;
						if (in_multiarray($rank_id, $data['ranks'])) {
							if ($new_rankName != null && ctype_alpha($new_rankName) && strlen($new_rankName) < 20) {
								$this->guilds_model->updateRank($rank_id, $new_rankName);
							}
						}
					}
			}
        }

Nast?pnie w /system/application/views tworzymy folder gildie, a wewn?trz tego folderu tworzymy plik ranks.php, a wi?c pe?na lokalizacja powinna wygl?da? w ten spos?b - /system/application/views/gildie/ranks.php - z kodem:
PHP:
<?php
// ZABEZPIECZENIE
if ( !defined('BASEPATH')) header('Location: ../../../../../../');

#region Wst?p
########## 	KUZIRASHI'S RANKS SCRIPT		##########
########## GG: 4760316 KUZIRASHI@INTERIA.PL	##########
/*	http://tibia.net.pl/members/281422-Kuzirashi 	*/
/*			BEGIN -- USER INTERFACE -- 				*/
#endregion
?>
<br />
<table class="online guilds">
	<thead>
		<th><span lang="en">Rank name</span></th>
		<th width="20%"><span lang="en">Edit rank</span></th>
	</thead>
	<tbody>
		<?php
		$num = 0;
		foreach ($ranks as $rank) {
		$num++;
		?>
		<tr class="tablerow">
			<td><?php echo $rank['name']; ?> <input rank_id="<?php echo $num; ?>" id="new_<?php echo $num; ?>" type="text" placeholder="New rank name..."/></td>
			<td align="center"><a id="edit_<?php echo $num; ?>" href="<?php echo WEBSITE . 'index.php/guilds/ranks/' . $id . '/' . $rank['id']; ?>"><span lang="en">Click</span></a></td>
		</tr>
		<?php } ?>
	</tbody>
</table>
<script type="text/javascript">
n = 0;
$('input').keyup(function() {
	n++;
	if (n == 1) {
		old_href = $('#edit_' + $(this).attr('rank_id')).attr('href');
	}
	new_rankName = $(this).val();
	$('#edit_' + $(this).attr('rank_id')).attr('href', old_href + '/' + new_rankName);
});
</script>

W pliku /system/application/models/guilds_model.php na samym ko?cu, przed kodem:
PHP:
}
?>

Dodajemy:
PHP:
public function updateRank($rank_id, $rank_name) {
			$this->db->query('UPDATE `guild_ranks` SET `name` = "' . $rank_name . '" WHERE `id` = ' . $rank_id . ';');
		}

Jeszcze, ?eby by?o wida? w menu lidera gildii, mo?emy doda? do /system/application/views/guild_menu.php linijk?:
PHP:
<a href='<?php echo WEBSITE;?>index.php/guilds/ranks/<?php echo $id; ?>'>Change Ranks</a> |

Pozdrawiam i mi?ego dnia.

Reput mile widziany.

Zabraniam kopiowania zawarto?ci na inne fora/serwisy.

Notka moderatorska:
+10 pkt do konkursu!
 

Kuzirashi

ASP.NET MVC, JS-SPA, PHP, NODE
Joined
Jul 24, 2010
Messages
772
Reaction score
157
Odp: [KONKURS][MODERN]Zmiana nazwy rangi dla lidera gildii

Ma?a poprawka:
<a id="edit_<?php echo $num; ?>" href="<?php echo WEBSITE . 'index.php/guilds/ranks/' . $id . '/' . $rank['id']; ?>"><span lang="en">Click</span></a>
 
Status
Not open for further replies.
Top