Modifikasyonların Manuel Kurulumu - Basitleştirilmiş Anlatım

tertunc

Dekan
Emektar
Müdavim
Katılım
18 Ağustos 2007
Mesajlar
7,204
Reaksiyon puanı
21
Puanları
1,218
Aradıgınız Dosya Kullanıdığınız Temada Yok Ise Default Tema Içerisindeki Dosyayı Kullanabilirsiniz...

Modu bilgisayarımıza indirip zip dosyasını actıgımızda karşımıza bi takım dosyalar cıkar
bunlar ;
package-info.xml
install.mod
install.xml
readme.txt
şeklinde dosyalarıdır.

Manuel kurulumun temelinde forum kaynak kodlarını oluşturan ve ../Sources dizininde bulunan php dosyalarını değiştirerek kod parçacıklarını belirli bölgelerden önce veya sonra eklemek ya da belirli kodları değiştirmektir. SMF iki türde modifikasyon kurulumu destekler. İlki .mod uzantısı ile biten dosyalardan oluşur ve eski bir sistemdir. İkincisi ise .xml uzantılı dosyalardan oluşan yeni sistemdir.

Eğer ön bilgileri atlayıp .mod sistemini öğrenmek istiyorsanız tıklayın.
Eğer ön bilgileri atlayıp .xml sistemini öğrenmek istiyorsanız tıklayın.

package-info.xml dosyası ne işe yarar?
bu dosya bir nevi tanım dosyasıdır.
içeriği;
Code: [Select]
<?xml version="1.0"?>
<!DOCTYPE package-info SYSTEM "http://www.simplemachines.org/xml/package-info">
<package-info xmlns="http://www.simplemachines.org/xml/package-info" xmlns:smf="http://www.simplemachines.org/">

<name>Board Notes</name>

<id>akabugeyes:boardnotes</id>

<version>1.0.4</version>

<type>modification</type>
ilk satırlarda yer olanlar bizim için pek onemli değildir bunda xml sürümünü modun ismini, yazarını, versiyonunu falan yazar...
bundan sonra gelen satırlar ise bize lazım olan kısımdır...
Code: [Select]
<install for="1.1 RC1, 1.1 RC2">
<readme>readme.txt</readme>
<modification format="xml" type="file">install1.1rcx.mod/install1.1rcx.xml</modification>
<code>add_settings.php</code>
</install>
burda
<install ile başlayan satır hangi sürüm için mod klasorunde hangi dosyanın kullanılacagını anlatmaktadır...
for="1.1 RC1, 1.1 RC2" diyor demek ki forum sürümümüz 1.1 rc1 ve 1.1 rc2 ise modu kurmamızda bi problem olmayacak
Code: [Select]
<modification format="xml" type="file"> burda ise hangi dosyanın bizim sürmümüze uygun olan mod dosyası oldugunu anlayacagız...
manuel kurulum için uygulayacagımız kodlar install1.1rcx.mod dosyasının içinde tutuluyor...
<require-file name="Themes/default/testmod.template.php" destination="$themedir" /> bu satırımız ise modun için de siteye upload etmemiz gereken dosyar varsa onların tanımını yapıyor
name="testmod.template.php" indirip zip ile actıgımız mod dosyası içerisinden testmod.template.php dosyasını alıp
destination="$themedir" tema klasoru içerisine atmamızı soyluyor...
<code>denememod.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.
<uninstall for="1.1 RC2"><modification type="file" reverse="true">install1.1rcx.mod/install1.1rcx.xml</modification></uninstall> Burda ise modu kaldırmak için hangi dosyayı kullanmamız gerektiği yazılı...

Geldik Modu Kurmaya
İki Çesit Mod Vardır...
Uzantısı .mod olanlar ve .xml olanlar

.mod dosyaları ile modifiye

tanımlarda okudugumuz install1.1rcx.mod dosyasını bir notepad aracılığı ile açıyoruz...

Genel Tanımlar - Çok Gerekli değiller
cheesy.gif

<id></id> Modun adı falan yazar burda bizim için önemli değildir...
<version></version> Modun versiyonudur
<homepage></homepage> Modu yazan vatandışın reklamı
cheesy.gif


Mod kurmak için önemli tanımlar
<edit file></edit file> Forumun hangi dosyalarında değişiklik yapacağımız, bunu görünce bahsi geçen dosyayı açın!
<search for></search for> Bu kod ara anlamındadır ve <search for>burda yazan yerde ki kodları ararız...</search for>
<add after></add after> Hemen sonra ekle demek <add after>bunların arasında yazan kısmı arama yaptıktan sonra cıkan kodladan hemen sonra ekliyoruz...</add after>
<add before></add after> Hemen önce ekle demek <add before>bunların arasında yazan kısmı arama yaptıktan sonra cıkan kodladan hemen önce ekliyoruz...</add before>
<replace></replace> Değiştir demek <replace>bunların arasında yazan kısmı arama yaptıktan sonra cıkan kodlar ile değiştiriyoruz</replace>

Manuel Kurulum Örneği

Quote
<edit file>
$themedir/index.template.php
</edit file>​
İndex.template.php dosyasını açıyoruz...

Quote
<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...


Quote
<add after>
echo '<br /><table align="center" width="100%"><tr><td class="catbg" align="center">Manuel Mod Kurulumu</td></tr></table>';
</add after>​
hemen sonra
echo '<br /><table align="center" width="100%"><tr><td class="catbg" align="center">Manuel Mod Kurulumu</td></tr></table>';
ekliyoruz

Quote
<edit file>
$themedir/boardindex.template.php
</edit file>​
Quote
<search for>
/* Each category in categories is made up of:
id, href, link, name, is_collapsed (is it collapsed?), can_collapse (is it okay if it is?),
new (is it new?), collapse_href (href to collapse/expand), collapse_image (up/down iamge),
and boards. (see below.) */
$first = true;
foreach ($context['categories'] as $category)
</search for>​
Quote
<add before>
echo '<table align="center" width="100%"><tr><td class="catbg" align="center">Manuel Mod Kurulumu</td></tr></table><br />';
</add before>​
hemen önce
echo '<table align="center" width="100%"><tr><td class="catbg" align="center">Manuel Mod Kurulumu</td></tr></table><br />';
ekliyoruz

bunu arıyoruz

Quote
<edit file>
$themedir/boardindex.template.php
</edit file>​
Quote
<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>​

Quote
<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

tanımlarda okudugumuz install1.1rcx.xml dosyasını bir notepad aracılıgı ile acıyoruz...

Code: [Select]
<?xml version="1.0"?>
<!DOCTYPE modification SYSTEM "http://www.simplemachines.org/xml/modification">
<modification xmlns="http://www.simplemachines.org/xml/modification" xmlns:smf="http://www.simplemachines.org/">
<id>vbgamer45:RegLinks</id>
<version>1.0</version>Yukarıdaki alıntı olan şeyler yine tanımlar...Bizim için gereksiz...

Değişiklik kodları
Code: [Select]
<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


Quote
<file name="$themedir/index.template.php">​
---> İndex.template.php dosyasını açıyoruz
Quote from: operasyon başlıyor
<operation>​
Quote
<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

Quote
<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 '<br /><table align="center" width="100%"><tr><td class="catbg" align="center">Manuel Mod Kurulumu</td></tr></table>'; bu kodları ekliyoruz
Quote from: operasyon bitti
</operation>
</file>​
Quote
<file name="$themedir/boardindex.template.php">​
---> boardindex.template.php dosyasını açıyoruz
Quote from: operasyon başlıyor.
<operation>​
Quote
<search position="after"><![CDATA[
/* Each category in categories is made up of:
id, href, link, name, is_collapsed (is it collapsed?), can_collapse (is it okay if it is?),
new (is it new?), collapse_href (href to collapse/expand), collapse_image (up/down iamge),
and boards. (see below.) */
$first = true;
foreach ($context['categories'] as $category)]]></search>​
----><![CDATA[ Bu kodlar arasında kalanları arıyoruz ]]
Quote
<add><![CDATA[echo '<br /><table align="center" width="100%"><tr><td class="catbg" align="center">Manuel Mod Kurulumu</td></tr></table>';
]]></add>​
---> hemen önce <![CDATA[ arasında kalanları ekliyoruz ]]
Quote from: operasyon bitti
</operation>
</file>​

Quote
<file name="$themedir/boardindex.template.php">​
---> boardindex.template.php dosyasını açıyoruz
Quote from: Ahanda operasyon başlıyor...
<operation>​
Quote
<search position="after"><![CDATA[
<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>​
----><![CDATA[ Bu kodlar arasında kalanları arıyoruz ]]
Quote
<add><![CDATA[ <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>
]]></add>​
---> <![CDATA[ arasında kalanlar ile ile değiştiriyorum ]]
Quote from: Operasyon bitti...
</operation>
</file>​
http://www.simplemachines.org/community/index.php?topic=91385.0#post_modsistemi
 
Üst