Integracja IPB - Komentarze i Usprawnienia
14 July 2008
Comments
Teraz zajmiemy się usprawnieniem naszego menu użytkownika. Działa ono poprawnie jeżeli użytkownik jest zalogowany, jeżeli nie jest pojawią się dziwne, niepełne dane. Przeglądając zakładkę Members dokumentacji SDK (link) znajdziemy dwie ciekawe metody: is_loggedin zwracającą wartość logiczną True jeżeli jesteśmy zalogowani oraz login(login, hasło) logującą użytkownika i zwracającą True jeeli to się powiedzie.Naszym zadaniem będzie dodanie sprawdzania czy użytkownik jest zalogowany i jeżeli nie to wyświetlenia formularza logowania.
Widok profil.php przerabiamy na:
<div style="float: right; width:300px; border: 1px dashed gray; padding:5px; margin-left:8px; font-size:11px;">
<?PHP
IF($logged)
{
?>
<b>Witaj <?PHP echo $name; ?></b>
<center><?PHP echo $avatar; ?></center>
<B>Postów</B>: <?PHP echo $posts; ?><BR>
<B>Data Dołączenia:</B>: <?PHP echo date("Y-m-d", $joined); ?><BR>
<B>Ostatni Post:</B>: <?PHP echo date("Y-m-d", $last_post); ?>
<?PHP
}
else
{
?>
<?php echo form_open('main/login'); ?>
<LI><B>Login</b><?php echo form_input(array('name' => 'login', 'size' => 20)); ?><BR>
<LI><B>Hasło</b><?php echo form_password(array('name' => 'password', 'size' => 20)); ?>
<center><?php echo form_submit('submit', 'Zaloguj'); ?></center></form>
<?php echo form_close(); ?>
<?PHP
}
?>
</div>
<?php
function login()
{
$rules['login'] = "required|max_length[250]|xss_clean";
$rules['password'] = "required|max_length[250]|xss_clean";
$this->validation->set_rules($rules);
IF($this->validation->run() == TRUE and $this->sdk->login($this->input->post('login'), $this->input->post('password')))
{
$this->response['content'] = '<center><B>Zalogowano Pomyślnie</B></center><META HTTP-EQUIV="Refresh" CONTENT="1; URL='.site_url().'">';
}
else
{
$this->response['content'] = '<center><B>Błąd Logowania</B></center><META HTTP-EQUIV="Refresh" CONTENT="1; URL='.site_url().'">';
}
$this->load->view('index', $this->response);
}
Komentarze
Teraz zajmiemy się naszymi "artykułami", a mianowicie wyświetlaniem "komentarzy" czyli postów do danego tematu. Obecnie w widoku art.php zmienna $posts określa liczbę postów dla danego tematu. Wykorzystamy to by wyświetlać link "Zobacz Komentarze" gdy jakieś istnieją, oto widok:<?PHP echo $title; ?>
<b><?PHP echo $description; ?></b><BR><BR>
<?PHP echo $post; ?>
<HR>
<?PHP
IF($posts > 0)
{
echo '<B>Komentarzy</B>: '.$posts.' | <A href="'.site_url('main/show_com/'.$tid).'">Zobacz Komentarze</A>';
}
else
{
echo '<B>Brak Komentarzy</B>';
}
?> | <B>Odsłon</B>: <?PHP echo $views; ?>
<?php
function show_com()
{
$id = $this->uri->segment(3);
IF(isset($id) and is_numeric($id))
{
$ar = $this->sdk->list_topic_posts($id);
IF(count($ar) > 1)
{
unset($ar[0]);
$this->response['content'] = '';
foreach($ar as $val)
{
$this->response['content'] .= $this->load->view('comment', $val, True);
}
}
$this->load->view('index', $this->response);
}
}
<b><?PHP echo $author_name; ?></b><BR><BR>
<?PHP echo $post; ?>
<HR><BR>
RkBlog
Comment article