pLayßoy
Altın Üye
Yetkililer Konuyu gerekli yere taşırlarsa sevinirim.
Alıntı yaparsanız lütfen ismimi belirtiniz.
JUGA konusunda eksiklik olduğunu gördüm.Umarım faydası olur. -firaton-
1.Juga bileşenini ve botunu indirin.
Module ihtiyacınız yok.Modul bir önceki versiyonda var.Eğer modülü kurarasnız size daha sonra anlatacagım”exclude” özelliğini kullanamazsınız.
2.Juga bileşen ve botunun install edin.(Klasik bileşen ve botta yaptıgınız gibi)
3.Bot u yayınlayın.
Sorun çıkmazsa 3a aşamasını atlayın!
3a.Bazı kullanılarda bot çalışmayabilir.Bunu gidermek için dizinin içerisindeki mambots/system/juga.system.php dosyasını editlememiz gerekiyor.Bot fonksiyonu tanımlamasının başındaki global command “$my” komutunu kaldırın ve global command’dan sonraki yeni satıra şu kodu yazın;
$my = $mainframe->getUser();
4. Juga component > Site Items Sync Buton ‘ a tıklayın
5.Başlıkların en üstündeki kutucuğu işaretleyin (bu hepsini seçecektir) ve üstteki default butonuna basın.Bu işaretlediğiniz konulara erişimlerinizi herkese açık hale getirecektir.
**eğer 30 dan fazla konu varsa sayfa altında Göster:50 seçip işlemi öyle gerçekleştiriniz.
5a. Juga bütün içeriği bileşenleri,görevleri bulamayacaktır bu yüzden önsayfadaki (front end) bütün linkleri ziyaret ederek kontrol etmeniz gerekiyor…(kızdırıcı ve can sıkıcı bir şey olduğunu biliyorum.) ya da aşagıdaki Test geliştirilme aşamasında.Deneyebilirsiniz
TEST:Eksik sayfalarınızı otomatik olarak düzeltiyor.
Test etmek istersek;
Mevcut juga.system.php açın içini komple silin ve aşağıdaki kodları dosyanıza yazın.(Yedegini alın,ve önce bir test sitesinde deneyin.Sorumluluk kabul etmiyorum)
********** Kod buradan başlıyor ************
<?php
/**
* Yazar: Fırat ÖNAL – www.firaton.com
* Updated by: firaton.
* @package JUGA - Joomla User Group Access
* @copyright Copyright (C) 2007 */
defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );
$_MAMBOTS->registerFunction( 'onAfterStart', 'botJuga' );
function botJuga () {
global $mosConfig_absolute_path, $mosConfig_live_site, $mainframe, $database;
$my = $mainframe->getUser();
$option = mosGetParam($_REQUEST, "option");
$task = mosGetParam($_REQUEST, "task");
$id = mosGetParam($_REQUEST, "id");
// grab default_juga / public access group
$database->setQuery("SELECT value FROM #__juga "
." WHERE `title` = 'default_juga' ");
$default_juga = $database->loadResult();
// check public_access
$query = "SELECT * "
. " FROM #__juga_g2i "
. " LEFT JOIN #__juga_items ON #__juga_g2i.item_id = #__juga_items.id "
. " WHERE #__juga_g2i.group_id = '$default_juga' "
. " AND #__juga_items.site_option = '$option' "
. " AND #__juga_items.site_task = '$task' "
. " AND #__juga_items.type_id = '$id' ";
$database->setQuery($query);
$public_access = $database->loadObjectList();
// if the item is public access/default_juga, then allow access
if (!$public_access) {
// check exclusion status
$query = "SELECT * "
. " FROM #__juga_items "
. " WHERE #__juga_items.option_exclude = '1' "
. " AND #__juga_items.site_option = '$option' ";
$database->setQuery($query);
$ex = $database->loadObjectList();
// if component is in excluded list, allow access
if ($ex) { $excluded_component = true; }
if (!$ex) {
// check user's access to content section/category
$section_access = false; // not supported yet
$cat_access = false; // not supported yet
// if user has access to section or category (and item is content), allow access
if (!($section_access || $cat_access)) {
// else, check the user's group, and allow/disallow access accordingly
// check user's access to file
$query = "SELECT * "
. "FROM #__juga_u2g n"
. "LEFT JOIN #__juga_g2i ON #__juga_g2i.group_id = #__juga_u2g.group_id n"
. "LEFT JOIN #__juga_items ON #__juga_g2i.item_id = #__juga_items.id n"
. "WHERE #__juga_items.site_option = '$option' "
. "AND #__juga_u2g.user_id = '$my->id' "
. "AND #__juga_items.site_task = '$task' "
. "AND #__juga_items.type_id = '$id' ";
$database->setQuery($query);
$access = $database->loadObjectList();
// ensure user has access to this item
if (!$access) {
// select the item's info
$query = "SELECT * "
. "FROM #__juga_items n"
. "WHERE #__juga_items.site_option = '$option' "
. "AND #__juga_items.site_task = '$task' "
. "AND #__juga_items.type_id = '$id' ";
$database->setQuery($query);
$juga_item = $database->loadObjectList();
// if the item (option & task combo) isn't in the db of juga_items
// add it
if (!$juga_item) {
if ($option == "com_content") { $juga_type = "cont"; } else { $juga_type = "com"; }
$juga_title = $mainframe->getPageTitle();
// $juga_title = ereg_replace ( "$mosConfig_sitename - ", '', $juga_title );
$query = "INSERT INTO #__juga_items "
."n SET `title` = '$juga_title',"
."n `site_option` = '$option',"
."n `site_task` = '$task',"
."n `type` = '$juga_type',"
."n `type_id` = '$id',"
."n `error_url_published` = '0',"
."n `error_url` = ''";
$database->setQuery($query);
$database->query();
// Since the juga item doesn't exist, create one for the default group access
//Get the id from the juga_item table row that's just been created
$query = "select id FROM #__juga_items WHERE type_id = '$id'";
$database->setQuery( $query );
$new_id = $database->loadResult();
// Add the default group access (public) to juga group item table
$query = "INSERT INTO #__juga_g2i "
."n SET `group_id` = '$default_juga',"
."n `item_id` = '$new_id'";
$database->setQuery($query);
$database->query();
// end if no juga_item
// See if we already have row(s) in the juga_g2i table already set for any group access?
$juga_item = $juga_item[0]->id;
$query = "select * FROM #__juga_g2i WHERE item_id = '$juga_item'";
$database->setQuery( $query );
$new_id = $database->loadResult();
if (!$new_id) {
// No, so we can go ahead and insert one with the default group access
$query = "INSERT INTO #__juga_g2i "
."n SET `group_id` = '$default_juga',"
."n `item_id` = '$juga_item'";
$database->setQuery($query);
$database->query(); }
// if error_url_published, redirect there, else go to homepage
if ( ($juga_item[0]->error_url_published == '1') && ($juga_item[0]->error_url) ) {
// redirect to custom error URL
mosRedirect( $juga_item[0]->error_url );
exit();
} else {
// redirect to the home page w/ a notice saying ERROR: Unauthorized Access.
mosRedirect( $mosConfig_live_site, "Information: You don't have Authorized Access to item:".$juga_item.". If you feel this is incorrect, contact your Administrator.");
exit();
}
} // end if no access
} // end if no access to section/category
} // end if not an excluded component
} // end if no public access
} // end function botJuga
?>
6. 5a.daki testi yapmak istemiyorsanız ön sayfanızdaki bulabildiğiniz bütün linkleri tıklayın.sonra Juga->Site Items e gidin ve yeni linkleri(açılmayan linkleri) (public görünüyor olsa dahi) secerek default butonuna basarak atamasını yapın.
7.Listeye bakın ve Juga dışında çalışmak istediğiniz linkleri içerikleri secin bunlar;Login bileşeni,payment bileşeni …v.s. olabilir.Bunların yanlarında bulunan yeşil renkteki click işaretlerine tıklayarak kırmızı çarpı haline getirin.Buna “Exclude” denir bu işaretlediğiniz alanların Juga sisteminin dışında kalmasını sağlar.

->Juga sisteminizin içinde olup olmaması gerekenler size kalmış bir durum.Ama benim tavsiyem login , logout , register işlemlerini dışarıda tutmanız.Aksi takdirde bu sistemleriniz sağlıklı çalışmayacaktır.
8.Juga -> Groups a gidin ve New(yeni) ye tıklayarak yeni bir grup oluşturun.
Mesela Üyeler. Şimdi iki grubumuz oldu biri genel erişim(public access) ve diğeri üyeler.
9.Juga->Config ye gidin “flex_juga”’ya tıklayarak değerini (value) “2” yapın.Bu size bazı kullanıcıları üyeler grubuna koymamızı sağlayacaktır.Grup id 2 ve biz 2 degerini giriyoruz.
Not:Üyeler gurubunun Değeri 2 olduğu için ve bizim seçtiğimiz üyeleri üyeler grubuna dahil etmek istediğimiz için “flex_juga” değerini 2 yapıyoruz.
10.Juga->Site Items e gidip hangi başlıkların sadece “üyeler” grubuna özel oldugunu seciyoruz.(Digerleri erişemez).
11.Seçtiğimiz öğeleri üstte bulunan “Flex+ “tuşu ile daha önce “flex_juga” da belirlediğimiz değere göre üyelik grubuna özel yapıyoruz.
**** “Flex +” tuşu o an hangi “flex_juga”’da üye grubu seçili ise onu seçtiğimiz başlığın özelliğine ekler ve o grup dışındakiler başlığa erişemez.”Flex - ” tuşu da verilen yetkiyi kaldırmak için kullanılır. Burada Flex değerlerini “Config” menüsünden değiştirerek istedigimiz üye grubunu atama ve silme işlemlerini yapabiliyoruz.
12.Şimdi Assing Users Group alanı na gidebilir ve üyelere grup ataması yapabiliriz.
Groups kolonundan hıza alarak istediğimiz üyenin hangi gruba gireceğini checkbox’tan secerek Groups kolon Adının sağ yanında bulunan ilk simgeye tıklayarak sectigimiz grubun ataması(enroll) , bir sonraki simgeye tıklayarak sectigimiz grubun silinmesi(Withdraw) yapılır.

Açıklama:
Default Juga:Varsayılan Grup seçimi value değerleri kullanılarak yapılır.
Default ce:Erişim yasaklı sayfanın gidecegi adres diyebiliriz.
Flex juga:Flex+ Flex- degeri verecegimiz yani grup ataması kaldırması yapacagımız degerlerin ayarlandıgı kısım.Valueler ile önceden hangi grubun degerini kaldıracagımız silecegimiz belirlenir.
Alıntı yaparsanız lütfen ismimi belirtiniz.
JUGA konusunda eksiklik olduğunu gördüm.Umarım faydası olur. -firaton-
1.Juga bileşenini ve botunu indirin.
Module ihtiyacınız yok.Modul bir önceki versiyonda var.Eğer modülü kurarasnız size daha sonra anlatacagım”exclude” özelliğini kullanamazsınız.
2.Juga bileşen ve botunun install edin.(Klasik bileşen ve botta yaptıgınız gibi)
3.Bot u yayınlayın.
Sorun çıkmazsa 3a aşamasını atlayın!
3a.Bazı kullanılarda bot çalışmayabilir.Bunu gidermek için dizinin içerisindeki mambots/system/juga.system.php dosyasını editlememiz gerekiyor.Bot fonksiyonu tanımlamasının başındaki global command “$my” komutunu kaldırın ve global command’dan sonraki yeni satıra şu kodu yazın;
$my = $mainframe->getUser();
4. Juga component > Site Items Sync Buton ‘ a tıklayın
5.Başlıkların en üstündeki kutucuğu işaretleyin (bu hepsini seçecektir) ve üstteki default butonuna basın.Bu işaretlediğiniz konulara erişimlerinizi herkese açık hale getirecektir.
**eğer 30 dan fazla konu varsa sayfa altında Göster:50 seçip işlemi öyle gerçekleştiriniz.

5a. Juga bütün içeriği bileşenleri,görevleri bulamayacaktır bu yüzden önsayfadaki (front end) bütün linkleri ziyaret ederek kontrol etmeniz gerekiyor…(kızdırıcı ve can sıkıcı bir şey olduğunu biliyorum.) ya da aşagıdaki Test geliştirilme aşamasında.Deneyebilirsiniz
TEST:Eksik sayfalarınızı otomatik olarak düzeltiyor.
Test etmek istersek;
Mevcut juga.system.php açın içini komple silin ve aşağıdaki kodları dosyanıza yazın.(Yedegini alın,ve önce bir test sitesinde deneyin.Sorumluluk kabul etmiyorum)
********** Kod buradan başlıyor ************
<?php
/**
* Yazar: Fırat ÖNAL – www.firaton.com
* Updated by: firaton.
* @package JUGA - Joomla User Group Access
* @copyright Copyright (C) 2007 */
defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );
$_MAMBOTS->registerFunction( 'onAfterStart', 'botJuga' );
function botJuga () {
global $mosConfig_absolute_path, $mosConfig_live_site, $mainframe, $database;
$my = $mainframe->getUser();
$option = mosGetParam($_REQUEST, "option");
$task = mosGetParam($_REQUEST, "task");
$id = mosGetParam($_REQUEST, "id");
// grab default_juga / public access group
$database->setQuery("SELECT value FROM #__juga "
." WHERE `title` = 'default_juga' ");
$default_juga = $database->loadResult();
// check public_access
$query = "SELECT * "
. " FROM #__juga_g2i "
. " LEFT JOIN #__juga_items ON #__juga_g2i.item_id = #__juga_items.id "
. " WHERE #__juga_g2i.group_id = '$default_juga' "
. " AND #__juga_items.site_option = '$option' "
. " AND #__juga_items.site_task = '$task' "
. " AND #__juga_items.type_id = '$id' ";
$database->setQuery($query);
$public_access = $database->loadObjectList();
// if the item is public access/default_juga, then allow access
if (!$public_access) {
// check exclusion status
$query = "SELECT * "
. " FROM #__juga_items "
. " WHERE #__juga_items.option_exclude = '1' "
. " AND #__juga_items.site_option = '$option' ";
$database->setQuery($query);
$ex = $database->loadObjectList();
// if component is in excluded list, allow access
if ($ex) { $excluded_component = true; }
if (!$ex) {
// check user's access to content section/category
$section_access = false; // not supported yet
$cat_access = false; // not supported yet
// if user has access to section or category (and item is content), allow access
if (!($section_access || $cat_access)) {
// else, check the user's group, and allow/disallow access accordingly
// check user's access to file
$query = "SELECT * "
. "FROM #__juga_u2g n"
. "LEFT JOIN #__juga_g2i ON #__juga_g2i.group_id = #__juga_u2g.group_id n"
. "LEFT JOIN #__juga_items ON #__juga_g2i.item_id = #__juga_items.id n"
. "WHERE #__juga_items.site_option = '$option' "
. "AND #__juga_u2g.user_id = '$my->id' "
. "AND #__juga_items.site_task = '$task' "
. "AND #__juga_items.type_id = '$id' ";
$database->setQuery($query);
$access = $database->loadObjectList();
// ensure user has access to this item
if (!$access) {
// select the item's info
$query = "SELECT * "
. "FROM #__juga_items n"
. "WHERE #__juga_items.site_option = '$option' "
. "AND #__juga_items.site_task = '$task' "
. "AND #__juga_items.type_id = '$id' ";
$database->setQuery($query);
$juga_item = $database->loadObjectList();
// if the item (option & task combo) isn't in the db of juga_items
// add it
if (!$juga_item) {
if ($option == "com_content") { $juga_type = "cont"; } else { $juga_type = "com"; }
$juga_title = $mainframe->getPageTitle();
// $juga_title = ereg_replace ( "$mosConfig_sitename - ", '', $juga_title );
$query = "INSERT INTO #__juga_items "
."n SET `title` = '$juga_title',"
."n `site_option` = '$option',"
."n `site_task` = '$task',"
."n `type` = '$juga_type',"
."n `type_id` = '$id',"
."n `error_url_published` = '0',"
."n `error_url` = ''";
$database->setQuery($query);
$database->query();
// Since the juga item doesn't exist, create one for the default group access
//Get the id from the juga_item table row that's just been created
$query = "select id FROM #__juga_items WHERE type_id = '$id'";
$database->setQuery( $query );
$new_id = $database->loadResult();
// Add the default group access (public) to juga group item table
$query = "INSERT INTO #__juga_g2i "
."n SET `group_id` = '$default_juga',"
."n `item_id` = '$new_id'";
$database->setQuery($query);
$database->query();
// end if no juga_item
// See if we already have row(s) in the juga_g2i table already set for any group access?
$juga_item = $juga_item[0]->id;
$query = "select * FROM #__juga_g2i WHERE item_id = '$juga_item'";
$database->setQuery( $query );
$new_id = $database->loadResult();
if (!$new_id) {
// No, so we can go ahead and insert one with the default group access
$query = "INSERT INTO #__juga_g2i "
."n SET `group_id` = '$default_juga',"
."n `item_id` = '$juga_item'";
$database->setQuery($query);
$database->query(); }
// if error_url_published, redirect there, else go to homepage
if ( ($juga_item[0]->error_url_published == '1') && ($juga_item[0]->error_url) ) {
// redirect to custom error URL
mosRedirect( $juga_item[0]->error_url );
exit();
} else {
// redirect to the home page w/ a notice saying ERROR: Unauthorized Access.
mosRedirect( $mosConfig_live_site, "Information: You don't have Authorized Access to item:".$juga_item.". If you feel this is incorrect, contact your Administrator.");
exit();
}
} // end if no access
} // end if no access to section/category
} // end if not an excluded component
} // end if no public access
} // end function botJuga
?>
6. 5a.daki testi yapmak istemiyorsanız ön sayfanızdaki bulabildiğiniz bütün linkleri tıklayın.sonra Juga->Site Items e gidin ve yeni linkleri(açılmayan linkleri) (public görünüyor olsa dahi) secerek default butonuna basarak atamasını yapın.
7.Listeye bakın ve Juga dışında çalışmak istediğiniz linkleri içerikleri secin bunlar;Login bileşeni,payment bileşeni …v.s. olabilir.Bunların yanlarında bulunan yeşil renkteki click işaretlerine tıklayarak kırmızı çarpı haline getirin.Buna “Exclude” denir bu işaretlediğiniz alanların Juga sisteminin dışında kalmasını sağlar.

->Juga sisteminizin içinde olup olmaması gerekenler size kalmış bir durum.Ama benim tavsiyem login , logout , register işlemlerini dışarıda tutmanız.Aksi takdirde bu sistemleriniz sağlıklı çalışmayacaktır.
8.Juga -> Groups a gidin ve New(yeni) ye tıklayarak yeni bir grup oluşturun.
Mesela Üyeler. Şimdi iki grubumuz oldu biri genel erişim(public access) ve diğeri üyeler.
9.Juga->Config ye gidin “flex_juga”’ya tıklayarak değerini (value) “2” yapın.Bu size bazı kullanıcıları üyeler grubuna koymamızı sağlayacaktır.Grup id 2 ve biz 2 degerini giriyoruz.
Not:Üyeler gurubunun Değeri 2 olduğu için ve bizim seçtiğimiz üyeleri üyeler grubuna dahil etmek istediğimiz için “flex_juga” değerini 2 yapıyoruz.
10.Juga->Site Items e gidip hangi başlıkların sadece “üyeler” grubuna özel oldugunu seciyoruz.(Digerleri erişemez).
11.Seçtiğimiz öğeleri üstte bulunan “Flex+ “tuşu ile daha önce “flex_juga” da belirlediğimiz değere göre üyelik grubuna özel yapıyoruz.
**** “Flex +” tuşu o an hangi “flex_juga”’da üye grubu seçili ise onu seçtiğimiz başlığın özelliğine ekler ve o grup dışındakiler başlığa erişemez.”Flex - ” tuşu da verilen yetkiyi kaldırmak için kullanılır. Burada Flex değerlerini “Config” menüsünden değiştirerek istedigimiz üye grubunu atama ve silme işlemlerini yapabiliyoruz.
12.Şimdi Assing Users Group alanı na gidebilir ve üyelere grup ataması yapabiliriz.
Groups kolonundan hıza alarak istediğimiz üyenin hangi gruba gireceğini checkbox’tan secerek Groups kolon Adının sağ yanında bulunan ilk simgeye tıklayarak sectigimiz grubun ataması(enroll) , bir sonraki simgeye tıklayarak sectigimiz grubun silinmesi(Withdraw) yapılır.

Açıklama:
Default Juga:Varsayılan Grup seçimi value değerleri kullanılarak yapılır.
Default ce:Erişim yasaklı sayfanın gidecegi adres diyebiliriz.
Flex juga:Flex+ Flex- degeri verecegimiz yani grup ataması kaldırması yapacagımız degerlerin ayarlandıgı kısım.Valueler ile önceden hangi grubun degerini kaldıracagımız silecegimiz belirlenir.