Konu: ssi_boardNews sayfalama yapımı  (Okunma sayısı 1149 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

21 Mart 2014, 20:00
  • *
    • İleti: 331
    • Karma: 17
    • haksever,huutheme
    • haksever
    • Profili Görüntüle

iyi günler ssi_boardNews ile sayfalama yapımı.
boş bir php sayfası oluşturalım arkadaşlar ben ismini portal.php koydum örnekte ona göredir
içine alttaki kodu yapıştıralım
Kod: [Seç]
<?php
require_once('SSI.php');
require_once(
'Portaladmin.php');

$page = !empty($_GET['page']) ? $_GET['page'] : 1;
$news ssi_boardNews(95100null,300,'array');
$pagination = new Breeze_Pagination($news$page''''55);
$pagination->PaginationArray();
$pagtrue $pagination->PagTrue();
$data $pagination->OutputArray();
foreach ($data as $news)
{
echo '
<div class="news_item">
<h3 class="news_header">

<a href="'
$news['href'], '">'$news['subject'], '</a>
</h3>
<div class="news_timestamp">'
$news['time'], ' '$txt['by'], ' '$news['poster']['link'], '</div>
<div class="news_body" style="padding: 2ex 0;">'
$news['body'], '</div>
'
$news['link'], $news['locked'] ? '' ' | ' $news['comment_link'], '
</div>'
;


echo '
<hr />'
;
}
echo'<br/><center>';
echo $pagination->OutputPanel();
        echo
'</center>';
?>

şimdi yeni bir php dosyası oluşturalım adınıda Portaladmin.php koyalım
Daha sonra bu kodları ekliyoruz.
Kod: [Seç]
<?php
class Breeze_Pagination
{
public function __construct($array$page 1$link_prefix false$link_suffix false$limit_page 20$limit_number 10)
{
if (empty($array))
$this->UsedArray = array();

else
{
$this->UsedArray $array;
$this->Page = !empty($page) || !$limit_page $page 1;
$this->LinkPrefix = !empty($link_prefix) ? $link_prefix '';
$this->LinkSufflix = !empty($link_sufflix) ? $link_sufflix '';
$this->LimitPage = !empty($limit_page) ? $limit_page 20;
$this->LimitNumber = !empty($limit_number) ? $limit_number 20;
$this->panel '';
$this->output = array();
$this->page_cur '';
}
}

public function PaginationArray()
{
$this->num_rows count($this->UsedArray);

if (!$this->num_rows or $this->LimitPage >= $this->num_rows)
{
$this->pagtrue false;
return;
}

$this->num_pages ceil($this->num_rows $this->LimitPage);
$this->page_offset = ($this->Page 1) * $this->LimitPage;

/* Calculating the first number to show */
if ($this->LimitNumber)
{
$this->limit_number_start $this->Page ceil($this->LimitNumber 2);
$this->limit_number_end ceil($this->Page $this->LimitNumber 2) - 1;

if ($this->limit_number_start 1)
$this->limit_number_start 1;

//In case if the current page is at the beginning.
$this->dif = ($this->limit_number_end $this->limit_number_start);

if ($this->dif $this->LimitNumber)
$this->limit_number_end $this->limit_number_end + ($this->LimitNumber - ($this->dif 1));

if ($this->limit_number_end $this->num_pages)
$this->limit_number_end $this->num_pages;

//In case if the current page is at the ending.
$this->dif = ($this->limit_number_end $this->limit_number_start);

if ($this->limit_number_start 1)
$this->limit_number_start 1;
}

else
{
$this->limit_number_start 1;
$this->limit_number_end $this->num_pages;
}

/* Let's generate the panel */
$this->GeneratePageLinks();
$this->NavigationArrows();
$this->panel trim($this->panel);

$this->output['panel'] = $this->panel//Panel HTML source.
$this->output['offset'] = $this->page_offset//Current page number.
$this->output['limit'] = $this->LimitPage//Number of resuts per page.
$this->output['array'] = array_slice($this->UsedArray$this->page_offset$this->LimitPagetrue); //Array of current page results.

$this->pagtrue true;
}

/* Generating page links. */
private function GeneratePageLinks()
{
for ($i $this->limit_number_start$i <= $this->limit_number_end$i++)
{
$this->page_cur '<a href="portal.php?page='$this->LinkPrefix $i $this->LinkSufflix'">'$i .'</a>';

if ($this->Page == $i)
$this->page_cur '<strong>'$i .'</strong>';

else
$this->page_cur '<a href="portal.php?page='$this->LinkPrefix $i $this->LinkSufflix .'">'$i .'</a>';

$this->panel .= ' <span>'$this->page_cur .'</span>';
}
}

/* Navigation arrows. */
private  function NavigationArrows()
{
if ($this->limit_number_start 1)
$this->panel '<strong><a href="portal.php?page='$this->LinkPrefix . (1) . $this->LinkSufflix .'">&lt;&lt;</a>  <a href="portal.php?page='$this->LinkPrefix . ($this->Page 1) . $this->LinkSufflix .'">&lt;</a></strong>'$this->panel;

if ($this->limit_number_end $this->num_pages)
$this->panel $this->panel .' <strong><a href="portal.php?page='$this->LinkPrefix . ($this->Page 1) . $this->LinkSufflix .'">&gt;</a> <a href="portal.php?page='$this->LinkPrefix $this->num_pages $this->LinkSufflix .'">&gt;&gt;</a></strong>';
}

public function OutputArray()
{
if(!empty($this->output['array']))
return $this->output['array'];

else
return false;
}

public function OutputPanel()
{
if(!empty($this->output['panel']))
return $this->output['panel'];

else
return false;
}

public function OutputOffSet()
{
if(!empty($this->output['offset']))
return $this->output['offset'];

else
return false;
}

public function OutputLimit()
{
if(!empty($this->output['limit']))
return $this->output['limit'];

else
return false;
}

public function PagTrue()
{
return $this->pagtrue;
}
}
?>



[warning]$news = ssi_boardNewse(95, 100, null, 300,'array');
Bölüm id = 95, kaç konu gözükücek= 100 , kaçıncı konudan başlıyacak = null,konu limiti = 300

$pagination = new Breeze_Pagination($news, $page, '', '', 5, 5); 
bir sayfada kaç ileti gözükücek = 5, kaç adet sayfa sayısı gözükücek = 5 sayfa sayısından sonra diğer sayıları <<  <1 2 3 4 5>  >> sekmesine atıyacak.[/warning]


[okay]Teşekkürler snrj[/okay]




« Son Düzenleme: 25 Mart 2014, 15:04 Gönderen: CeeMoo »

21 Mart 2014, 20:29
Yanıtla #1
  • *
    • İleti: 211
    • Karma: 15
    • webtiryaki.com
    • Profili Görüntüle

Başarili bir calişma tebrikler


21 Mart 2014, 21:01
Yanıtla #2
  • *
    • İleti: 264
    • Karma: 14
    • smf destek
    • Profili Görüntüle

:D sonunda çözdüm diyorsun yani


21 Mart 2014, 21:07
Yanıtla #3
  • *
    • İleti: 331
    • Karma: 17
    • haksever,huutheme
    • haksever
    • Profili Görüntüle

Başarili bir calişma tebrikler
Teşekkürler.Gecitli usta

:D sonunda çözdüm diyorsun yani
8) biraz geç geldiniz  ;D


21 Mart 2014, 21:46
Yanıtla #4
  • mavice

Elimden bir şey kurtulamaz diyor Cemoo :)
Elinize sağlık :)


22 Mart 2014, 11:59
Yanıtla #5
  • *
    • İleti: 331
    • Karma: 17
    • haksever,huutheme
    • haksever
    • Profili Görüntüle

Duyarlılık için Teşekkürler :)


22 Mart 2014, 22:59
Yanıtla #6
  • *
    • İleti: 264
    • Karma: 14
    • smf destek
    • Profili Görüntüle

cemo ben yapamadım bunu
bide anlatımı düzgün yapsan :D
SSI çağırmadıysanız = neyi nereye çağırmadıysak :D
Ekledikten sonra.Daha sonra bu kodları ekliyoruz. = nereye nasıl ? bunlar hep soru işareti
bi kaç deneme yaptım ama anlamadım :S


23 Mart 2014, 20:01
Yanıtla #7
  • *
    • İleti: 331
    • Karma: 17
    • haksever,huutheme
    • haksever
    • Profili Görüntüle

Evet abi sorunları gidermeye çalıştım.localhost bozuldu deneme yapamadım. :-\


24 Mart 2014, 20:50
Yanıtla #8
  • *
    • İleti: 264
    • Karma: 14
    • smf destek
    • Profili Görüntüle

gerek kalmadı ben hallettim hatta yayınladım portal olarak :D
http://teknoromi.com/index.php?topic=2289.0


24 Mart 2014, 20:53
Yanıtla #9
  • *
    • İleti: 2018
    • Karma: 41
    • Spina Bifida
    • Profili Görüntüle

ne güzel de olmuş.  :)