Sephirot
11.02.2007, 18:01
Hallo allerseits.
Nehmen wir mal das Beispiel RSS-Feeds, wie sie hier im Forum aktiviert sind. Die bekommt man immer im Browser zu sehen aber den Inhalt nur, wenn man auch als Gast Themen/Beiträge in dem jeweiligen Forum lesen kann. Doch da liegt das Problem! In Foren wo Gäste keinen Zutritt haben, sehen z.B. registrierte Benutzer dieses Icon und denken "cool, RSS-Feed, den werd ich gleich mal abonnieren" aber dann die Enttäuschung und Fragen, wieso der Feed leer ist, wenn man ihn anklickt.
Wäre es nicht angebracht die Links zu dem RSS-Feed in dem Beispiel erst gar nicht anzubieten, wenn man sie eh nicht lesen kann?
Mein erster Geh-Versuch in diese Richtung sah so aus:
$guestsfps = $vbulletin->db->query_read("
SELECT forumid, forumpermissions
FROM " . TABLE_PREFIX . "forumpermission
WHERE usergroupid = 1
");
while ($guestsfpt = $vbulletin->db->fetch_array($guestsfps))
{
$guestsfp["$guestsfpt[forumid]"] = $guestsfpt['forumpermissions'];
}
unset($guestsfpt);
$vbulletin->db->free_result($guestsfps);
function guestcanview($aForumID) {
return (($guestsfp["$forumid"] & $vbulletin->bf_ugp_forumpermissions['canview']) && ($guestsfp["$forumid"] & $vbulletin->bf_ugp_forumpermissions['canviewothers']))?true:false;
}
Wo platziere ich das SQL-Query am besten, daß ich es nicht immer wieder ausführen muß? Einmal reicht. Ein Cache quasi, den ich vorher prüfe, ob der Eintrag schon im Cache ist und wenn nicht, wird das Query ausgeführt.
p.s.
Das wär auch ein Vorschlag für kommende Versionen (vielleicht sogar noch für vB 3.6.5 ;)).
Nehmen wir mal das Beispiel RSS-Feeds, wie sie hier im Forum aktiviert sind. Die bekommt man immer im Browser zu sehen aber den Inhalt nur, wenn man auch als Gast Themen/Beiträge in dem jeweiligen Forum lesen kann. Doch da liegt das Problem! In Foren wo Gäste keinen Zutritt haben, sehen z.B. registrierte Benutzer dieses Icon und denken "cool, RSS-Feed, den werd ich gleich mal abonnieren" aber dann die Enttäuschung und Fragen, wieso der Feed leer ist, wenn man ihn anklickt.
Wäre es nicht angebracht die Links zu dem RSS-Feed in dem Beispiel erst gar nicht anzubieten, wenn man sie eh nicht lesen kann?
Mein erster Geh-Versuch in diese Richtung sah so aus:
$guestsfps = $vbulletin->db->query_read("
SELECT forumid, forumpermissions
FROM " . TABLE_PREFIX . "forumpermission
WHERE usergroupid = 1
");
while ($guestsfpt = $vbulletin->db->fetch_array($guestsfps))
{
$guestsfp["$guestsfpt[forumid]"] = $guestsfpt['forumpermissions'];
}
unset($guestsfpt);
$vbulletin->db->free_result($guestsfps);
function guestcanview($aForumID) {
return (($guestsfp["$forumid"] & $vbulletin->bf_ugp_forumpermissions['canview']) && ($guestsfp["$forumid"] & $vbulletin->bf_ugp_forumpermissions['canviewothers']))?true:false;
}
Wo platziere ich das SQL-Query am besten, daß ich es nicht immer wieder ausführen muß? Einmal reicht. Ein Cache quasi, den ich vorher prüfe, ob der Eintrag schon im Cache ist und wenn nicht, wird das Query ausgeführt.
p.s.
Das wär auch ein Vorschlag für kommende Versionen (vielleicht sogar noch für vB 3.6.5 ;)).