Joomla ile birbirinden bağımsız ancak tek üyelikli çalışan bir den fazla joomla site oluşturmak için bir kaç tane eklenti olmasına rağmen gerek ücretli oluşu gerekse de deneme fırsatı olmadığından başarı oranı bilinmemesi sebebiyle uzak duran kullanıcılar için manuel bir şekilde bu bağlantılı sitelerin nasıl yapılacağı konusunda joomla.org forumlarında getirilen bir çözüm vardı ve bu çözüme dair gelen çeviri talepleri doğrultusunda sizler için hazırladığım çeviri ve derlemeyi aşağıda aynı şekilde veriyorum geri dönüşümleri buradan yorum olarak yaparsanız memnun olurum.
Bu makalemizde sizlerle, yönlendirilmiş veya alt domaine kurulmuşbir siteyi veya siteleri nasıl tek üyelik tarzında kullanabileceğinizi anlatmaya çalışacağız. Öncelikle bu işlem için, eğer sıfırdan bu işlemi yapmıyor ve kurulu olan siteleriniz için uygulayacaksanız o zaman tam bir yedek almanız gerektiğini hatırlatmalıyım, olası sorunlarda (kişisel) geri dönebilmenizi sağlayacağı için bunu ihmal etmemenizi tavsiye ederiz.
Hazırsak işlemlere başlayabiliriz, ilk olarak sunucu ana dizinimizde (ana joomla sitemizin kurulu olduğu dizin) sites.php adında bir boş dosya oluşturuyoruz ve içine aşağıdaki kodları yapıştırıp kaydediyoruz.
<?php defined('_VALID_MOS') or die('No Access'); $sites_name['ana_domain']='configuration.php'; $sites_name['ikinci_domain']='ikinci_domain.php'; $sites_name['ucuncu_domain']='ucuncu_domain.php'; ?>
Daha sonra configuration.php nin kopyalarını oluşturacağız ve configuration dosyalarının adını örnekteki gibi ayarlayalım. Sonuç itibariyle elimizde ana dizinde kurulu olan joomlamıza ait configuration.php dosyası ve ikinci_domain.php ile ucuncu_domain.php adında iki tane de farklı isimde ayar dosyamız olmuş olacak, her config dosyası yine kendine ait alt domain klasörlerinde duracaklar yani böylece ana site hariç hiç birisinde configuration.php dosyası varolmamış olacak bunların yerini isimlerini değiştirmiş olduğumuz ve yukarıdaki kodu ekleyip düzenlediğimiz config (ayar) dosyalarımız olmuş olacak. Şimdi bu ayar dosyalarımızın içindeki
($mosConfig_live_site = 'domaininiz'; $mosConfig_dbprefix = 'tablo_oneki'; $mosConfig_site_name = "site adiniz";)
kısımlarını da varolan altdomainlere kurulu olan sitelerimizin bilgilerini girmeliyiz. Bu aşamadan sonra index.php ve index2.php dosyalarında tanımlanmış olan ayar dosyalarımızı tanımlayan kodda değişiklik yapacağız ki sistem configuration.php dosyasını bulamadığı için hataya sebep olmasın. Bunun için index.php ve index2.php dosyalarını açarak aşağıdaki kodları varolan ve require_once ile başlayan iki satırın yerine yapıştıracağız, yani diğerlerini silmiş olacağız
require_once ( 'sites.php' ); $conf_igure = $sites_name[$_SERVER['SERVER_NAME']]; require_once( $conf_igure );
İlk aşamada ana dizinde bir tane sites.php isimli bir dosya oluşturmuştuk işte burada configuration.php dosyasını sistemin okuma durumunu değiştirip yerine bu oluşturduğumuz ve içinde diğer siteleri tanımladığımız sites.php dosyasını okuyacak. Ardından /administrator/index.php index2.php ve index3.php dosyalarında aşağıdaki kodu buluyoruz
require('../configuration.php');
ve bu kodu aynen aşağıdaki gibi değiştiriyoruz.
require_once ( '../sites.php' ); $conf_igure = $sites_name[$_SERVER['SERVER_NAME']]; require_once( '../' . $conf_igure );
/administrator/components/com_config/admin.config.php dosyasında bu kodu arayalım,
$fname = $mosConfig_absolute_path . '/configuration.php';
Bu kodu da aşağıdaki kodla değiştirelim. global $conf_igure;
$fname = $mos_Config_absolute_path . '/' . $conf_igure;
Şimdi de /administrator/includes/auth.php içinde aşağıdaki kodu arayalım,
include 'configuration.php'; Ve bu kodla değiştirelim,
global $conf_igure; include ( $conf_igure ); /components/com_sef/sef.php ve /includes/sef.php dosyaları içinde aşağıdaki kodu arıyoruz,
include ( 'configuration.php' );
Ve bunu aşağıdakiler ile değiştiriyoruz,
global $conf_igure; include ( $conf_igure );
Birbirinden bağımsız olan veritabanlarını tek bir veritabanıymış gibi kullanmak istiyorsak yapmamız gereken veritabanı tablolarını bu isteğimize göre uyarlamak, bunu da veritabanından değil veritabanı işlemlerini yapan dosyalarımızdan yapacağız şöyle ki; /includes/database.php dosyamızı açıyoruz ve aşağıdaki satırı buluyoruz,
$literal .= str_replace( $prefix , $this->_table_prefix , substr...;
Ve bu kodun yerine aşağıdaki kodları yapıştırıyoruz,
$common_tables = array('#__banner'=>'jos_banner', '#__bannerclient'=>'jos_bannerclient', '#__bannerfinish'=>'jos_bannerfinish', '#__components'=>'jos_components', '#__comprofiler'=>'jos_comprofiler', '#__comprofiler_fields'=>'jos_comprofiler_fields', '#__comprofiler_field_values'=>'jos_comprofiler_field_values', '#__comprofiler_lists'=>'jos_comprofiler_lists', '#__comprofiler_members'=>'jos_comprofiler_members', '#__comprofiler_plugin'=>'jos_comprofiler_plugin', '#__comprofiler_tabs'=>'jos_comprofiler_tabs', '#__comprofiler_userreports'=>'jos_comprofiler_userreports', '#__comprofiler_views'=>'jos_comprofiler_views', '#__contact_details'=>'jos_contact_details', '#__core_acl_aro'=>'jos_core_acl_aro', '#__core_acl_aro_groups'=>'jos_core_acl_aro_groups', '#__core_acl_aro_sections'=>'jos_core_acl_aro_sections', '#__core_acl_groups_aro_map'=>'jos_core_acl_groups_aro_map', '#__groups'=>'jos_groups', '#__mambots'=>'jos_mambots', '#__messages'=>'jos_messages', '#__messages_cfg'=>'jos_messages_cfg', '#__modules'=>'jos_modules', '#__templates_menu'=>'jos_templates_menu', '#__template_positions'=>'jos_template_positions', '#__users'=>'jos_users', '#__usertypes'=>'jos_usertypes', $search = array_keys($common_tables); $replace = array_values($common_tables); array_push($search,$prefix); array_push($replace,$this->_table_prefix); $literal .= str_replace( $search , $replace , substr( $sql, $startPos, $j - $startPos ) );
Böylelikle aynı üyelik sistemiyle çalışan birbirinden bağımsız sitelerimizi elde etmiş olacağız, yukarıdaki tabloların içinde görüleceği gibi sistemimizde community builder bileşeninin kullanılmış olduğunu görmekteyiz, eğer sisteme kurulu değilse buna ait kod satırlarını yukarıdaki örneğimizden silmelisiniz, ancak anlatımın orjinali böyle geçtiğinden her sitemize bu bileşenin kurulması sonuç olarak daha olumlu olabileceğini düşünüyorum. Umarım bu çeviri ile beraber arzu edilen çoklu siteleri birbirine bağlama olayı gerçekleşmiş ve çalışıyor olacaktır, bu makale bire bir çeviri olup anlatımın orjinaline aşağıdaki linkten ulaşabilirsiniz. Anlatıma kolaylık getirmek için detaylarda eklemiş olduğum kendi açıklamalarımda yer almaktadır, ayrıca bu anlatımın Joomla 1.0 üzerinde denenmiş olduğunu belirtmekte yarar var. Orijinal Kaynak: http://forum.joomla.org/viewtopic.php?t=99639





0 Yorum