Forums / Developer / Import an eZXMLText custom tag with PHP

Import an eZXMLText custom tag with PHP

Author Message

Tom TOMHTML

Thursday 21 August 2008 12:54:49 pm

Hi,
I'm using eZ Publish 4.0 and I've to fill the eZXMLtext attribute of an object with HTML data. But I'm unable to add custom tags.

Example :

$mystring  = "Hello, this is <b>bold</b> and this is <XXX>a factbox</XXX>, ...";

$parser = new eZSimplifiedXMLInputParser( $contentObjectID, false, 0 );

$document = $parser->process( $mystring );

then I got that in the XMLtext attribute :

Hello, this is <strong>bold</strong> and this is a factbox, ...

Well, the parser converts the tag "B" into "STRONG" because of the public variable $InputTags in the class eZSimplifiedXMLInputParser. Take a look :

class eZSimplifiedXMLInputParser extends eZXMLInputParser
{
     var $InputTags = array(
          'b'       => array( 'name' => 'strong' ),
          ....

I've tried to redefine InputTags by adding "XXX" => array("name" => "factbox") but nothing happened.
Who can see a solution ?

And, afterwards, how to handle parameters of custom tags?
Let's say I've a custom tag named "img" with parameters "src" and "alt", my template file is OK and I'm able to create that custom tag in the editor (it appears as a blue rectangle) and when I publish it all is OK, the image is displayed as expected.
However, importing the following code with PHP fails miserably.

$mystring = "This is <b>bold</b> and that is an image : <img src="http://URLofAnImage" alt="alternative text" />";

Any idea?
Thanks in advance.



TOMHTML, French user of eZ Publish.

Tom TOMHTML

Friday 22 August 2008 9:18:59 am

OK, I've found the solution, thank you people :P

==>
The trick is to replace this:

$text = "lorem ipsum <img src='....' alt='...' /> dolor";

by that, with the PHP function or regular expression of your choice:

$text = "lorem ipsum <custom name='img' src='...' alt='...' /> dolor";

I hope this may help some.

PS: be careful with "width" attribute, it is already used by something else and it will be automatically fill with "100%", whatever the content of your attribute.



TOMHTML, French user of eZ Publish.

eZ debug

Timing: Jan 31 2025 01:20:29
Script start
Timing: Jan 31 2025 01:20:29
Module start 'content'
Timing: Jan 31 2025 01:20:29
Module end 'content'
Timing: Jan 31 2025 01:20:30
Script end

Main resources:

Total runtime0.2000 sec
Peak memory usage8,192.0000 KB
Database Queries141

Timing points:

CheckpointStart (sec)Duration (sec)Memory at start (KB)Memory used (KB)
Script start 0.00000.0063 589.1797370.2891
Module start 'content' 0.00630.0151 959.46881,001.5625
Module end 'content' 0.02140.1786 1,961.03133,892.9922
Script end 0.2000  5,854.0234 

Time accumulators:

 Accumulator Duration (sec) Duration (%) Count Average (sec)
Ini load
Load cache0.00472.3496200.0002
Check MTime0.00150.7286200.0001
Mysql Total
Database connection0.00050.259910.0005
Mysqli_queries0.100650.29931410.0007
Looping result0.00140.69191390.0000
Template Total0.178189.010.1781
Template load0.00080.420010.0008
Template processing0.177388.610210.1773
Override
Cache load0.00060.287510.0006
Sytem overhead
Fetch class attribute can translate value0.00190.940810.0019
XML
Image XML parsing0.00030.137510.0003
General
dbfile0.00653.2727200.0003
String conversion0.00000.001430.0000
Note: percentages do not add up to 100% because some accumulators overlap

CSS/JS files loaded with "ezjscPacker" during request:

CacheTypePacklevelSourceFiles
CSS0extension/community/design/community/stylesheets/ext/jquery.autocomplete.css
extension/community_design/design/suncana/stylesheets/scrollbars.css
extension/community_design/design/suncana/stylesheets/tabs.css
extension/community_design/design/suncana/stylesheets/roadmap.css
extension/community_design/design/suncana/stylesheets/content.css
extension/community_design/design/suncana/stylesheets/star-rating.css
extension/community_design/design/suncana/stylesheets/syntax_and_custom_tags.css
extension/community_design/design/suncana/stylesheets/buttons.css
extension/community_design/design/suncana/stylesheets/tweetbox.css
extension/community_design/design/suncana/stylesheets/jquery.fancybox-1.3.4.css
extension/bcsmoothgallery/design/standard/stylesheets/magnific-popup.css
extension/sevenx/design/simple/stylesheets/star_rating.css
extension/sevenx/design/simple/stylesheets/libs/fontawesome/css/all.min.css
extension/sevenx/design/simple/stylesheets/main.v02.css
extension/sevenx/design/simple/stylesheets/main.v02.res.css
JS0extension/ezjscore/design/standard/lib/yui/3.17.2/build/yui/yui-min.js
extension/ezjscore/design/standard/javascript/jquery-3.7.0.min.js
extension/community_design/design/suncana/javascript/jquery.ui.core.min.js
extension/community_design/design/suncana/javascript/jquery.ui.widget.min.js
extension/community_design/design/suncana/javascript/jquery.easing.1.3.js
extension/community_design/design/suncana/javascript/jquery.ui.tabs.js
extension/community_design/design/suncana/javascript/jquery.hoverIntent.min.js
extension/community_design/design/suncana/javascript/jquery.popmenu.js
extension/community_design/design/suncana/javascript/jScrollPane.js
extension/community_design/design/suncana/javascript/jquery.mousewheel.js
extension/community_design/design/suncana/javascript/jquery.cycle.all.js
extension/sevenx/design/simple/javascript/jquery.scrollTo.js
extension/community_design/design/suncana/javascript/jquery.cookie.js
extension/community_design/design/suncana/javascript/ezstarrating_jquery.js
extension/community_design/design/suncana/javascript/jquery.initboxes.js
extension/community_design/design/suncana/javascript/app.js
extension/community_design/design/suncana/javascript/twitterwidget.js
extension/community_design/design/suncana/javascript/community.js
extension/community_design/design/suncana/javascript/roadmap.js
extension/community_design/design/suncana/javascript/ez.js
extension/community_design/design/suncana/javascript/ezshareevents.js
extension/sevenx/design/simple/javascript/main.js

Templates used to render the page:

UsageRequested templateTemplateTemplate loadedEditOverride
1pagelayout.tpl<No override>extension/sevenx/design/simple/templates/pagelayout.tplEdit templateOverride template
 Number of times templates used: 1
 Number of unique templates used: 1

Time used to render debug report: 0.0001 secs