1 sayfadan 1. sayfa

phpbb template sisteminde veri listelemesi ?

İletiTarih: 08.10.2006, 21:23
MatrixNeo
öncelikle herkese selam. bayağıdır pc ye giremediğim için uzak kaldım (ara sıra girdim ama bir işe yaramadı :( ). her neyse konuya geleyim. şimdi biliyorsunuz ki www.phpbbstyles.com yani nam-ı diğer CA xs modu ile phpbb template sistemini biraz değiştirmiştir :+1: ancak sonra bu arkadaş template.php hakkında bazı kod değişiklikleri vermiş ve template.php yi kendi php scriptlerimizde kullanmamıza yardım etmiştir :+1: bu template.php yi inc dip kullanabiliyoruz.(cache leme bile çalışıyor :D ) her neyse ben şunu soracağım. eğer aranızda bunu kullanan varsa acaba bir zahmet bu template.php kullanılarak mysql den veri listelemeyi anlatabilir mi? :| herkese teşekkürler. kolay gelsin.

İletiTarih: 08.10.2006, 23:54
ALEXIS
Sanırım bunlar yeterli, extension.inc içerisindeki bilgilere de dikkat.

db/*.*
includes/constants.php
includes/db.php
includes/functions.php (tema sınıfı atama alınabilir)
includes/sql_parse.php
includes/template.php
common.php (özellikle include'ler)
config.php

RE:

İletiTarih: 09.10.2006, 16:12
MatrixNeo
ALEXIS yazdı:Sanırım bunlar yeterli, extension.inc içerisindeki bilgilere de dikkat.

db/*.*
includes/constants.php
includes/db.php
includes/functions.php (tema sınıfı atama alınabilir)
includes/sql_parse.php
includes/template.php
common.php (özellikle include'ler)
config.php

- extension.inc de sadece
[syntax="php"]if ( !defined('IN_PHPBB') )
{
die("Hacking attempt");
}

//
// Change this if your extension is not .php!
//
$phpEx = "php";

$starttime = 0;[/syntax] var. dosyalarda " .php " yerine " '.$phpEx.' " kullanılıyor(extension.inc de değişkene bağlanuıyor ama tüm dosyalarda çalışıyor. hangi dosya inc ediyor anlamadım )
- db klasöründeki mysql(4).php de fonksiyonlar varmış. onu incelkedim ama pek birşey anlamadım.
- constants.php de tabloları define ediyor galiba onuda tam anlayamadım :shock:
- functions.php de forumda kullanılan fonksiyonlar var. çok fazla olduğu için bakamadım hepsine.
- sql_parse.php dikkatimi çekmemişti ona bakacağım.
- template.php yi zaten inc ettim ama birde kontrol etmem galiba :shock:
- common.php debazı genel özellikleri kontrol ediyor. post ve diğer işlemler galiba.
- config.php zaten db ye bağlanmak için gereken bilgileri içeriyor. onu baştan hallettim.

baktığım yerlere göre sadece birşey buldum.
for döngüsü ile $template->assign_block_vars olarak verileri sıralıyoruz. tmp dosyasında
<!-- BEGIN loop -->
{loop.I}<br>
<!-- END loop -->
olarak yazıldığında for da kaça kadar olurs ao kadar sayıyo.

ama veri listelemeyi hala bulamadım :(

ilgin için teşekkürler ALEXIS dediğin dosyalara bakmaya dewam edeceğim. çok saol. herkese kolay gelsin.

İletiTarih: 10.10.2006, 17:17
sabri ünal
o zaman xs yüklü bir phpbb sistemi tamamen kopyala, hangi dosyaya neyi koyacağını biliyorsun zaten ana sayfadan itibaren tüm sayfaları değiştiririsin. ilk başlarda biraz sayfa sayısı aşırı olur fakat ilerledikçe daha çok şeyler çıkartılabilir...

ben de phpbb kulllanan bir içerik yönetim sistemi hayal ediyorum :) kim yapar bilmiyorum...

bir de phpbb kategori , forum alt forum yapısını js bir sayfaya okutup haber sitesi yapmak istiyorum yorum yazmak isteyenler foruma üye olacaklar, bakalım kim yapacak

İletiTarih: 10.10.2006, 18:27
MatrixNeo
sabri ustam, phpbb yi baştan kurmak aklıma geldi ama ben kendim yapmak istiyorum. php yi çok bilmediğim için uğraşıyorum. php konusunda kendimi geliştirince zaten phpbb yi düzenleyeceğim.

ancak dediğim gibi php-mysql de veri listelemesi kolay ama phpbb template sistemi kullanılarak
<!-- BEGIN postrow --> ve {TEXT} gibi nesneler kullanılarak yapılmasını bulamadım bir türlü.

yinede herkese teşekkürler. kolay gelsin.

İletiTarih: 14.10.2006, 19:12
MatrixNeo
tpl dosyasında:
Kod: Tümünü seç
<!-- BEGIN haber -->
<HR>{BASLIK}<BR>{METIN}
<!-- END haber -->


ve php dosyasında:
Kod: Tümünü seç
$sql = "select * from habertablo";
$sonuc = mysql_query($sql);
$listele = array();
while($row=mysql_fetch_array($sonuc))
{
   $listele[] = $row;
}
$toplamhaber = count($listele);
for($i = 0; $i < $toplamhaber; $i++)
{
   $template->assign_block_vars('haber', array(
      'BASLIK' => $listele[$i]['baslik'],
      'METIN' => $listele[$i]['metin'])
   );
}


yaptığımda haber sayısı kadar <hr> çıkıyor. haber başlığı ve metni çıkmıyor. bu kadar yaklaşabildim ama hala bulamadım :( eğer bilen bulan varsa paylaşırsa çok memnun olurum. herkese kolay gelsin. teşekkürler.

İletiTarih: 14.10.2006, 20:36
ALEXIS
Kolay bir şeyi atlamışsın, ancak ben baştan yazdım tüm komutları, kalıp olarak genelde yazacağım kullanılır.

<!-- BEGIN haber -->
{haber.BASLIK}<br />{haber.METIN}<hr />
<!-- END haber -->


[syntax="php"]$sql = "SELECT baslik, metin
FROM habertablo";

if (!$sonuc = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, 'Haber bilgileri alınamadı', '', __LINE__, __FILE__, $sql);
}

$toplamhaber = $db->sql_numrows($sonuc);

$listele = array();

while ($row = $db->sql_fetchrow($sonuc))
{
$listele[] = $row;
}


for ($i = 0; $i < $toplamhaber; $i++)
{
$template->assign_block_vars('haber', array(
'BASLIK' => $listele[$i]['baslik'],
'METIN' => $listele[$i]['metin']
)
);
}

/*
$template->assign_vars(array(
'L_BASLIK' => 'başlık',
'L_HABER' => 'haber'
)
);[/syntax]

İletiTarih: 14.10.2006, 21:51
MatrixNeo
ALEXIS çok saol {haber.BASLIK} yazınca oldu elbette. nasılda unutmuşum ya "haber" yazmayı. neyse ALEXIS çok saol. bu arada altta verdiğin kalıpda tamam ama orada class olarak tanınan $db den fonksiyonlar kullanıyor. $db->sql_fetchrow gibi. bunları kullanmak için db.php yada mysql4.php galiba onu inc etmemiz gerekli. burasıda tamam ama templatede olduğu gibi
$template = new Template; gibi yapmamız gerekmiyormu? bunu nasıl yaparım? çok teşekkürler alexis. kolay gelsin.

İletiTarih: 15.10.2006, 07:54
MatrixNeo
onuda buldum. çok saol ALEXIS artık işleme dewam edebilirim. kolay gelsin ;)

İletiTarih: 15.10.2006, 19:22
ALEXIS
zaten yukarıda yazdım gereken dosyaları, $db o yüzden kullanmıştım.


$template = new Template --> functions.php nin içinde bu, incele:

Kod: Tümünü seç
//
// [+] tema ayarlama
//

// tema atama
$template_name = 'canver';
$theme = setup_style($template_name);

function setup_style($style)
{
   global $db, $board_config, $template, $images, $phpbb_root_path;

   $template_name = 'canver';
   
   $template_path = 'templates/' ;
   $template_name = $template_name;

   $template = new Template($phpbb_root_path . $template_path . $template_name);

   if ( $template )
   {
      $current_template_path = $template_path . $template_name;
      @include($phpbb_root_path . $template_path . $template_name . '/' . $template_name . '.cfg');

      if ( !defined('TEMPLATE_CONFIG') )
      {
         die("Could not open $template_name template config file");
      }
/*
      $img_lang = ( file_exists(@phpbb_realpath($phpbb_root_path . $current_template_path . '/images/lang_' . $board_config['default_lang'])) ) ? $board_config['default_lang'] : 'english';

      while( list($key, $value) = @each($images) )
      {
         if ( !is_array($value) )
         {
            $images[$key] = str_replace('{LANG}', 'lang_' . $img_lang, $value);
         }
      }
*/
   }

   return $row;
}
//
// [-] tema ayarlama
//

İletiTarih: 16.10.2006, 18:56
MatrixNeo
template olayını yapmıştım zaten. o sadece class aynen oradaki gibi
$template = new Template;
şeklinde belirttim. template dosyasını dfa zaten o yapmadan kullanamam değil mi? :) ama sen galiba tema seçim olayını söylemişsin. onu yapmayacaktım ama ileride lazım olabilir. çok saol.

bu arada aklıma gelmişken son birşey daha sorayım.

bu şekilde veriyi listeledik ama mesela forum indexde olduğu gibi kategorileri listeleyip daha sonrada
begin ve end catrow içinde forumlarıda listelemek olayını çözemedim(birde o forumdaki son başlık olayı gibi işte) yani kısacası listelenecek verinin id sindeki diğer tablodaki verileri listelemek olayı. umarım anlatabilmişimdir.

çok saol ALEXIS. kolay gelsin.

İletiTarih: 16.10.2006, 19:57
ALEXIS
iç içe yaparsan o da olu, phpbb iyice incele. hatta phpbb yi bırak phpbb3 motorunu sökmeye çalış.

tema adını el ile yazdım, bende veritabanı sınıfı ve bağlantısı olmadığı için, tema adı da gerekiyor.

İletiTarih: 16.10.2006, 20:22
MatrixNeo
tema olayı tamam.
iç içe derken
şu şekilde yapınca:
Kod: Tümünü seç
$hsql = "select * from haberkategori";
$hsonuc = mysql_query($habersql);
$listetele = array();
while($row=mysql_fetch_array($hsonuc))
{
   $listele[] = $row;
}
$toplamhaberkat = count($listele);
for($i = 0; $i < $toplamhaberkat; $i++)
{
   $template->assign_block_vars('haberkat', array(
      'ISIM' => $listele[$i]['isim'],
      'ACIKLAMA' => $haberliste[$i]['aciklama'])
   );
   $hid = $listele[$i]['id'];
   $fsql = "select * from haber where id=$hid";
   $fsonuc = mysql_query($fsql);
   $flistele = array();
   $flistele[] = mysql_fetch_array($fsonuc);
   $toplamhaber = count($flistele);
   if(!$toplamhaber==0){
   for($x = 0; $x < $toplamhaber; $x++)
   {
      $template->assign_block_vars('haberkat.haber', array(
         'BASLIK' => $flistele[$x]['baslik'],
         'METIN' => $flistele[$x]['metin'],
         'TARIH' => $flistele[$x]['tarih'])
      );
   }
   }
}


yaptığımda kategorileri listelerken eğer 3 haber varsa ilk 3 kategoriye tek tek haberleri yazıyor. kategori id sine göre dizmiyo. daha başka nasıl yapabilirim? teşekkürler.

İletiTarih: 17.10.2006, 19:49
MatrixNeo
ok ALEXIS kategoriye göre yazdırmada tamam. az kaldı tamamen örenecem inşallah :) ayrıca dediğin gibi phpbb 3 de bakmak lazım. onuda inceleyeyim bir. saol ALEXIS.