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

Åžiirler BileÅŸenine Yeni Alanlar Eklemek

İleti memology » 24 Oca 2009

bileşen içerisine yeni alanlar eklemek istiyorum. Örneğin

Yazar Adı
Türü
BulunduÄŸu Kitap
Link

tamamı yazı içerecek olan alanlar.
Rumuz: memology
Yeni Üyemiz
Durum: Offline
Kullanıcı avatarı

İleti: 9
Kayıt: 08 Oca 2009

Re: Åžiirler BileÅŸenine Yeni Alanlar Eklemek

İleti GokaLp » 25 Oca 2009

Mesela yazar adı diye bir alan oluşturalım.

önce veritabanımızda uygun tabloya yazar adını girmek için bir alan oluşturuyoruz.

phpmyadmine girip jos_siirler tablosuna s_yazar adında bir alan ekleyin. yalnız bu alanı s_ekleyen alanından hemen sonraya ekleyin.

daha sonra bu alan için yönetim paneli düzenlemelerini yapacağız.

admin.siirler.php dosyasını açalım. burada öncelikle formlarda bu alana göndereceğimiz veri için kullanacağımız alanı alıp bir değişkene atalım.

dosyanın hemen başında şu şekilde alınan veriler var zaten..

Kod: Tümünü seç
$versiyon                = mosGetParam($_REQUEST, 'versiyon');


o kodların en sonuna

Kod: Tümünü seç
$s_yazar                = mosGetParam($_REQUEST, 's_yazar');


şeklinde yeni alanımızı ekleyelim.

daha sonra veritabanına ekleyeceğimiz veri için yönetim panelinde alan oluşturalım.

admin.html.php dosyasını açıyoruz.

Kod: Tümünü seç
function Siir_Duzenle(&$row, &$options, &$klistele, &$Listeler, $kullanicilar)


şu şekilde tanımlanmış olan fonksiyonumuz, şiir düzenleme bölümü ile ilgili kısımdır. burada uygun yere alanımızı ekliyoruz. mesela şöyle

fonksiyon içerisindeki </table> kodunun hemen üstüne bir alan ekleyelim, bu alana yazar adı yazılsın. (siz bu alanı farklı bir yere de yerleştirebilirsiniz)

Kod: Tümünü seç
<tr>
<td>Yazar Adı</td>
<td><input name="s_yazar" type="text" class="inputbox" id="s_yazar" value="<?php echo $row->s_yazar; ?></td>
</tr>


yönetim panelindeki son işimiz de buradan girdiğimiz veriyi alıp veritabanına kaydetmek. bunun için de siirler.class.php dosyasını açıyoruz. orada
Kod: Tümünü seç
class siirler_sorgu extends mosDBTable {

bölümünü buluyoruz.

hemen altında var ile alınmış değişkenler mevcut. oraya yeni alanımızı ekliyoruz.

Kod: Tümünü seç
var $s_ekleyen = null;


kodunun hemen altına

Kod: Tümünü seç
var $s_yazar = null;


kodunu ekledik.

ve bitti. yönetim paneli kısmı bu kadardı. Gelelim kullanıcı tarafına.

**************************

siirler.php dosyasını açıyoruz. en başta değişkeni alıyoruz.

Kod: Tümünü seç
$s_yazar       = trim(mosGetParam($_POST, 's_yazar', ''));


nereye ekleyeceğinizi zaten anlarsınız dosyayı açınca..yönetim paneli için de aynı işlemi gerçekleştirmiştik.

daha sonra Siir_Duzenle fonksiyonunu buluyoruz. fonksiyon içerisindeki

Kod: Tümünü seç
echo '<tr>';
    echo '<td width = "20%" align = "right">' . _HE_ON_BASLIK . '</td>';
    echo '<td width = "80%">';
    echo '<input class="inputbox" type="text" name="s_baslik" size="50" maxlength="100" value="' . htmlspecialchars($row->s_baslik, ENT_QUOTES) . '"/>';
    echo '</td>';
    echo '</tr>';


bölümünü bulup hemen altına yeni alanımızı ekleyelim.

Kod: Tümünü seç
echo '<tr>';
    echo '<td width = "20%" align = "right">Yazar adı</td>';
    echo '<td width = "80%">';
    echo '<input class="inputbox" type="text" name="s_yazar" size="50" maxlength="100" value="' . htmlspecialchars($row->s_yazar, ENT_QUOTES) . '"/>';
    echo '</td>';
    echo '</tr>';



şimdi de geçelim siirler.html.php dosyasına. bu dosyanın hemen başında S_eklenecek adında bir fonksiyonumuz var. Buraya da yazar adını eklemek için kullanacağımız inputboxu yerleştiriyoruz.

bul:

Kod: Tümünü seç
echo '<tr class="sectiontableentry2">';
                echo '<td valign="top" ><font color="red">*</font>' . _HE_ON_BASLIK . '</td>';
                echo '<td colspan="2">';
                echo '<input name="s_baslik" type="text" class="inputbox" id="s_baslik" size="40" /></td>';
                echo '</tr>';


hemen sonrasına yeni alanımızı ekleyelim.

Kod: Tümünü seç
echo '<tr class="sectiontableentry2">';
                echo '<td valign="top" ><font color="red">*</font>' . _HE_ON_BASLIK . '</td>';
                echo '<td colspan="2">';
                echo '<input name="s_baslik" type="text" class="inputbox" id="s_baslik" size="40" /></td>';
                echo '</tr>';



son olarak şiir detayı kısmında yazar adımızı gösterelim. detaylar.php dosyasını açtık.

önce sorguya ekliyoruz.

ÅŸimdiki sorgumuz ÅŸu ÅŸekildeydi:

Kod: Tümünü seç
$database->setQuery("SELECT a.id,"
     . " a.katid,"
     . " a.s_baslik,"
     . " a.s_ekleyen,"
     . " a.s_metin,"
     . " a.s_tarih,"
     . " a.s_oy,"
     . " a.s_oycu,"
     . " a.yayinda,"
     . " a.kontrol_etti,"
     . " a.kontrol_zaman,"
     . " a.s_hit"
     . " FROM #__siirler as a "
     . " \n left join #__users as u on u.id = a.s_ekleyen"
     . " \n WHERE a.id= '$sid'  ");


yeni sorgumuz şöyle olacak:

Kod: Tümünü seç
$database->setQuery("SELECT a.id,"
     . " a.katid,"
     . " a.s_baslik,"
     . " a.s_ekleyen,"
     . " a.s_yazar,"
     . " a.s_metin,"
     . " a.s_tarih,"
     . " a.s_oy,"
     . " a.s_oycu,"
     . " a.yayinda,"
     . " a.kontrol_etti,"
     . " a.kontrol_zaman,"
     . " a.s_hit"
     . " FROM #__siirler as a "
     . " \n left join #__users as u on u.id = a.s_ekleyen"
     . " \n WHERE a.id= '$sid'  ");


sırası önemli. s_ekleyen alanından hemen sonra olacak. (ya da alanımızı nereye oluşturduysak orada.)

geçtik. hemen altında

Kod: Tümünü seç
list($id, $katid, $s_baslik, $s_ekleyen, $s_metin, $s_tarih, $s_oy, $s_oycu, $yayinda, $kontrol_etti, $kontrol_zaman, $s_hit) = mysql_fetch_row($sonuclar1);


ÅŸeklinde olan kodu

Kod: Tümünü seç
list($id, $katid, $s_baslik, $s_ekleyen, $s_yazar, $s_metin, $s_tarih, $s_oy, $s_oycu, $yayinda, $kontrol_etti, $kontrol_zaman, $s_hit) = mysql_fetch_row($sonuclar1);


ÅŸeklinde deÄŸiÅŸtiriyoruz.


son olarak da şiir detayında yazar adımızı yazdıralım. mesela şiir başlığının hemen yanında yazsın.

şu bölümü

Kod: Tümünü seç
echo '<tr><td class="sectiontableheader"><strong>' . $s_baslik . '</strong>';


ÅŸu ÅŸekilde deÄŸiÅŸtirelim

Kod: Tümünü seç
echo '<tr><td class="sectiontableheader"><strong>' . $s_baslik . ' - ' . $s_yazar . '</strong>';




iÅŸte bu kadar.
Rumuz: GokaLp
GeliÅŸtirici
Durum: Offline
Kullanıcı avatarı

İleti: 384
Kayıt: 29 Ekm 2007
Konum: İzmir

Re: Åžiirler BileÅŸenine Yeni Alanlar Eklemek

İleti memology » 25 Oca 2009

Emeğine Sağlık.

Harika bir anlatım olmuş. Biraz kafam karıştı ama adım adım uygulayacağım. Umarım başarabilirim ;)

Teşekkürler
Rumuz: memology
Yeni Üyemiz
Durum: Offline
Kullanıcı avatarı

İleti: 9
Kayıt: 08 Oca 2009

Re: Åžiirler BileÅŸenine Yeni Alanlar Eklemek

İleti GokaLp » 25 Oca 2009

umarım başarırsın :) kolay gelsin.
Rumuz: GokaLp
GeliÅŸtirici
Durum: Offline
Kullanıcı avatarı

İleti: 384
Kayıt: 29 Ekm 2007
Konum: İzmir


Geliştirme & Özelleştirme

Yapimci phpBB © 2009 phpBB Group Style Tasarim Q-Proje