Evet arkadaşlar bu dökümanda herhangi bir modu manuel kurmayı öğreneceğiz.
İlk önce manuel kurmayı şöyle bir özetleyelim.
Manuel Kurulum Herhangi bir modu Admin panelinden değilde,
kodları sitedeki dosyaları açarak elle değiştirmek demektir.Peki Neden Manuel kuralım, hazıra konmak varken.
Bildiğiniz gibi bütün modlar default temaya göre kodlanır.Bunun sebebi herkesin sisteminde default temanın olmasıdır.
Eğer bir defaultdan başka bir tema tercih ettiysek, kurmak istediğimiz bir modu manulel kurarız.
Şimdi genel olarak manuel kurulumu kavradık.Şimdi temel bilgilerden başlayarak yavaş yavaş manuel kurmayı öğrenelim.
package-info.xml dosya yapısı
Bu dosya her modifikasyonun içinde vardır.Bize genel bilgileri verir.
Komutlar
- <readme> </readme> = Manuel kurulum için işimize yarayan bir bilgi değil aslında.Ama ben yinede söyleyeyim.
Bu komut Mod hakkında bilgi içerir.
Modu otomatik kurarken üstte bir kaç bilgi gözükür işte o bu kodlar arasındaki yazılardır.
2 türlü yapısı vardır;<readme type="inline"> veya <readme type="file". <readme type="file">okubeni.txt</readme> bunun anlamı mod dosyası içindeki okubeni.txt dosyası içinde yazar ve mod hakkında bilgi içeriyor.Eğer bu "inline" şeklinde olsaydı, gerekli bilgiler <readme type="inline"> Gerekli Bilgiler </readme>
şeklinde olurdu.
- <install> </install> = Modu manuel kuruyoruz değil mi?
O zaman bu komutlar arasında kalan şeyler bizi ilgilendiriyor.
<install for="SMF 1.1"> şeklindeki ifadeler, bu modun, ancak orada yazılı forum sürümlerine uygulanabileceğini ifade eder.
- <modification> </modification> = Modu kurmaya başladık, bu komut onun ifadesidir.
<modification type="file"> ifadesi,
yapacağımız değişikliklerin package-info.xml dışında bir dosyada saklandığını ifade eder.
Bu dosyanın kim olduğunu, <modification format="boardmod"> .mod uzantılı dosyalar,
<modification format="xml"> .xml uzantılı dosyalar olarak ifade eder. <modification reverse="true"> ise, modu manuel kaldırmak istersek, burada yaptığımız işlemlerin tam tersini yapmamız gerektiğini ifade eder. Ör: <modification type="file" reverse="false" format="boardmod">deneme_mod.mod</modification>
Burada kod türü dosya (file) olarak ifade edilmiş ve bu dosya (yani kurulum bilgileri) deneme_mod.mod isimli dosyada saklanıyor denmiştir.
- <uninstall> </uninstall> = Modu manuel kaldıracaksak burası bizi ilgilendiriyor.
<uninstall for="SMF 1.1"> yazıyor ise bu modun sadece yazılı sistemden bu şekilde kaldırılacağını söyler.
- require-dir ve de require-file komutları
CODE
<require-dir name="resimler" destination="$imagesdir" />
<require-file name="resim.jpg" destination="$imagesdir/resimler" />
Bu örneğin birinci komutunda mod, paketin içinden resimler isimli klasörü çıkardı ve
/Themes/default/images içerisine attı ve ikinci komutunda o resimler klasörüne resim.jpg isimli dosyayı attı.
- Code Komutu
<code>deneme.php</code>
Burada, deneme.php dosyası önce forum klasörüne atılır, daha sonra tarayıcıdan bu dosya açılmış gibi çalıştırılır.
(mod kurulurken) Ama biz şu anda modu manuel kurmayı anlattığımız için kendimiz çalıştıracağız.
Yani, deneme.php dosyasını paketten çıkarıp foruma atacağız, sonra da bir defaya mahsus olmak üzere bu dosyayı tarayıcıdan çalıştıracağız.
Ör: You are not allowed to view links.
Register or
LoginModifikasyon dosyalarını açtığımızda asıl işlem yapacağımız 2 çeşit uzantı vardır.
Bunlar .mod ve .xml uzantılardır.
.mod uzantılı modifikasyon kurulumu
- <edit file></edit file> = Bu komutu gördüğümüz dosyayı hemen açıyoruz çünkü işlemi bu dosya üzerinde yapacakmışız.
Örn: <edit file> $themedir/boardindex.template.php </edit file> $themedir default temasıdır. yani bundan sonraki kodl ataklarını default temasının boardindex.template.php dosyasına yapacakmışız.
$themedir => bu bizim varsayılan tema klasörümüz. Yani /Themes/default
$boarddir => bu bizim forumumuzun ana klasörü. Yani /
$sourcedir => bu bizim kaynak klasörümüz. Yani /Sources
$languagedir => bu bizim dil dosyalarımızın olduğu klasördür. Yani /Themes/default/languages
$imagesdir => bu bizim temamızıa ait tüm resimler / ikonlarımızın bulunduğu klasörümüzdür. Yani /Themes/images
- <search for></search for> = Bu kod ara anlamındadır.bi önceki edit file dosyası üzerinde bu kodlar arasındaki, kodları arayacağız
- <add after></add after> = hemen sonra ekle demek <add after> burada yazan kodları yukarıda search ettiğimiz kodlardan hemen sonra ekliyoruz </add after>
- <add before></add before> = hemen önce ekle demek <add after> burada yazan kodları yukarıda search ettiğimiz kodlardan hemen önce ekliyoruz
- <replace></replace> = Değiştir demek <replace> Burada yazan kodları search ettiğimiz kodlarla değiştiriyoruz </replace>
Manuel Kurulum örneği
<edit file>
$themedir/boardindex.template.php
</edit file>
boardindex.template.php dosyasını açıyoruz.
<search for>
// Show the "Child Boards: ". (there's a link_children but we're going to bold the new ones...)
</search for>
// Show the "Child Boards: ". (there's a link_children but we're going to bold the new ones...) kodunu arıyoruz
<add after>
if (!empty($board['children']))
{
</add after>
Aradığımız kodun hemen sonrasına;
if (!empty($board['children']))
{
Kodunu ekliyoruz
<edit file>
$themedir/index.template.php
</edit file>
İndex.template.php dosyasını açıyoruz...
<search for>
// Show the menu here, according to the menu sub template.
template_menu();
</search for>
// Show the menu here, according to the menu sub template.
template_menu();
diye arama yapıyoruz...
<add before>
echo '
<table align="center" width="100%"><tr><td class="catbg" align="center">Manuel Mod Kurulumu</td></tr></table>';
</add before>
Hemen öncesine
echo '
<table align="center" width="100%"><tr><td class="catbg" align="center">Manuel Mod Kurulumu</td></tr></table>';
Kodunu ekliyoruz
<edit file>
$themedir/boardindex.template.php
</edit file>
<search for>
<td class="windowbg2" width="100%">
<span class="middletext">
', $txt['most_online_today'], ': <b>', $modSettings['mostOnlineToday'], '</b>.
', $txt['most_online_ever'], ': ', $modSettings['mostOnline'], ' (' , timeformat($modSettings['mostDate']), ')
</span>
</td>
</search for>
<replace>
<td class="windowbg2" width="100%" aling="center">
Burda online olanlar yazması gerekiyor ama ben bunu kaldırıp yerine su anda okudugunuz metini ortanmış biçimde ekliyorum
</td>
</replace>
bununla değiştiriyoruz
.xml Dosyaları ile modifiye
Değişiklik kodları
<file name="$languagedir/Modifications.turkish.php">
<operation>
<search position="after"><![CDATA[
?>]]></search>
<add><![CDATA[
//]]></add>
</operation>
</file>
- <file name Değişiklik yapacagımız dosyayı tanımlar bize (<edit file> ile aynı işlev)
- <operation> operasyonu başlatıyoruz
- <add><![CDATA[ Modun İşlevi ]]</add> Bu kod yapacagımız değişikliğin yazılı oldugu yerdir...Modun İşlevi yazan yerde kodlar yazar ve biz ordaki kodları bize seach te ne diyorsa ona gore ekleriz...
- <search position="after"><![CDATA[ Aranacak kodlar ]]></search> arıyoruz
- position="after" Aranacak kodların eklenecek kodlardan sonra olacagını anlatıyor (<add before> işlevinin aynısı)
- position="before" Aranacak kodların eklenecek kodlardan önce olacagını anlatıyor (<add after> işlevinin aynısı)
- position="replace" Aranacak kodların eklenecek kodlarla değiştileceğini anlatıyor...
- position="end" Dosyanın sonuna ekleneceğini anlatıyor
Manuel Kurulum Örneği
<file name="$themedir/index.template.php">
İndex.template.php dosyasını açıyoruz
<search position="before"><![CDATA[
// Show the menu here, according to the menu sub template.
template_menu();]]></search>
// Show the menu here, according to the menu sub template.
template_menu();diye arama yapıyoruz
<add><![CDATA[echo '<br /><table align="center" width="100%"><tr><td class="catbg" align="center">Manuel Mod Kurulumu</td></tr></table>';
]]></add>
hemen sonra echo '
<table align="center" width="100%"><tr><td class="catbg" align="center">Manuel Mod Kurulumu</td></tr></table>'; bu kodları ekliyoruz
Gelişen mantıklar yine aynısın takıldığınız yer olursa lütfen söyleyiniz...