Fork me on GitHub
"XOOPS ist ein dynamisches OO (Objekt Orientiertes) open source Portal Script geschrieben in PHP. XOOPS ist ein ideales CMS (Content Management System) für den Aufbau von kleineren und grösseren Communities, Firmen-, Intra- und Internet-Portale, Web-Logs und vieles mehr."
forum
Bitte schaut in die DOKUMENTATION oder benutzt die SUCHFUNKTION bevor Ihr Eure Fragen im Forum stellt. Viele Fragen wurden bereits gestellt.

Leser in diesem Thema:   1 Anonyme(r)




Status eines Block innerhalb einer dargestellten Seite?
#1
Benutzerinformationen
So eine ähnlich komplizierte Frage habe ich bereits auf xoops.org gestellt, aber keine zufriedenstellende Lösung bis jetzt gefunden/erhalten.

Hauptsächliches Problem sind die Blöcke, die ich innerhalb meines Moduls einsetze. 5 Blöcke davon nutzen denselben Javascript-Code (plus 2 Dateien des Moduls). Da ich (als Programmierer) nicht weiß, wo der Administrator der Webseite die Blöcke dargestellt haben will, bin ich mehr oder minder gezwungen dem Block jedes Mal die Javascript- und CSS-Dateien mitzugeben. Das hat zur Folge, dass Code mehrfach geladen wird und das hat weiterhin zur Folge, dass Javascript rumzickt.

Ich könnte es mir einfach machen und im readme zu schreiben, dass die und die Dateien mit in die theme.html eingebunden werden müssen. Das ist aber suboptimal, weil dann der Code immer mit eingebunden ist, auch wenn er nicht benötigt wird.

Der Versuch mit defines in den jeweiligen Dateien und die Abfrage if(defined...) hat nicht geklappt, weil die Reihenfolge wichtig ist, wie Blöcke und Inhalte gerendert werden. Das mit den defines klappt also nur teilweise.

Ich brauche also eine Art flag, womit angezeigt wird: ja, Javascript und CSS sind bereits geladen, also überspringe diesen Part. Anscheinend können Blöcke und Moduldateien untereinander nicht (oder nur partiell) miteinander kommunizieren.

Ich habe mir jetzt einen obskuren?? Weg programmiert und das Ganze über get_included_files gelöst. Dieser Array scheint immer zu funktionieren. Ich frage in jedem relevanten Block ab, ob eine bestimmte inkludierte Datei im Array vorhanden ist.

Ich frage mich: Gibt es nix Schöneres?

In der Hoffnung mich klar ausgedrückt zu haben, hoffe ich auf ein paar Hinweise.

Geschrieben: 28.09.2009
_________________
... is gone with the wind ...
Erstelle PDF des Beitrags Drucke

Aw:: Status eines Block innerhalb einer dargestellten Seite?
#2
Benutzerinformationen
Im ersten Augenblick dachte ich an "extgallery", weil das Modul auch Blöcke mit Javascript verwendet. Mir ist aber dann auch gleich eingefallen, das für die korrete Funktion dieser ganzen Effekte die Einbindung der "mootools" in die theme.html nötig ist.

Möglicherweise wirst du da doch nicht rum kommen. Ich hab zumindest keine bessere Idee.

Geschrieben: 28.09.2009
_________________
if(ahnung == 0) {use SEARCH; use BRAIN; use GOOGLE; } else {make post;}
Wie man Fragen richtig stellt
Erstelle PDF des Beitrags Drucke

Aw:: Status eines Block innerhalb einer dargestellten Seite?
#3
Benutzerinformationen
joachim, blöde Nachfrage eines Nichtprogrammierers: wenn der webmaster deine 5 blöcke nun auf der Startseite zeigen will (also ohne, das Du die Möglichkeit hast, üder den modulheader in die theme.html zu schreiben), du also quasi 5 mal das gleiche js laden lässt, wird das denn dann eh' nicht nur 1 mal ausgeführt (für alle blöcke)? Oder werden Pfade per js übergeben? Kannst Du nicht einfach für jeden Block ein "eigenes js" will sagen eine block1.js, block2.js, blockx.js laden? Ist dieses "x" nicht über eine smarty zu ersetzen block< { bxID } >.js und/oder kann das js nicht nach diesem Schema dann "generiert" werden, wenn die jew. Blöcke aktiv sind? Grundsätzlich hasse ich ja js- aber vorallem css-Lade-aufrufe innerhalb des < body > weswegen ich grundsätzlich nix dagegen hätte, im Zweifelsfall eine readme zu lesen

Geschrieben: 28.09.2009
_________________
XOOPSFACTORY.COM - my XOOPS playground
Erstelle PDF des Beitrags Drucke

Aw:: Status eines Block innerhalb einer dargestellten Seite?
#4
Benutzerinformationen
Die erwähnten 5 Blöcke benutzen alle die jquery fancybox um die Player innerhalb der Seite darzustellen, also muss ich das gleiche Javascript verwenden.

Wenn ich das gleiche Javascript mehrfach laufen habe, gibt es so lustige Effekte wie verdoppelte divs bei dem Fenster, die sich auch noch genau über den Inhalt legen.

Ab 2.4 gibt es ja die Möglichkeit über addScript die Skripte an die Datei-URL zu hängen, bringt mich aber nicht nach vorn, da auch hier die gleichen Skripte mehrfach eingebunden werden.

Es fehlt also ein blockübergreifendes Flag über das die Blöcke und Moduldateien Informationen austauschen können.

Wie gesagt: get_included_files ist bis jetzt die einzige Möglichkeit die ich gefunden habe, die global funktioniert. Über Sessions und Cookies wüsste ich jetzt auch nicht, wie ich mein Problem lösen könnte.

Geschrieben: 29.09.2009
_________________
... is gone with the wind ...
Erstelle PDF des Beitrags Drucke

Aw:: Status eines Block innerhalb einer dargestellten Seite?
#5
Benutzerinformationen
Habe es jetzt auch mit den defines hinbekommen. Rein zufällig, da get_included_files nur bei einer Datei funktioniert hat und bei der anderen nicht.

Wenn ein define-Flag in einem Block gesetzt wird, dann kann dies ruhig in der Funktion geschehen. Wenn ein define-Flag in einer Moduldatei gesetzt wird, dann muss dies BEVOR xoopsroot / header.php eingebunden wird.

Hätt mir ja mal einer vorher sagen können!

KÄSEKUCHEN: oben genannte Vorgehensweise klappt nur mit einem Block. Ein Block der danach kommt, kennt das define vom vorherigen Block nicht mehr. Naja, wat soll et...

Geschrieben: 29.09.2009

Bearbeitet von frankblack am 29.09.2009 15:50:56
Grund:
_________________
... is gone with the wind ...
Erstelle PDF des Beitrags Drucke

Aw:: Status eines Block innerhalb einer dargestellten Seite?
#6
Benutzerinformationen
experimeniere mal mit $GLOBALS

Geschrieben: 29.09.2009
Erstelle PDF des Beitrags Drucke

Aw:: Status eines Block innerhalb einer dargestellten Seite?
#7
Benutzerinformationen
Tut es auch nicht! Die im Block definierte Variable kann ich ausgeben, die in der Moduldatei definierte Variable nicht.

ghia auf xoops.org meinte, dass es mit der Reihenfolge zusammenhängt in der die Skripte abgearbeitet werden.

Hilft mir nur nix. Modulentwickler können/sollen den Themeentwicklern nicht vorschreiben, in welcher Reihenfolge die Inhalte gerendert werden.

Geschrieben: 30.09.2009
_________________
... is gone with the wind ...
Erstelle PDF des Beitrags Drucke







[Erweiterte Suche]


Fehler
Warnung: syntax error, unexpected END_OF_LINE, expecting '=' in /var/www/clients/client1/web3/security/myxoops/xoops_data/configs/xoRewriteHtaccess.ini.php on line 13 in Datei /class/smarty/xoops_plugins/xoSmartyFunctions.php Zeile 32
Warnung: array_key_exists() expects parameter 2 to be array, boolean given in Datei /class/smarty/xoops_plugins/xoSmartyFunctions.php Zeile 34
Warnung: XoSmartyPlugin : section [xoRewriteHtaccess] does not exist in /configs/xoRewriteHtaccess.ini.php in Datei /class/smarty/xoops_plugins/xoSmartyFunctions.php Zeile 42
abgelehnt
Abfragen
0.000125 - SET NAMES 'utf8'
0.000072 - SET SQL_BIG_SELECTS = 1
0.000134 - SELECT * FROM config WHERE (conf_modid = '0' AND conf_catid = '1') ORDER BY conf_order ASC
0.000305 - SELECT sess_data, sess_ip FROM session WHERE sess_id = 's8sjrej0hl9ldh37f9ttm6r433'
0.000084 - SELECT * FROM modules WHERE dirname = 'newbb'
0.000075 - SELECT COUNT(*) FROM group_permission WHERE (gperm_modid = '1' AND (gperm_groupid = '3') AND gperm_name = 'module_read' AND gperm_itemid = '2')
0.000129 - SELECT * FROM config WHERE (conf_modid = '2') ORDER BY conf_order ASC
0.000092 - SELECT * FROM modules WHERE dirname = 'protector'
0.000219 - DELETE FROM protector_access WHERE expire < UNIX_TIMESTAMP()
0.000327 - SELECT COUNT(*) FROM protector_access WHERE ip='23.22.204.36' AND request_uri='/forum/viewtopic.php?viewmode=flat&order=ASC&topic_id=11681&forum=8&move=prev'
0.000185 - SELECT COUNT(*) FROM protector_access WHERE ip='23.22.204.36'
0.000221 - INSERT INTO protector_access SET ip='23.22.204.36',request_uri='/forum/viewtopic.php?viewmode=flat&order=ASC&topic_id=11681&forum=8&move=prev',expire=UNIX_TIMESTAMP()+'60'
0.000147 - SELECT * FROM modules WHERE dirname = 'xoopspoll'
0.000075 - SELECT * FROM modules WHERE dirname = 'umfrage'
0.006567 - SELECT * FROM bb_topics WHERE 1=1 AND forum_id=8 AND topic_id <11681 ORDER BY topic_id DESC LIMIT 1
0.000103 - SELECT * FROM bb_forums WHERE forum_id = '8'
0.000109 - SELECT * FROM group_permission WHERE (gperm_modid = '2' AND gperm_name = 'category_access')
0.000170 - SELECT * FROM group_permission WHERE (gperm_modid = '2' AND gperm_name = 'forum_access')
0.000241 - SELECT * FROM group_permission WHERE (gperm_modid = '2' AND gperm_name = 'forum_view')
0.003033 - SELECT COUNT(*) FROM `bb_posts` WHERE (topic_id = '11647' AND approved = '1')
0.687701 - SELECT p.*, t.* FROM bb_posts p, bb_posts_text t WHERE p.topic_id=11647 AND p.post_id = t.post_id AND p.approved = 1 ORDER BY p.post_id ASC LIMIT 0, 10
0.004132 - UPDATE bb_topics SET topic_views = topic_views + 1 WHERE topic_id =11647
0.000189 - SELECT * FROM config WHERE (conf_modid = '0' AND conf_catid = '3') ORDER BY conf_order ASC
0.000088 - SELECT DISTINCT gperm_itemid FROM group_permission WHERE gperm_name = 'block_read' AND gperm_modid = 1 AND gperm_groupid IN (3)
0.000079 - SELECT b.* FROM newblocks b, block_module_link m WHERE m.block_id=b.bid AND b.isactive=1 AND b.visible=1 AND m.module_id IN (0,2) AND b.bid IN (31,30,29,28,27,26,25,24,23,22,21,18,17,16,49,15,14,13,10,7,5,3,2,20,19,48,38,37,36,41,40,35,45,44,46,47,50,51,52) ORDER BY b.weight, m.block_id
0.004782 - DELETE FROM lastseen WHERE (uid<1 AND time<=1414043275) OR (uid>0 AND time<=1413438775)
0.000259 - UPDATE lastseen SET online=0 WHERE uid>0 AND time< 1414043275
0.000082 - SELECT * FROM modules WHERE dirname = 'onlinehistory'
0.000073 - SELECT * FROM config WHERE (conf_modid = '7') ORDER BY conf_order ASC
0.005208 - SELECT count(uid) as cuid FROM lastseen WHERE uid=0 AND ip='23.22.204.36'
0.001102 - UPDATE lastseen SET time = 1414043575, ip='23.22.204.36' ,uagent='CCBot/2.0 (http://commoncrawl.org/faq/)', username='Besucher', module=2, online=1 WHERE uid=0 AND ip='23.22.204.36'
0.000829 - SELECT COUNT(uid) as count FROM lastseen WHERE (online > '0' AND uid > '-1')
0.002913 - DELETE FROM bb_online WHERE online_updated < 1414043275
0.003939 - DELETE FROM online WHERE online_updated < 1414043275
0.000534 - SELECT COUNT(*) FROM online WHERE online_uid=0 AND online_ip='23.22.204.36'
0.000311 - UPDATE online SET online_updated=1414043575, online_module = 2 WHERE online_uid = 0 AND online_ip='23.22.204.36'
0.000165 - SELECT COUNT(*) FROM bb_online WHERE online_uid=0 AND online_ip='23.22.204.36'
0.000483 - UPDATE bb_online SET online_updated= '1414043575', online_forum = '8', online_topic = '11647' WHERE online_uid = 0 AND online_ip='23.22.204.36'
0.005017 - DELETE FROM bb_online WHERE ( online_uid > 0 AND online_uid NOT IN ( SELECT online_uid FROM online WHERE online_module =2 ) ) OR ( online_uid = 0 AND online_ip NOT IN ( SELECT online_ip FROM online WHERE online_module =2 AND online_uid = 0 ) )
0.002739 - SELECT * FROM bb_online WHERE online_topic = '11647'
0.000098 - SELECT * FROM bb_type WHERE type_id = '3'
0.000072 - SELECT cat_title, cat_id FROM bb_categories WHERE cat_id = '2'
0.000120 - SELECT * FROM group_permission WHERE (gperm_modid = '2' AND gperm_name = 'forum_post')
0.000122 - SELECT * FROM group_permission WHERE (gperm_modid = '2' AND gperm_name = 'forum_reply')
0.009231 - SELECT * FROM `users` WHERE uid IN (10097,7492,8828,8758)
0.000096 - SELECT * FROM smiles
0.000282 - SELECT online_uid FROM bb_online WHERE online_uid IN (7492, 8758, 8828, 10097)
0.000101 - SELECT * FROM ranks
0.020816 - SELECT user_digests, uid FROM bb_user_stats WHERE uid IN( 7492, 8758, 8828, 10097)
0.000772 - SELECT * FROM group_permission WHERE (gperm_modid = '2' AND gperm_name = 'forum_edit')
0.000158 - SELECT * FROM group_permission WHERE (gperm_modid = '2' AND gperm_name = 'forum_delete')
0.000130 - SELECT * FROM group_permission WHERE (gperm_modid = '2' AND gperm_name = 'forum_reply')
0.000171 - SELECT * FROM group_permission WHERE (gperm_modid = '2' AND gperm_name = 'forum_edit')
0.000415 - SELECT * FROM group_permission WHERE (gperm_modid = '2' AND gperm_name = 'forum_delete')
0.000159 - SELECT * FROM group_permission WHERE (gperm_modid = '2' AND gperm_name = 'forum_reply')
0.000288 - SELECT * FROM group_permission WHERE (gperm_modid = '2' AND gperm_name = 'forum_edit')
0.000196 - SELECT * FROM group_permission WHERE (gperm_modid = '2' AND gperm_name = 'forum_delete')
0.001877 - SELECT * FROM group_permission WHERE (gperm_modid = '2' AND gperm_name = 'forum_reply')
0.000158 - SELECT * FROM group_permission WHERE (gperm_modid = '2' AND gperm_name = 'forum_edit')
0.000188 - SELECT * FROM group_permission WHERE (gperm_modid = '2' AND gperm_name = 'forum_delete')
0.000187 - SELECT * FROM group_permission WHERE (gperm_modid = '2' AND gperm_name = 'forum_reply')
0.000134 - SELECT * FROM group_permission WHERE (gperm_modid = '2' AND gperm_name = 'forum_edit')
0.000116 - SELECT * FROM group_permission WHERE (gperm_modid = '2' AND gperm_name = 'forum_delete')
0.000127 - SELECT * FROM group_permission WHERE (gperm_modid = '2' AND gperm_name = 'forum_reply')
0.000141 - SELECT * FROM group_permission WHERE (gperm_modid = '2' AND gperm_name = 'forum_edit')
0.000115 - SELECT * FROM group_permission WHERE (gperm_modid = '2' AND gperm_name = 'forum_delete')
0.000128 - SELECT * FROM group_permission WHERE (gperm_modid = '2' AND gperm_name = 'forum_reply')
0.000142 - SELECT * FROM group_permission WHERE (gperm_modid = '2' AND gperm_name = 'forum_edit')
0.000118 - SELECT * FROM group_permission WHERE (gperm_modid = '2' AND gperm_name = 'forum_delete')
0.000139 - SELECT * FROM group_permission WHERE (gperm_modid = '2' AND gperm_name = 'forum_reply')
0.000101 - SELECT * FROM modules WHERE dirname = 'xoopspoll'
0.000141 - SELECT * FROM group_permission WHERE (gperm_modid = '2' AND gperm_name = 'forum_addpoll')
0.000159 - SELECT * FROM group_permission WHERE (gperm_modid = '2' AND gperm_name = 'forum_addpoll')
0.000246 - SELECT * FROM group_permission WHERE (gperm_modid = '2' AND gperm_name = 'category_access')
0.000164 - SELECT `cat_id`, `cat_order`, `cat_title` FROM `bb_categories` WHERE cat_id IN (9, 20, 12, 17, 19, 21, 2) ORDER BY cat_order ASC
0.000259 - SELECT * FROM group_permission WHERE (gperm_modid = '2' AND gperm_name = 'forum_reply')
Zusammen: 76
Blöcke
Online Historie Zählblock: nicht zwischengespeichert
Zusammen: 1
Extras
plugin smarty for xoops => xoRewriteModule : Loaded
plugin smarty for xoops => xoRewriteModule : Loaded
inbegriffene Dateien: 158 Dateien
Speicher: 12535552 bytes
Zeitmessung
XOOPS brauchte 1.557 Sekunden zum laden.
XOOPS Boot brauchte 0.030 Sekunden zum laden.
Module init brauchte 0.795 Sekunden zum laden.
XOOPS output init brauchte 0.052 Sekunden zum laden.
Module display brauchte 0.660 Sekunden zum laden.
Page rendering brauchte 0.018 Sekunden zum laden.