Időzóna: (GMT +1 óra) RSS - hozzászólások

Topiclist FX jogosultságokkal

Szerző
Üzenet
Mykee
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2005.08.29. Hétfő 1:00
Hozzászólások: 806
Hozzászólás Elküldve: 2012.08.09. 09:14    Hozzászólás témája: Topiclist FX jogosultságokkal
Hozzászólás az előzmény idézésével
Sziasztok!

A Topiclist FX lényege, hogy a topikok listáját csoportonként html fájlba menti, majd egy oldalon összegzi ezeket a HTML-eket.
A gondom az, hogy ezeket a listákat jogosultságokhoz szeretném kötni (valamilyen módon). Tehát ha egy vendégnek nincs jogosultsága egy fórumcsoportot megtekinteni, akkor azt a legenerált topiklistát se lássa. Tehát: a lista elkészül, és csoportonként megjelenik, de a vendég csak azt lássa, amihez van jogosultsága.
Arra gondoltam, hogy mivel HTML fájlokat generál le a mod, ezért a html listába tenném be ezt a lehetőséget. Érdekelne, hogy van olyan általános kód, ami egyszerűen a háttérben elvégzi a jogosultság kezelést? Tehát nem arra gondolok, hogy "ha U_ACP" vagy "Registered" használnék, hanem ahogyan a fórum táblázat megjelenítésénél is történik: csak azok jelennek meg a vendég előtt, amikre jogosultsága van. Tehát ezt szeretném a legenerált HTML-ekbe, vagy az egyedi oldalba valahogyan beépíteni.

Tudom, kissé zavaros voltam, de végülis arról van szó, hogy sok HTML egy oldalon, de egy-egy html csak akkor jelenjen meg, ha topikjogosultsága van hozzá. Tehát a html-eket párosítani a hozzá tartozó topikok jogosultságaihoz.

Találtam itt egy leírást és azon is gondolkodtam, hogy a HTML generálásakor egy ciklussal bele generálom a jogosultságokat (tehát azokat, akiknek nincs hozzáférése egy helyhez), de nincs ennél szebb megoldás?
http://startrekguide.com/community/viewtopic.php?f=50&t=15373

Köszönöm!

Felhasználó profiljának megtekintése Privát üzenet küldése
KillBill
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2007.03.26. Hétfő 5:42
Hozzászólások: 2237
Hozzászólás Elküldve: 2012.08.09. 17:16    Hozzászólás témája:
Hozzászólás az előzmény idézésével
A [ROOT]/topiclist.php fájlban van ez a rész

Kód:

while ($row = $db->sql_fetchrow($result))
{
   if (file_exists('topiclist/' . $row['forum_id'] . '.html'))
   {
      $template->assign_block_vars('topiclist_row', array(
         'TOPICS'   => file_get_contents('topiclist/' . $row['forum_id'] . '.html'),
      ));
      $topiclist_files_exist = 1;
   }
}


ez a sor elé

Kód:

$template->assign_block_vars('topiclist_row', array(


illeszd be ezt

Kód:

      if (!$auth->acl_gets('f_list', 'f_read', $row['forum_id']))
      {
         continue;
      }


Ha egy felhasználónak van joga látni vagy olvasni a fórumokat akkor kilistázza, ha viszont csak annak szeretnéd láthatóvá tenni aki kizárolag olvasási joggal bír akkor ezt a kódot illeszd be

Kód:

      if (!$auth->acl_get('f_read', $row['forum_id']))
      {
         continue;
      }

_________________
phpBB my addons: phpBB Arcade, [MODDB] phpBB Delete my registration, [RC] phpBB Invite
phpBB my Extensions: [RC] phpBB Arcade, [CDB] phpBB Delete my registration

Játék-világ - KillBill

Felhasználó profiljának megtekintése Privát üzenet küldése Felhasználó weblapjának megtekintése MSN Messenger
Mykee
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2005.08.29. Hétfő 1:00
Hozzászólások: 806
Hozzászólás Elküldve: 2012.08.09. 17:48    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Nagyon köszönöm, ez tényleg egyszerűbb, mint amin én törtem a fejem! Ismét tanultam. :-)

Bár tovább gondolva a dolgot, azon is agyaltam, hogy bár a lista jelenjen meg mindenkinek, de az elemei ne legyenek kattinthatók azoknak, akiknek semmilyen jogosultságuk nincs az adott topikra.
Ezzel meg az a probléma, hogy magát a hivatkozást kellene kigyepálni belőle az arra nem jogosultaknak.

Azon agyaltam, hogy készítek egy lekérdezést az adott fórumra, hogy melyik csoportokra van tiltás, aztán a kapott tömbből felsorolom az id-ket és azokra állítom be a tiltást, tehát a hivatkozás elé és mögé.
De a másik, amire gondoltam, hogy amit írtál: a kész html-ből halászom ki valahogy a linkeket és azt fogom jogosultságokhoz rendelni. Gondolom a continue előtt simán beolvastathatom a fájlt és kigyomlálhatom utána...

Ami miatt agyalok: a topik címeket szükséges lenne látni mindenkinek, de akik nem férhetnek hozzá, azoknak nem szabad kattinthatóvá válni. Sajnos azért van ez a macera, mert a nem jogosult rákattintott, és kapta az üzit, hogy nincs hozzáférése. Oké, vissza, és rákatt a következőre. Aztán a végén kissé frusztrált lett. Úgyhogy ezt akarom megakadályozni: amire van engedélye kattinthat, amire nincs, nem.

Tudom, ez nálam speciális eset, hogy vannak fórumok, amik el vannak rejtve bizonyos csoportok elől, de mégis szeretném, ha tudnák, hogy mi a topiklista, nehogy ugyanolyan nevű topikot nyissanak. Anno fent volt erre egy mod, ami a kereső alapján kiírta a hasonló nevű topikokat, de az felhizlalta az adatbázist, így kikapcsoltam és emellett döntöttem, hogy topiklista és nézzenek utána, van-e ilyen nevű topik? De belépni nem tudnak.

Felhasználó profiljának megtekintése Privát üzenet küldése
Mykee
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2005.08.29. Hétfő 1:00
Hozzászólások: 806
Hozzászólás Elküldve: 2012.08.09. 18:34    Hozzászólás témája:
Hozzászólás az előzmény idézésével
No a linkprobléma is megoldva :D

Ezt a részt módosítottam:

Kód:

while ($row = $db->sql_fetchrow($result))
{
   if (file_exists('topiclist/' . $row['forum_id'] . '.html'))
   {
      $template->assign_block_vars('topiclist_row', array(
         'TOPICS'   => file_get_contents('topiclist/' . $row['forum_id'] . '.html'),
      ));
      $topiclist_files_exist = 1;
   }
}


Erre:

Kód:

while ($row = $db->sql_fetchrow($result))
{
   if (file_exists('topiclist/' . $row['forum_id'] . '.html'))
   {
      if (!$auth->acl_gets('f_list', 'f_read', $row['forum_id']))
      {
    $template->assign_block_vars('topiclist_row', array(
         'TOPICS'   =>  strip_tags(file_get_contents('topiclist/' . $row['forum_id'] . '.html'), '<p><ul><li><b><strong><table><td><tr>'),
      ));
      } else {
    $template->assign_block_vars('topiclist_row', array(
         'TOPICS'   => file_get_contents('topiclist/' . $row['forum_id'] . '.html'),
      ));
    }
      $topiclist_files_exist = 1;
   }
}


Így végül a hivatkozásokat kiszedem azon topikokból, ahonnan le van tiltva.

Nagyon köszönöm a segítséged!!!

Felhasználó profiljának megtekintése Privát üzenet küldése
KillBill
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2007.03.26. Hétfő 5:42
Hozzászólások: 2237
Hozzászólás Elküldve: 2012.08.09. 22:35    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Szépítve:

Kód:


while ($row = $db->sql_fetchrow($result))
{
   if (file_exists('topiclist/' . $row['forum_id'] . '.html'))
   {
      $html = file_get_contents('topiclist/' . $row['forum_id'] . '.html');

      if (!$auth->acl_gets('f_list', 'f_read', $row['forum_id']))
      {
         $html = strip_tags($html, '<p><ul><li><b><strong><table><td><tr>');
      }

      $template->assign_block_vars('topiclist_row', array(
         'TOPICS' => $html,
      ));

      $topiclist_files_exist = 1;
   }
}

_________________
phpBB my addons: phpBB Arcade, [MODDB] phpBB Delete my registration, [RC] phpBB Invite
phpBB my Extensions: [RC] phpBB Arcade, [CDB] phpBB Delete my registration

Játék-világ - KillBill

Felhasználó profiljának megtekintése Privát üzenet küldése Felhasználó weblapjának megtekintése MSN Messenger
Mykee
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2005.08.29. Hétfő 1:00
Hozzászólások: 806
Hozzászólás Elküldve: 2012.08.10. 05:08    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Igen, így tényleg szebb! :D No innen látszik, ki a kezdő és a profi. :oops: :D
Köszönöm!!!

Aztán majd később töröm a fejem, hogyan írjam át ezt a modot, hogy minden reggel lefusson a frissítési része. Van egy másik mod, a User reminder, az használ ilyen script részt, át fogom böngészni, mert elég kényelmetlen egyesével és kézzel frissíteni a html oldalakat, ráadásul nem is mindet kell a listába felvenni. Anno írtam a szerzőnek, de ő meg végül annyiban hagyta, azóta is a kézimunka megy az admin felületen. Ezért nem szeretem annyira a kinti mod készítőket, mert sokszor csak fél munkát végeznek. (ld. Topic Passwordnél is a kereső nem lett megoldva, bár most, hogy belegondolok, a fentiek alapján átírhatnám...)

Felhasználó profiljának megtekintése Privát üzenet küldése
Hozzászólások megtekintése:  

Időzóna: (GMT +1 óra) RSS - hozzászólások
Nem készíthetsz új témákat ebben a fórumban.
Nem válaszolhatsz egy témára ebben a fórumban.
Nem módosíthatod a hozzászólásaidat a fórumban.
Nem törölheted a hozzászólásaidat a fórumban.
Nem szavazhatsz ebben fórumban.

Hirdetés
Hirdetés