Konuyu Oyla:
  • Toplam: 0 Oy - Ortalama: 0
  • 1
  • 2
  • 3
  • 4
  • 5
PHPBB - [tr] Mod Kurulum Mantığı ve Yapılacaklar
#1
v.07.06

Mod kurulumu dediğimiz olgu, phpBB kod'larının modifikasyona(değişime) uğratılmasıdır diyebiliriz.

Mod Kurulumuyla İlgili Temel Bilgiler

1.
Peki Modifikasyonun amacı nedir?


- Modifikasyonun amacı varolan phpBB forum yapısını içerik, görsellik, güvenlik, yönetim açısından geliştirmek için kod'ların eklenmesiyle yapılan geliştirmelerdir. Mod yapımı bir çok mod yazarının katılımıyla hergün gelişmekte ve phpBB foruma entegre edilmektedir.

2.
phpBB neden tüm modları kurup süper içeriğe sahip bir yapı oluşturmuyor? Bu haliyle çok basit gözüküyor..


- Aslında basitlik, entegrasyonu kolaylaştıran bir etken. phpBB açık kodlu bir yazılım olduğu için kodların anlamları kolayca öğrenilip, forum için yeni mod yapımına olanak sağlar. phpBB bu anlamda temel özellikler haricinde ekstra özellikleri eklemiyor. Ama resmi sitesinde bu modları ve yayıncılarını destekleyip yeni mod'ların yapımını sağlıyor.
Bizde bu modların olduğu dosyaları alıp forumumuza entegre ediyoruz. phpBBmod.com bu anlamda bu mod'ların tanıtımı ve tartışmasının yapıldığı bir yer olacaktır.
Gelişmiş modların kurulu olduğu phpBB forum yapılarıda vardır örneğin phpBB plus bunlardan birtanesidir. Ve içinde birçok mod ve güvenlik paketleri barındırır (bknz. http://www.phpbb2.de)

3.
Mod dosyası nedir? Mod dosyaları ile ne yapılır?


- Mod dosyası, yukarıda bahsedilen kodların mod yapımcısı tarafından zip uzantılı dosya olarak kullanıcılara dağıtımını yaptıkları ve içinde mod kurulum makalesinde gördüğünüz komutları barındıran bir dosyadır. Ayrıca bu zip dosyanın içinde ek dosyalarda olabilir. Bu dosyalarıda ftp'den ilgili yerlere göndermeniz gerekebilir.
Mod kurulum dosyasını açtığınızda oradaki yönergelere göre ftp'den indirdiğimiz ilgili dosyanın kod satırları arasında dolaşarak gerekli kodları değiştirip, ekleyip, düzenleyeceksiniz.


4.
Forumu nereye kuruyoruz? Mod kurulumunda bu kodların sahibi dosyaları nereden bulup değiştiriyoruz?


- Forumunuzu bir hosting firması üzerine yada bedava alan sunan yerlere kuruyoruz.
Hosting firmanızdan ftp şifrenizi ve kullanıcı adınızı alıp bir ftp programıyla (smartftp, cute ftp gibi) bağlanıyoruz. Düzenlenecek yani kod eklenecek dosyaları, ftp programıyla bağlandığımız ftp alanınımızdan alıyoruz ve düzenlediğimiz dosyaları tekrar ilgili yerlere gönderiyoruz. Mod kurulumu, işte bu indirdiğimiz dosyalara mod eklemesi yapılma işlemidir. Yani ftp forum dosyasını indirip mod kurulumunda bizden düzenlenmesi istenen kod kısmını bu dosyalar üzerinde değiştirip tekrar ftp'den aynı yere gönderiyoruz.

5.
Mod kurulumunda aradığımız mod'u nasıl bulacağız?

- Bu konuda belli başlı siter var. phpbbhacks.com yada phpbbturkey.com gibi.. phpBBmod.com'da bu mod'ları türkçe olarak detaylı bir şekilde sizlerle paylaşacaktır.
Mod'ları ararken istediğimiz mod'un arama işlemini ilgili bölümlerden (ingilizce tabirini yada türkçe anahtar kelimelerini arama kısmına girerek yapacaksınız). Modların tümüne göz gezdirilmeside bu konuda size yardımcı olacaktır.
Bulamadığınıza inandığınızda, mod istek sayfasını kullanarak mod isteği yapabilirsiniz.

BİR KAÇ ÖNEMLİ UYARI ve TAVSİYELER:

- MOD'ları yüklemeden önce, MOD Install dosyasının içinde yazan ve değişiklik yapacağınız tüm dosyalarınızın yedeğini kesinlikle alın. Yapacağınız en ufak bir hata sizi saatlerce uğraştırabilir. Bunun için dosyaların yedeklerini alınki hata yaparsanız eski yedeklerinizi kullanırsınız.

- MOD'larda güvenlik açıkları olabilir. Bu açıkların önüne geçebilmek için MOD güncelleştirmelerini modu yüklediğiniz siteden yada resmi sitesinden takip edebilirsiniz.

- MOD'ları düzenledikten sonra FTP ile kendi sunucunuza göndermeden önce Yönetim Panelinden Sitenizi Kapatın. Yükleme tamamlandıktan sonra sitenizi açabilirsiniz.



Mod Kurulum Makalesi, kısaltmalar ve açıklamaları:

Komut Türkçe anlamları:
open= Dosya Aç
find= Bul
Before Add = Öncesine Ekle
After Add= Sonrasına Ekle,
replace with= Belirtilenle Değiştir
In-Line Find= Satır içinde bul
In-Line Before / After Add= satır içinde öncesine/sonrasına ekle



1.

Kod:
#
#-----[ COPY ]------------------------------------------
#

Bu kodun anlamı, değiştirdiğimiz dosyaları ftp dizininize kopyalamanız(göndermemiz) gerektiğini anlatır. Mod yükleme klasöründen çıkan dosyalardan bir yada bir kaçını (bu kodun altında hangi dosyalar yazıyorsa) ftp dizininize kopyalamasınız. Örneğin:

Kod:
copy index_body.tpl to templates/Subsilver/index_body.tpl

Burada yapmak gereken mod kurulum klasörünün içindeki index_body.tpl dosyasını FTP dizininizde phpBB dosyasının olduğu klasöre yani /templates/Subsilver/index_body.tpl dizininin altına kopyalamanız gerektiğini anlatır. Subsilver teması Varsayılan tema'dır ve tüm modlarda bu tema ismi yazılır. Eğer kullandığınız tema farklıysa siz kendi kullandığınız temanız üzerindede gerekli kod değişimlerini yapmalısınız)

2.

Kod:
#
#-----[ OPEN ]------------------------------------------
#

Düzenlemeniz gereken dosyayı açmanız gerektiğini anlatır. En basitinden windows notepad yada wordpad'i kullanarak dosyayı düzenleyebilirsiniz. Örneğin bu kodun altında viewtopic.php yazıyorsa. Ftp'den foruma bağlanarak, phpBB ana dizininizdeki viewtopic.php dosyasını indirip wordpad yada notepad ile açabilirsiniz.

3.

Kod:
#
#-----[ FIND ]------------------------------------------
#

Bu kodu gördüğünüzde ise açmış olduğunuz ilgili dosyanın içerisindeki herhangi bir kodu bulmanız gerektiğini anlatır. Örneğin bu kodun altında şöyle bir şey yazıyorsa:

Kod:
$mode = ( isset($HTTP_POST_VARS['report_x']) ) ? 'report' :

Açmış olduğunuz dosyadan notepad yada wordpad kullanıyorsanız ctrl+f yaparak bu satırı bulabilirsiniz. (Kurulum dosyalarında bu koddan önce OPEN kodu (bir önceki söylemiş olduğum) verilir bu dosyayı açıp, buldurulmak istenen satırı dosyanın içinde aramalısınız.)

FIND komutunda sonra size dosyadaki ilgili satır bulundurulur bu konuttan sonra aşağıda sıralayacağımız kodlardan biri gelir
bunlar: AFTER ADD(Sonuna Ekle), BEFORE ADD(öncesine ekle) REPLACE WITH (değiştir)

4.

Kod:
#
#-----[ REPLACE WITH ]------------------------------------------
#

Bu komut'un anlamı, FIND ile bulduğunuz kodu değiştirmeniz gerektiğini anlatır. Örneğin bu kısmın altında:

Kod:
$mode = ( isset($HTTP_POST_VARS['report_x']) ) ? 'warning' :

böyle bir kod yazıyorsa, bir önceki kısımda FIND komutu ile bize buldurulmak istenen satıra gidip, buradaki kodla değiştirmeniz gerekir.

5.

Kod:
#
#-----[ BEFORE, ADD ]------------------------------------------
#

Bu kodun altında yazan satırları ise gene FIND kodunun altında söylenen satırları bulup o satırın bir öncesine/üstüne eklemeniz gerekiyor.

Örneğin:

Kod:
#
#-----[ FIND ]------------------------------------------
#
if ( $mode == 'block' )

#
#-----[ BEFORE, ADD ]------------------------------------------
#
if ( $mode == 'voteban' )
{
    $no_error_ban=FALSE;
    if (! $is_auth['auth_voteban'] )
        message_die(GENERAL_ERROR, $lang['Not_Authorised']);

Sizden açılmasını istenen dosyayı wordpad ya da notepad ile açıyoruz ve CTRL+F ile if ( $mode == 'block' ) satırını buluyoruz. Bu satırı bulup bir üstüne BEFORE, ADD olarak söylenen satırı ekliyoruz. Yani dosyanın içindeki satırın görünümü şu şekilde olacak:

Kod:
[color=green]if ( $mode == 'voteban' )
{
    $no_error_ban=FALSE;
    if (! $is_auth['auth_voteban'] )
        message_die(GENERAL_ERROR, $lang['Not_Authorised']);[/color]
[color=red]if ( $mode == 'block' )[/color]

Görmüş olduğunuz gibi satırın üstüne ekledik.

6.

Kod:
#
#-----[ AFTER, ADD ]------------------------------------------
#

Bu kodun altında yazan satırı ise dosyamızda FIND kodu ile bulduğumuz satırın tam altına ekliyoruz. Yani bir önceki anlatmış olduğum BEFORE, ADD kodunun tam tersini yapıyoruz. Bir önceki verdiğimiz örneğimizde BEFORE, ADD yerine AFTER, ADD yazıldığını varsayarak değiştirdiğimizde dosyamızın içerisindeki satır bu sefer şu şekilde olacak:
Kod:
[color=red]if ( $mode == 'block' )[/color]
[color=green]if ( $mode == 'voteban' )
{
    $no_error_ban=FALSE;
    if (! $is_auth['auth_voteban'] )
        message_die(GENERAL_ERROR, $lang['Not_Authorised']);[/color]

Gördüğünüz gibi bu seferde bulduğumuz kodun altına ekliyoruz.

7.

Kod:
#
#-----[ IN-LINE FIND ]------------------------------------------
#

Bu koddan önce gene FIND kodunu göreceksiniz. FIND kodu ile bulmuş olduğumuz satırın içerisindeki özel satırı bulmamızı anlatır. Örnek:

Kod:
#
#-----[ FIND ]------------------------------------------
#
<td align="center" valign="top" nowrap="nowrap"><span class="mainmenu">&nbsp;<a href="{U_FAQ}" class="mainmenu"><img src="templates/subSilver/images/icon_mini_faq.gif" width="12" height="13" border="0" alt="{L_FAQ}" hspace="3" />{L_FAQ}</a>&nbsp; &nbsp;<a href="{U_SEARCH}" class="mainmenu"><img src="templates/subSilver/images/icon_mini_search.gif" width="12" height="13" border="0" alt="{L_SEARCH}" hspace="3" />{L_SEARCH}</a>&nbsp; &nbsp;<a href="{U_MEMBERLIST}" class="mainmenu"><img src="templates/subSilver/images/icon_mini_members.gif" width="12" height="13" border="0" alt="{L_MEMBERLIST}" hspace="3" />{L_MEMBERLIST}</a>&nbsp; &nbsp;<a href="{U_GROUP_CP}" class="mainmenu"><img src="templates/subSilver/images/icon_mini_groups.gif" width="12" height="13" border="0" alt="{L_USERGROUPS}" hspace="3" />{L_USERGROUPS}</a>&nbsp;
#
#-----[ IN-LINE FIND ]------------------------------------------
#
&nbsp;<a href="{U_FAQ}" class="mainmenu"><img src="templates/subSilver/images/icon_mini_faq.gif" width="12" height="13" border="0" alt="{L_FAQ}" hspace="3" />{L_FAQ}</a>
#
#-----[ IN-LINE BEFORE, ADD ]------------------------------------------
#
&nbsp;<a href="{U_PORTAL}" class="mainmenu"><img src="templates/subSilver/images/icon_mini_message.gif" width="12" height="13" border="0" alt="{L_HOME}" hspace="3" />{L_HOME}</a>&nbsp;

Bu örnekte belirttiği gibi OPEN ile açtığımız dosyamızın içerisinde FIND komutu ile uzun bir kodu bulup ilgili satırı inceliyoruz. Bu satırı başlangıcından sağa doğru takip ederek aynı hizada olan [ IN-LINE FIND ] komutu ile bulunması istenen yeri tespit edip buluyoruz. [ IN-LINE FIND ] komutu ile bu en son bulduğumuz yerin öncesine kodu yapıştırıyoruz.

bir başka örnek:

Kod:
#-----[ FIND ]---------------------------------------------
# around line 1021
              <textarea name="message" rows="15" cols="35" wrap="virtual" style="width:450px" tabindex="3" class="post" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);">{MESSAGE}</textarea>

#
#-----[ IN-LINE FIND ]------------------------------------------
#
</textarea>

#
#-----[ IN-LINE AFTER, ADD]------------------------------------------
#
<br /><span class="genmed"><a href="javascript:void(0);" onclick="window.open('http://www.postimage.org/index.php?mode=phpbb&tpl=.&forumurl=' + escape(document.location.href), '_imagehost', 'resizable=yes,width=500,height=400');return false;">{L_ADD_IMAGE}</a></span>

8.

Kod:
#
#-----[ IN-LINE BEFORE, ADD ]------------------------------------------
#

Bir önceki anlattığım satırın içerisindeki satırı bulup onun hemen öncesine eklememiz gerektiğini söylüyor.
Örneğin:

Kod:
#
#-----[ FIND ]------------------------------------------
#
$order_sql = (

#
#-----[ IN-LINE FIND ]------------------------------------------
#
, f.auth_greencard, f.auth_bluecard

#
#-----[ IN-LINE BEFORE, ADD ]------------------------------------------
#
, f.auth_voteban

Bunu yaptığımızda $order_sql = ( satırının içerisinde aynı hizadaki görünüm şu şekilde olacak:

Kod:
[b]$order_sql = ([/b]!$post_id) ? '' : "GROUP BY p.post_id, t.topic_id, t.topic_title, t.topic_status, t.topic_replies, t.topic_time, t.topic_type, t.topic_vote, t.topic_last_post_id, f.forum_name, f.forum_status, f.forum_id, f.auth_view, f.auth_read, f.auth_post, f.auth_reply, f.auth_edit, f.auth_delete, f.auth_sticky, f.auth_announce, f.auth_pollcreate, f.auth_vote, f.auth_attachments, f.auth_ban[color=red], f.auth_voteban[/color][color=green], f.auth_greencard, f.auth_bluecard[/color] ORDER BY p.post_id ASC";

9.

Kod:
#
#-----[ IN-LINE AFTER, ADD ]------------------------------------------
#

Burda satır içinde aynı hizada bulduğumuz satırdan bir sonra o satırı eklememiz gerektiğini anlatır. Yukardaki örneğimizdeki IN-LINE BEFORE, ADD yerine buradaki IN-LINE AFTER, ADD kullanıldığını varsayarsak o zaman görünüm şu şekilde olacaktır:

Kod:
[b]$order_sql = ([/b]!$post_id) ? '' : "GROUP BY p.post_id, t.topic_id, t.topic_title, t.topic_status, t.topic_replies, t.topic_time, t.topic_type, t.topic_vote, t.topic_last_post_id, f.forum_name, f.forum_status, f.forum_id, f.auth_view, f.auth_read, f.auth_post, f.auth_reply, f.auth_edit, f.auth_delete, f.auth_sticky, f.auth_announce, f.auth_pollcreate, f.auth_vote, f.auth_attachments, f.auth_ban[color=green], f.auth_greencard, f.auth_bluecard[/color][color=red], f.auth_voteban[/color] ORDER BY p.post_id ASC";

10.

Kod:
#
#-----[ ADD SQL ]------------------------------------------
#

veya

Kod:
#
#-----[ SQL ]------------------------------------------
#

Bu kodu gördüğümüzde altında yazan satırı en basitinden phpMyAdmin'i kullanarak veritabanımıza ekliyoruz. Örneğin:

Kod:
#
#-----[ ADD SQL ]------------------------------------------
#
ALTER TABLE banvote_voters ADD banvote_banner_id MEDIUMINT(8) NULL('No') DEFAULT('0')


Böyle bir kod görürsek phpMyAdmin'e giriyoruz. Daha sonra veritabanımızı seçiyoruz. Ve SQL Sorugusu kısmına tıklıyoruz.Size yeni bir pencere açılacak ve bu pencerede kodları yazmak için bir metin kutusu göreceksiniz. O kutuya direk yukardaki satırı yazıyoruz ve GİT ya da GO butonuna tıklıyoruz. Eğer başarıyla eklerseniz size phpMyAdmin bilgi verecektir.

ÖNEMLİ: SQL sorgusunu kesinlikle dosyaları düzenlemeden önce yapın. Yani herşeyi mod dosyasındaki sıraya göre yapın.

11.

Kod:
#
#-----[ COPY ]------------------------------------------------
#
copy max_sessions_db_update.php to max_sessions_db_update.php

#
# This MOD need a database update.
# Then, as you must have now copied the max_sessions_db_update.php file
# in your phpBB root directory, run it with your navigator...
# http://www.yourWebSite.xxx/phpbbRootDir/max_sessions_db_update.php
#
# ...and then delete it from the phpBB root directory!!!
#
# Please, do it NOW! Before editing phpBB files by EM or manually!!!
# Otherwise, you may have an error message during your next
# connection.
#

Eğer mod dosyanızda böyle bir satır görüyorsanız max_sessions_db_update.php dosyanızı phpBB Ana dizininize kopyalayıp ardından explorer satırınıza <!-- w --><a class="postlink" href="http://www.siteadi.com/phpBB_dizininiz/max_sessions_db_update.php">http://www.siteadi.com/phpBB_dizininiz/ ... update.php</a><!-- w --> yazıp veritabanınızı güncellemeniz gerekir.

ÖNEMLİ:
- Bu işlemi yapmadan önce kesinlikle forumunuza admin girişi yapmalısınız.
- Bu işlemi yaptıktan sonra güvenlik açısından bu dosyayı kesinlikle silmelisiniz.


Bu tip MOD'larda veritabanınızı otomatik olarak yani phpMyAdmin ile uğraşmadan güncellemek için böyle bir script yapılmıştır.

12.

Kod:
#
#-----[ SAVE/CLOSE ALL FILES ]--------------------------------
#
# EoM

Her modun en son satırında bu yazar. Yani TüM DOSYALARI KAYDEDİP/KAPATIN demek istiyor.şöylede denebilir:

Tüm dosyalarınızdaki değişiklikleri yaptınız ve hepsini kaydedip phpBB dizininize gönderme vakti geldi.

EoM ise END OF MOD yani MODUN SONU anlamına gelir.


Yazar: ESQARE, CUPRA
Bu yazının bazı bölümleri phpbbturkey.com'dan alınmış ve tekrar derlenmiştir.
Gözlerim doluyor yine yüreğimin sensizliğinde, kayboldum yine TARSUS'un sessizliğinde...
Cevapla
Teşekkür verenler:


Hızlı Menü:


Şu anda bu konuyu okuyanlar: 1 Ziyaretçi


10tl.net Destek Forumu -