Hey Bruce,
I've looked at Modalizer yesterday together with Peter and it the short story is that it can't work with hotspots. To make it work, one will need to both modify modalizer and hotspots, which will introduce a tight coupling and hacks...
Here is what we discussed with Peter yesterday evening:
[10.08.2011 21:22:48] Daniel Dimitrov: hey Peter
[10.08.2011 21:22:57] Daniel Dimitrov: I'm looking at the modalizer "Problem"
[10.08.2011 21:23:14] Daniel Dimitrov: what event should I call and pass my content row to?
[10.08.2011 21:23:38] Peter van Westen (NoNumber!): erm...
[10.08.2011 21:23:38] Peter van Westen (NoNumber!): 1 sec
[10.08.2011 21:24:22] Peter van Westen (NoNumber!): onAfterRoute and onPrepareContent probably
[10.08.2011 21:24:37] Peter van Westen (NoNumber!): (onContentPrepare for J1.6+)
[10.08.2011 21:25:17] Peter van Westen (NoNumber!): not sure if onAfterRoute is necesary
[10.08.2011 21:25:53 | Edited 21:26:04] Peter van Westen (NoNumber!): maybe even:
onPrepareContent & onAfterDispatch & onAfterRender
[10.08.2011 21:40:03] Daniel Dimitrov: hm, I can't seem to get it to work
[10.08.2011 21:40:09] Daniel Dimitrov: I'll look at it tomorrow
[10.08.2011 21:40:12] Peter van Westen (NoNumber!): (worry)
[10.08.2011 21:40:15] Peter van Westen (NoNumber!): ok
[10.08.2011 21:40:23] Peter van Westen (NoNumber!): if you want me to play with it...
[10.08.2011 21:40:26] Daniel Dimitrov: do you see something wrong with this
[10.08.2011 21:40:27] Daniel Dimitrov: $article = new JObject();
$article->text = $descriptionSmall;
JPluginHelper::importPlugin( 'system' );
$dispatcher =& JDispatcher::getInstance();
$params = new JObject();
$dispatcher->trigger( 'onContentPrepare', array( 'hotspots',&$article,$params,0 ) );
echo $article->text;
die();
[10.08.2011 21:41:11] Daniel Dimitrov: he echo still outputs Google
[10.08.2011 21:41:28] Peter van Westen (NoNumber!): on J1.7?
[10.08.2011 21:41:49] Daniel Dimitrov: yes
[10.08.2011 21:42:05] Peter van Westen (NoNumber!): yeah, I see Modalizer doesn't even use the onContentPrepare (worry)
[10.08.2011 21:43:16] Peter van Westen (NoNumber!): $dispatcher->trigger( 'onContentPrepare', array( 'hotspots',&$article,$params,0 ) );
$dispatcher->trigger( 'onAfterDispatch' );
$dispatcher->trigger( 'onAfterRender' );
[10.08.2011 21:43:56] Daniel Dimitrov: without any params?
[10.08.2011 21:44:03] Daniel Dimitrov: only onAfterDispatch?
[10.08.2011 21:44:07] Peter van Westen (NoNumber!): yep
[10.08.2011 21:44:24] Peter van Westen (NoNumber!): all three
[10.08.2011 21:44:43 | Edited 21:44:57] Peter van Westen (NoNumber!): $article = new JObject();
$article->text = $descriptionSmall;
JPluginHelper::importPlugin( 'system' );
$dispatcher =& JDispatcher::getInstance();
$params = new JObject();
$dispatcher->trigger( 'onContentPrepare', array( 'hotspots',&$article,$params,0 ) );
$dispatcher->trigger( 'onAfterDispatch' );
$dispatcher->trigger( 'onAfterRender' );
echo $article->text;
die();
[10.08.2011 21:44:59] Daniel Dimitrov: nope, that doesn't work
[10.08.2011 21:45:04] Peter van Westen (NoNumber!): darn
[10.08.2011 21:45:08] Daniel Dimitrov: I'll look into it tomorrow
[10.08.2011 21:45:15] Daniel Dimitrov: I'm too tired to think right now
[10.08.2011 21:45:52] Peter van Westen (NoNumber!): $article = new JObject();
$article->text = $descriptionSmall;
JPluginHelper::importPlugin( 'system' );
$dispatcher =& JDispatcher::getInstance();
$params = new JObject();
$dispatcher->trigger( 'onAfterRoute' );
$dispatcher->trigger( 'onContentPrepare', array( 'hotspots',&$article,$params,0 ) );
$dispatcher->trigger( 'onAfterDispatch' );
$dispatcher->trigger( 'onAfterRender' );
echo $article->text;
die();
[10.08.2011 21:45:53] Peter van Westen (NoNumber!): ???
[10.08.2011 21:46:35] Daniel Dimitrov: still says modal
[10.08.2011 21:46:54] *** Daniel Dimitrov sent hotspots-2.0.4-pro.zip ***
[10.08.2011 21:46:55] Peter van Westen (NoNumber!): ok, I'll look into it tomorrow too
[10.08.2011 21:47:03] Daniel Dimitrov: in case you want to look into the code
[10.08.2011 21:47:19] Peter van Westen (NoNumber!): will do
[10.08.2011 21:47:25] Daniel Dimitrov: I'm calling the events for the popup in views/json/view.raw.php
[10.08.2011 21:47:35] Daniel Dimitrov: private function prepareHotsptos
[10.08.2011 21:47:36] Peter van Westen (NoNumber!): ok
[10.08.2011 22:31:54] Peter van Westen (NoNumber!): ok, found it
[10.08.2011 22:35:35] Daniel Dimitrov: isn't it also 22:35 in Holland?
[10.08.2011 22:35:40] Peter van Westen (NoNumber!): yep
[10.08.2011 22:35:42] Daniel Dimitrov: you need to stop working so late
[10.08.2011 22:35:57] Daniel Dimitrov: tell me, what is it?
[10.08.2011 22:35:57] Peter van Westen (NoNumber!): but don't think Modalizer is gonna work in hotspots
[10.08.2011 22:36:02] Daniel Dimitrov:
[10.08.2011 22:36:21] Daniel Dimitrov: because of the ajax thing
[10.08.2011 22:36:26] Peter van Westen (NoNumber!): because the modals work via javascript and need to get initialized on pageload
[10.08.2011 22:36:27] Daniel Dimitrov: and you need to load your js files
[10.08.2011 22:36:30] Daniel Dimitrov:
[10.08.2011 22:36:34] Daniel Dimitrov: yea
[10.08.2011 22:37:03] Daniel Dimitrov: well, I could add few lines
[10.08.2011 22:37:08 | Edited 22:37:14] Daniel Dimitrov: and call your plugin on page load
[10.08.2011 22:37:18] Peter van Westen (NoNumber!): yep, and they can't affect the content loaded by ajax/json
[10.08.2011 22:37:23] Daniel Dimitrov: ah
[10.08.2011 22:37:27] Daniel Dimitrov: now that is a problem
[10.08.2011 22:37:50] Daniel Dimitrov: damn, I don't want to write my own modalizer just for hotspots...
[10.08.2011 22:37:58] Peter van Westen (NoNumber!): yeah (worry)
[10.08.2011 22:38:16] Peter van Westen (NoNumber!): the modal links get initialized on pageload
[10.08.2011 22:38:48] Peter van Westen (NoNumber!): if you reinitialize them on hotspots load (if it is possible), links outside it would get initialized twice
[10.08.2011 22:39:31] Peter van Westen (NoNumber!): problem why Modalizer wasn't working, btw, was simply this in the Modalizer plugin:
if ( $docType != 'html' ) { return; }
[10.08.2011 22:41:52] Peter van Westen (NoNumber!):
$params = new JObject;
$article = new JObject();
$article->text = $descriptionSmall;
JPluginHelper::importPlugin('content');
JPluginHelper::importPlugin('system');
$dispatcher = JDispatcher::getInstance();
$dispatcher->trigger( 'onContentPrepare', array ('text', &$article, &$params, 0) );
$document =& JFactory::getDocument();
$document->setBuffer( $article->text, 'component' );
$dispatcher->trigger( 'onAfterDispatch' );
JResponse::setBody( $document->getBuffer( 'component' ) );
$dispatcher->trigger( 'onAfterRender' );
$descriptionSmall = JResponse::getBody();
[10.08.2011 22:42:04] Peter van Westen (NoNumber!): for if you want to use it
[10.08.2011 22:45:10] Peter van Westen (NoNumber!): gonna go to bed now
[10.08.2011 22:45:13] Peter van Westen (NoNumber!): g'night
So Bruce, better get Eliecer to tell you what the guys from ARI have done to make their script work with hotspots.
Kind regards,
Daniel