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

Started by Arbalot, June 04, 2006, 01:10:10 PM

Previous topic - Next topic

Arbalot

Öncelikle Bu Mesajı Yazmamdaki Amaç Manuel Mod Kurulumunu Biraz Daha Pekiştirmek...
Elmaciğin Hazırladığı O Eşsiz Dokumana Laf Söylenmez Tabiki Ama Bağzı Arkadaşlar Onu Okumaya Üşeniyorlar...

Kafanızın Daha Fazla Karşıcağını Düşünüyorsanız Hiç Okumayın En Yalın Şekli İle Anlatmaya Çalıştım Şu An İçin Elimden Gelen Bu...

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;
<?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...
        <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
<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 :D
<id></id> Modun adı falan yazar burda bizim için önemli değildir...
<version></version> Modun versiyonudur
<homepage></homepage> Modu yazan vatandışın reklamı :D

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

<?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ı
<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>


Quote from: Lord Arbalot-Lord Arbalot
Quote from: alperuzi-Eklemeler yapılmıştır, iurl sistemi kurulmuştur

spirit31-31

Harika Bir Anlatım Olmuş Eline Yüreğine Sağlık...


Eğer Forumunuz Rc2 'yse ve Kategori İçindeyken VeriTabanı (Mysql) Hatası Veriyorsa
http://www.simplemachines.org/community/index.php?topic=107023.0





McRoyaL

Coooooooook sagol guzel ve super anlatim  ;)Simdi deniycem  :)

Radagast_

çok güzel anlatım olmuş ama sana bir sorum var membercolor link modunda
<edit file>
$sourcedir/ModSettings.php
</edit file>

böle diyo ben bu dosyyayı düzenliyicem ama böle bi dosya yok

Arbalot

o dosya ana dizinde Sources klasorunun içinde...

Radagast_

#5
sağol sonunda bunuda öğrenebildim

Gang$ta

arbalot guzel dokuman olmus ellerine sağlık

B.J.K.MaNiAc

ellerine sağlık Arbalot  başarılı bir çalışma :) :)

Elmacik

Tebrikler Arbalot, eminim bir çok kişinin işine yarayacaktır.
Quote from: Arbalot
Elmaciğin Çevirisini Yaptığı O Eşsiz Dokumana Laf Söylenmez Tabiki Ama Bağzı Arkadaşlar Onu Okumaya Üşeniyorlar...
* Dipnot: O yazı çeviri değil ;)
Home of Elmacik

Harzem

Quote from: Elmacik on June 09, 2006, 08:28:38 AM
* Dipnot: O yazı çeviri değil ;)
Evet, o zaten Türkçe'ydi Elmacik benden çaldı :P

Şaka şaka, elinize sağlık ikinizin de :)

Arbalot

 :'(

Özelleştirilmiş Profil Alanları İle Karıştırdım :D
Yazıyı Düzelttim Elmacik
QuoteTebrikler Arbalot, eminim bir çok kişinin işine yarayacaktır.
sağolasın

emre91

Quote from: Arbalot on June 04, 2006, 01:10:10 PM
Laf Söylenmez Tabiki Ama Bağzı Arkadaşlar Onu Okumaya Üşeniyorlar...

içimi okudun be abi  :P

T@LH@

Eline sağlık lakin ben member colorlinki kurmaya calısdımda sölediği dosyada aramamı istediği kodları bulamadım  :-[ yardım edermisiniz ? istediği kod neden yok olabilir ?

<search for>
array('rule'),
);

return $config_vars;
}
</search for>


Sürümüm 1.1rc2 tema Ig-Oh ama editledim ...

Yeni indirdiğim dökümanla değiştirirsem düzelir mi ?


Harzem

<search for> ve </search for> kısımlarını aramayacaksın. Sadece şurasını arayacaksın:


array('rule'),
);

return $config_vars;
}

Arbalot

tam oalrak bu olmayabilir ama buna yakın kelimeler vardır config_vars die ara rule die ara buldugun sonuca bak ona gore moddaki kodlara yerleştir..

T@LH@

Quote from: Arbalot on June 11, 2006, 01:54:56 PM
tam oalrak bu olmayabilir ama buna yakın kelimeler vardır config_vars die ara rule die ara buldugun sonuca bak ona gore moddaki kodlara yerleştir..

Bende dediğin gibi yapdım sadece rule dediğimde birtek şey cıkdı onunda kodla alakası yokdu sadece bir acıklama idi ...

Ne yapmam gerekiyor?


T@LH@

sanırım bile yoq peki bişi daha dicem ben smfde mod felan kurmuyacağım bi daha kurulu olanları nasıl kalırırım mesela ftp istiyor benden girdiğimde smf dizininin yanlıs olduğunu sölüyor tama olarak bana smf dizinini ve sunucu ayarımdaki smf dizinimin ne olması gerekdiğini sölermisiniz forum adresim

http://www.saidnur.org/forum/index.php



Arbalot

forum dizinin settings.php de yazıyor ordan kontrol edebilirsin...

T@LH@

Yoq abi yua anlamadım gitti yuzu gecik dizin denedim settingsde yazanı kullandım hep aynı hatayı veriyor böle bir dosya bulunamadı diye hani calıssalar bos ver kalsın dicem o modlarda calısmıyor ki neyse anlasılan manuel kaldıracaz ...


osenmer

bazı mod kurulumlarında ""$themedir/index.template.php"" yazıyor bu gibi durumda kullandığımız temanın index.template.php dosyasındamı düzenleme yapmamız mı gerekiyor yoksa default temadamı?

Advertisement: