Web sayfamız sadece phpBB 3.0.x sürümlerine destek vermektedir. Konu açmadan, ileti yazmadan önce lütfen site kuralları sayfamıza göz atınız.

Dil dosyasına zarar vermeden eklenti kurmak

Dil dosyasına zarar vermeden eklenti kurmak

İleti ALEXIS 23 Ağu 2008 22:32

Ön bilgiler

Dil dosyamız, süreklilik arz eden bir gelişim ve güncelleme sürecindedir. Bazı eklentiler dil dosyası değişikliklerine ve eklemeline sahiptir. Bu değişiklikleri yaptığımızda dil dosyasının bütünlüğü zarar görmüş olur.

Dil dosyalarımız için güncelleme yayınlamak çok fazla değişiklik olduğu için çok zor olmakta. Dosya güncellendiğinde, bu güncellemeyi en kolay adapte etmek için, eklediğiniz eklentilerin dil değişiklikleri ön gördükleri şekilde değil, bu konuda yazacağım şekilde eklemelisiniz.


Giriş

Dil dosyaları birer betik dosyasıdır, betikler web sunucu tarafından yukarıdan aşağıya doğru okunur ve okuma bitiğinde kullanıcıya gönderilir.

Dil dosyasına geçmeden önce olayın mantığını anlamanız için basit bir php örneği vereyim:

Kod: Tümünü seç
$degisken = 'kullanıcı';
$degisken = 'üye';
echo $degisken; 

Kodların sonundaki echo, hangi değişkeni yazar? Elbette ikinci değişken olan "üye" ifadesini yazar. Yukarıdan aşağı okurken, ilk değişken ikinci değişken tarafından değiştirildi (replace edildi). İşte dil dosyamızdaki değişikleri bu mantığa göre yapacağız.


Dil dosyası değişiklikleri

Şimdi yukarıdaki mantığı dil dosyamıza uygulayalım. Eklentimiz aşağıdaki dil değişikliğini ön görsün:

[ AÇ ]

language/tr/common.php

[ BUL ]

Kod: Tümünü seç
   'FORUM_INDEX'         => 'Pano anasayfası',

[ BUNUNLA DEĞİŞTİR ]

Kod: Tümünü seç
   'FORUM_INDEX'         => 'Mesaj panosu',

[ BİTTİ ]

Bu değişikliği dil dosyamıza zarar vermeden, orjinalliğini bozmadan çalışabileceğimiz bir şekle dönüştürelim, bu dönüştürme işlemini ayrı bir belge de değil, direk mantık çerçevesinde dosya içinde uygulayın:

[ AÇ ]

language/tr/common.php

[ BUL ]

Kod: Tümünü seç
?>

[ ÖNCESİNE EKLE ]

Kod: Tümünü seç
$lang = array_merge($lang, array(
   // xxx eklentisi 1.0.0
   'FORUM_INDEX'         => 'Mesaj panosu',
));

[ BİTTİ ]

Bu değişiklik FORUM_INDEX değişkenine, önceki ifadeleri değiştirerek "Mesaj panosu" ifadesini atayacaktır.


Yararı nedir, nasıl kullanılır

Bu tür bir uygulamanın yararı, orijinal dil dosyasına zarar vermeden istediğiniz değişiklikleri ve eklemeleri yapmış olursunuz. Dil dosyası güncellendiğinde, güncelleme için yapmanız gereken tek işlem, yeni dil dosyalarına, eskilerin sonundaki toplu alanı yapıştırmak olacak sadece. Bu güncelleme için harcayacağız zamanı kısaltacak, kafanızı da hiç karıştırmayacak.

Mesela, common.php dosyasının sonuna ben iki alan açtım, ilk alana DEĞİŞTİR tarzı kodları, ikinci alana ise EKLE tarzı kodları yapıştırıyorum:

Kod: Tümünü seç
//----------- [ DEĞİŞİKLİKLER ] ------------------------------------------------------
//

$lang = array_merge($lang, array(
    // xxx eklentisi 1.0.0
    'FORUM_INDEX'            => 'Mesaj panosu',
));


//----------- [ EKLEMELER ] -----------------------------------------------------------
//

$lang = array_merge($lang, array(
    // deneme eklentisi 1.0.0
    'DENEME'        => 'Deneme',
    'DENEME_INDEX'    => 'Deneme Sayfası',
));

//
//----------- [ DOSYA SONU ] ----------------------------------------------------------    
ALEXIS
yönetici
yönetici

Kullanıcı avatarı

İleti: 3628
Kayıt: 03 Arl 2006 08:57
HTML: Çok iyi
CSS: İyi
PHP: İyi
phpBB3: Çok iyi
Sürüm: phpBB 3

Re: Dil dosyasına zarar vermeden eklenti kurmak

İleti sabri ünal 25 Ağu 2008 19:58

bu konuya ilave olarak ben bir include mantığı önermiştim, lakin önerdiğim başlığı bulamıyorum...

tekrar etmek gerekirse, bütün dil dosyaları ile aynı ismi taşıyan bir de mods klasörü içinde oluşturalım, ve dil dosyalana yapacağımız ilaveleri o dosyalara yapalım

bütün dosyalar da kendi isimleri ile aynı olan bir mods/ilgili dosya .php dosyasını çeksinler!
sabri ünal
kullanıcı
kullanıcı

Kullanıcı avatarı

İleti: 647
Kayıt: 06 Nis 2007 11:08
İsim: sabri ünal
HTML: İyi
CSS: Başlangıç
PHP: Başlangıç
phpBB3: Başlangıç
Sürüm: phpbb3 CVS

Re: Dil dosyasına zarar vermeden eklenti kurmak

İleti ALEXIS 26 Ağu 2008 19:48

[ AÇ ]

language/tr/common.php

[ BUL ]

Kod: Tümünü seç
?>

[ ÖNCESİNE EKLE ]

Kod: Tümünü seç
// değişiklik ve eklemeler
include('mods/lang/common.' . $phpEx);

[ OLUŞTUR VE AÇ ]

language/tr/mods/lang/common.php

[ İÇERİK ]

Kod: Tümünü seç
<?php
/**
* @version $Id$
* @author Sevdin Filiz,
* @copyright (c) 2008, Canver Software
*/

/**
* @ignore
*/
if (!defined('IN_PHPBB'))
{
   exit;
}

if (empty($lang) || !is_array($lang))
{
   $lang = array();
}


//----------- [ DEĞİŞİKLİKLER ] ------------------------------------------------------
//

$lang = array_merge($lang, array(
    // xxx eklentisi 1.0.0
    'FORUM_INDEX'            => 'Mesaj panosu',
));


//----------- [ EKLEMELER ] -----------------------------------------------------------
//

$lang = array_merge($lang, array(
    // deneme eklentisi 1.0.0
    'DENEME'        => 'Deneme',
    'DENEME_INDEX'    => 'Deneme Sayfası',
));

//
//----------- [ DOSYA SONU ] ----------------------------------------------------------   

?>
ALEXIS
yönetici
yönetici

Kullanıcı avatarı

İleti: 3628
Kayıt: 03 Arl 2006 08:57
HTML: Çok iyi
CSS: İyi
PHP: İyi
phpBB3: Çok iyi
Sürüm: phpBB 3

Re: Dil dosyasına zarar vermeden eklenti kurmak

İleti muiketi 31 Ağu 2008 20:46

aslında yeri değil ve kou dışına çıkmış olacağım üzgünüm..

sorum şu.. ilk iletidekine benzer uygulamayı functions.php dosyasında ve/veya diğer dosyalarda da yapabilir miyiz.. yani sözkonusu dosyalarda buna benzer değişikliği yapmamız sorun çıkarır mı?
muiketi
yetkili
yetkili

Kullanıcı avatarı

İleti: 2133
Kayıt: 30 Eyl 2007 01:41
Konum: şimdi urfada olmak vardı..
HTML: Çok iyi
CSS: Orta
PHP: Başlangıç
phpBB3: Orta
Sürüm: phpBB 3.0.7 PL1

Re: Dil dosyasına zarar vermeden eklenti kurmak

İleti ALEXIS 31 Ağu 2008 21:44

Kendinize ait fonksiyonları function.php ye ekleyebilirsiniz. Ancak eklentiler dağınık bir yapıya sahiptir, bunun için sorunuz yetersiz kalmakta.

Mesela, lendimizin yazdığı bir fonksiyonu functions.php sonuna ekleyerek istediğimiz tüm dosyalardan çağırabiliriz.

Ya da functions.php sonuna include ile kendi fonksiyon dosyamızı ekleyebiliriz.
ALEXIS
yönetici
yönetici

Kullanıcı avatarı

İleti: 3628
Kayıt: 03 Arl 2006 08:57
HTML: Çok iyi
CSS: İyi
PHP: İyi
phpBB3: Çok iyi
Sürüm: phpBB 3

Re: Dil dosyasına zarar vermeden eklenti kurmak

İleti set 26 Arl 2008 13:27

Tüm denilenleri yaptım ama yinede aynı hatayı aldım bunu başka bir şekilde yapma şansımız yok mu yada siz sonuna nasıl eklendiğini kodları koyarak gösetrseniz mümkün mü
set
kullanıcı
kullanıcı

İleti: 2
Kayıt: 26 Arl 2008 13:03
İsim: set
HTML: Başlangıç
CSS: Başlangıç
PHP: Başlangıç
phpBB3: Başlangıç
Sürüm: phpBB 3.0.4

Re: Dil dosyasına zarar vermeden eklenti kurmak

İleti ALEXIS 26 Arl 2008 14:14

Hangi aynı hata ?
ALEXIS
yönetici
yönetici

Kullanıcı avatarı

İleti: 3628
Kayıt: 03 Arl 2006 08:57
HTML: Çok iyi
CSS: İyi
PHP: İyi
phpBB3: Çok iyi
Sürüm: phpBB 3

Re: Dil dosyasına zarar vermeden eklenti kurmak

İleti set 26 Arl 2008 14:17

Ha onu çözdüm diğer başlıkta utf8 ve türkçelendirmede dosya vermişsiniz notepad++ onu yükledim onunla yapınca üstte çıkan founction.php ve common.php de verdiği hatalar çıkmadı tşk ederim bilgilendirme için
set
kullanıcı
kullanıcı

İleti: 2
Kayıt: 26 Arl 2008 13:03
İsim: set
HTML: Başlangıç
CSS: Başlangıç
PHP: Başlangıç
phpBB3: Başlangıç
Sürüm: phpBB 3.0.4


phpBB3 Türkçe Dil Dosyası


Kimler çevrimiçi

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

cron