From nielsmayer@gmail.com Tue Jul 15 02:33:07 2008 From: Niels Mayer To: xwiki-users@xwiki.org Subject: Re: [xwiki-users] Video Macro not working ? Date: Mon, 14 Jul 2008 17:32:57 -0700 Message-ID: <6fb2fb120807141732l2da95d25uf2ea855670a87617@mail.gmail.com> In-Reply-To: <486A37B1.6020904@usharesoft.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============4650992803077208141==" --===============4650992803077208141== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable I encountered similar problems with the WYSIWYG editor rewriting attachment or image URL's and causing errors. In your case wouldn't the problem be solved by adding your macro to the list of macros that the editor won't touch? Then the macros would never expand, and the foolishness inside tiny_mce that garbles all URL's into utter uselessness would never get invoked. The other approach is what i did, which is to side-step thhe URL-garbling in the first place. In my case, I solved it by setting up a special macro to launch the WYSIWYG with the correct parameters that appear to prevent this problem, along with a JavaScript hack that overrides the bad URL-rewriting behavior. Things work fine as long as references are "local" during editing/authoring in the wysiwyg. After "save" or "publishing" , (if that happens to move the location of attachments, etc), as long as references remain local, then things continue to work smoothly. The issue is that no amount of fiddling with setting of tiny_mce parameters relative_urls: or convert_urls: affects the bad wywsiwyg behavior. The only thing that seems to work is overriding the javascript function that causes all the bad behavior. There's ways of giving an additional parameter to tiny_mce to point it at a different convertURL() function, but since the parameter is not used consistently, it actually doesn't work. So at least for my 1.3.X based experiements, I was only able to achieve succcess w/ the tiny_mce wysiwyg by adding the following at the bottom of any form/document that uses the wysiwyg in this way: /* * HACK: Tell TinyMCE to leave-alone the URL's ... they are fine as-is.. as relative links * during edit in AssetTemp/xxxxxxx, and as permanent links in $wysi_publishSpace on save */ tinyMCE.convertURL =3D function(url, node, on_save) { return url; }; (above in context: http://fisheye2.atlassian.com/browse/~raw,r=3Dtrunk/xwiki/xwiki-products/curr= iki/trunk/wiki/src/main/resources/CreateResources/CurrikiStandardLessonPlan) Note the parameters I pass to tiny_mce are setup in the macros below: (from http://fisheye2.atlassian.com/browse/xwiki/xwiki-products/curriki/trunk/wiki/= src/main/resources/CreateResources/StyledMacros?r=3Dtrunk) ## ## Fire up the WYSIWYG editor. See http://next.dev.curriki.org/xwiki/templates/textarea_wysiwyg.vm ## This "inlines" #template("textarea_wysiwyg.vm") as it needs to customize the behavior ## Note that this makes reference to vars $xwiki, $request and is to be added at the end of ## forms to enable wysyiwyg editor javascript. ## ## Must be called in sequence ## #curriki_wysiwyg_loader_preamble() ## #curriki_wysiwyg_loader_editor() ## ... #macro(curriki_wysiwyg_loader_preamble) ## { #end ## } ... ## ## Must be called one or more times after #curriki_wysiwyg_loader_preamble() ## #macro(curriki_SLP_wysiwyg_loader_editor $thisEditor $thisAsset $pubSpace) ## { #end ## } On Tue, Jul 1, 2008 at 6:57 AM, James Weir wrote: > That seems to work now. > interesting though, when I add an http URL the first time it works fine; > however if I re-edit the page then the httpURL gets interpreted by the > Wiki and corrupts the link, for example > > if I add this: > #video(' > http://www.dailymotion.com/video/x5yyb9_sarkozy-en-off-sur-france-3_news') > > save the page and then later I re-edit the page the http link is saved as: > #video(' > http://www.dailymotion.com/video/x5yyb9_sarkozy-en-off-sur&= #45;france-3_news > ') > > > and an error is thrown: > > Error number 4001 in 4: Error while parsing velocity page > Tutorials.SAFTutorialBuild > Wrapped Exception: Failed to evaluate content with id SAFTutorial Build < > http://demo.usharesoft.com:8080/xwiki/bin/view/Tutorials/SAFTutorialBuild> > com.xpn.xwiki.XWikiException: Error number 4001 in 4: Error while parsing > velocity page Tutorials.SAFTutorialBuild > Wrapped Exception: Failed to evaluate content with id SAFTutorial Build < > http://demo.usharesoft.com:8080/xwiki/bin/view/Tutorials/SAFTutorialBuild> > at > com.xpn.xwiki.render.XWikiVelocityRenderer.evaluate(XWikiVelocityRenderer.j= ava:231) > at > com.xpn.xwiki.render.XWikiVelocityRenderer.render(XWikiVelocityRenderer.jav= a:93) > at > com.xpn.xwiki.render.DefaultXWikiRenderingEngine.renderText(DefaultXWikiRen= deringEngine.java:252) > at > com.xpn.xwiki.render.DefaultXWikiRenderingEngine.renderText(DefaultXWikiRen= deringEngine.java:176) > at > com.xpn.xwiki.render.DefaultXWikiRenderingEngine.renderText(DefaultXWikiRen= deringEngine.java:145) > at > com.xpn.xwiki.render.DefaultXWikiRenderingEngine.renderDocument(DefaultXWik= iRenderingEngine.java:134) > at > com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:423) > at com.xpn.xwiki.api.Document.getRenderedContent(Document.java:371) > at sun.reflect.GeneratedMethodAccessor328.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImp= l.java:25) > > ... partial exception, the rest has been removed > > > at java.lang.reflect.Method.invoke(Method.java:597) > > > I know there is a notion of {pre} that stops xwiki interpeting parts of > the page to stop this, however I was suprised that xwiki did this in a > macro. How can I stop this happening ? > > I have a more generic question; if you wish to use a widget in html as > part of the wiki, what is the best way to go about this ? Do you have > to create your own Macro ? or is there a way to tell xWkki to parse a > block as html ? > > Thanks > James > > > Vincent Massol wrote: > > Hi James, > > > > The person who wrote the installation tutorial was wrong. The way it > > was described doesn't work. > > I've updated the instructions. > > See http://code.xwiki.org/xwiki/bin/view/Macros/VideoMacroDownloads > > > > Thanks > > -Vincent > > > > On Jul 1, 2008, at 12:05 PM, James Weir wrote: > > > > > >> Hi, > >> > >> I have been trying to use the video macro [1] without much success. > >> > >> I followed the instructions to upload and import the xar file into my > >> xwiki. The import was successful. > >> > >> I then add the macro into the Velocity macros: > >> Administration: > >> Preferences->Advanced->Velocity Macro Pages I added: > >> Marcos.Video, > >> > >> I was then hoping to embed a video into my xwiki. Unfortunately all I > >> see is the text of the macro rather than the video, For example: > >> > >> #video('http://www.youtube.com/v/NEV2TnDUA-E&hl=3Den' > ); > >> > >> Any ideas on why this is not working ? > >> Thanks > >> James > >> > > _______________________________________________ > > users mailing list > > users(a)xwiki.org > > http://lists.xwiki.org/mailman/listinfo/users > > > > _______________________________________________ > users mailing list > users(a)xwiki.org > http://lists.xwiki.org/mailman/listinfo/users > --=20 Niels http://nielsmayer.com --===============4650992803077208141==--