phpbb template sisteminde veri listelemesi ?

PHP, MySQL, HTML, CSS, SEO vb. ile ilgili genel konular.

phpbb template sisteminde veri listelemesi ?

İleti MatrixNeo 08.10.2006, 21:23

ö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.
ALEXIS: imza silindi
Kullanıcı avatarı
MatrixNeo
Üye
Üye
 
İleti: 654
Kayıt: 10.01.2006, 10:19
Konum: İstanbul

İleti

ALEXIS
08.10.2006, 23:54

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
Kullanıcı avatarı
ALEXIS
Site Yöneticisi
Site Yöneticisi
 
İleti: 2563
Kayıt: 30.06.2005, 09:08

RE:

İleti MatrixNeo 09.10.2006, 16:12

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.
ALEXIS: imza silindi
Kullanıcı avatarı
MatrixNeo
Üye
Üye
 
İleti: 654
Kayıt: 10.01.2006, 10:19
Konum: İstanbul

İleti sabri ünal 10.10.2006, 17:17

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
Mutluyum, biraz komedi takılıyorum! sakın kızmayın yakında geçer, sebebini ben de bilmiyorum! yeni bir aşk da bulmuş değilim!
Kullanıcı avatarı
sabri ünal
Üye
Üye
 
İleti: 1325
Kayıt: 27.10.2005, 15:49
Konum: İstanbul

İleti MatrixNeo 10.10.2006, 18:27

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.
ALEXIS: imza silindi
Kullanıcı avatarı
MatrixNeo
Üye
Üye
 
İleti: 654
Kayıt: 10.01.2006, 10:19
Konum: İstanbul

İleti MatrixNeo 14.10.2006, 19:12

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.
ALEXIS: imza silindi
Kullanıcı avatarı
MatrixNeo
Üye
Üye
 
İleti: 654
Kayıt: 10.01.2006, 10:19
Konum: İstanbul

İleti

ALEXIS
14.10.2006, 20:36

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]
Kullanıcı avatarı
ALEXIS
Site Yöneticisi
Site Yöneticisi
 
İleti: 2563
Kayıt: 30.06.2005, 09:08

İleti MatrixNeo 14.10.2006, 21:51

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.
ALEXIS: imza silindi
Kullanıcı avatarı
MatrixNeo
Üye
Üye
 
İleti: 654
Kayıt: 10.01.2006, 10:19
Konum: İstanbul

İleti MatrixNeo 15.10.2006, 07:54

onuda buldum. çok saol ALEXIS artık işleme dewam edebilirim. kolay gelsin ;)
ALEXIS: imza silindi
Kullanıcı avatarı
MatrixNeo
Üye
Üye
 
İleti: 654
Kayıt: 10.01.2006, 10:19
Konum: İstanbul

İleti

ALEXIS
15.10.2006, 19:22

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
//
Kullanıcı avatarı
ALEXIS
Site Yöneticisi
Site Yöneticisi
 
İleti: 2563
Kayıt: 30.06.2005, 09:08

İleti MatrixNeo 16.10.2006, 18:56

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.
ALEXIS: imza silindi
Kullanıcı avatarı
MatrixNeo
Üye
Üye
 
İleti: 654
Kayıt: 10.01.2006, 10:19
Konum: İstanbul

İleti

ALEXIS
16.10.2006, 19:57

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.
Kullanıcı avatarı
ALEXIS
Site Yöneticisi
Site Yöneticisi
 
İleti: 2563
Kayıt: 30.06.2005, 09:08

İleti MatrixNeo 16.10.2006, 20:22

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.
ALEXIS: imza silindi
Kullanıcı avatarı
MatrixNeo
Üye
Üye
 
İleti: 654
Kayıt: 10.01.2006, 10:19
Konum: İstanbul

İleti MatrixNeo 17.10.2006, 19:49

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.
ALEXIS: imza silindi
Kullanıcı avatarı
MatrixNeo
Üye
Üye
 
İleti: 654
Kayıt: 10.01.2006, 10:19
Konum: İstanbul


Internet Teknolojileri



Kimler çevrimiçi

Bu forumu görüntüleyenler: Kayıtlı kullanıcı yok ve 0 misafir

cron