Forums / Developer / Saving ezxmltext through ajax

Saving ezxmltext through ajax

Author Message

Sao Tavi

Thursday 16 June 2011 12:37:16 pm

I tried to create something like an autosave feature for an ezxmltext, but I soon found out that it is not that easy to save the new data into the db in the correct format. I tried looking at ezxmltext datatype for getting help, but after several hours I gave up.

So... if I have in php the contents from a tiny mce editor and the contentObjectAttribute, how can I save them into the database in the right format?

What I did was either stripping the images or a lot of other things that were not right.

 

Oh, and just as a note: something strange happened, when trying to add images to the xml text I was getting some errors (like 'ez publish "A file is required for upload, no file were found.  No HTTP file found, cannot fetch uploaded file.') . Trying to find out the problems origins, without changing anything, it magically solved by itself after several tries and checking this on another ez publish install on the same server... Unfortunately, I cannot reproduce it.

PS: The redirection system is not good when using multiple tabs on the same ez publish installation. Maybe it should use post variables instead of cookies? I believe I should post this in the issues tracker.

Sao Tavi

Thursday 16 June 2011 2:54:24 pm

With a little bit of help, I found the answer eventually. It seems that I needed to use the parser from ezoe, it works with no problems now.

Here is the code used:

 

                $parser = new eZOEInputParser( );
                $parser->setParseLineBreaks( true );
                 
                if (!$document = $parser->process( $http->postVariable('val') ))
                    return 'failed to parse';
                 
                // Create XML structure
                $xmlString = eZXMLTextType::domString( $document );              

                $options['description']->setAttribute('data_text', $xmlString);
                $options['description']->store();

eZ debug

Timing: Jan 17 2025 23:46:11
Script start
Timing: Jan 17 2025 23:46:11
Module start 'content'
Timing: Jan 17 2025 23:46:11
Module end 'content'
Timing: Jan 17 2025 23:46:12
Script end

Main resources:

Total runtime0.9257 sec
Peak memory usage4,096.0000 KB
Database Queries189

Timing points:

CheckpointStart (sec)Duration (sec)Memory at start (KB)Memory used (KB)
Script start 0.00000.0064 590.2188180.8438
Module start 'content' 0.00640.7961 771.0625434.0625
Module end 'content' 0.80250.1231 1,205.1250333.7891
Script end 0.9256  1,538.9141 

Time accumulators:

 Accumulator Duration (sec) Duration (%) Count Average (sec)
Ini load
Load cache0.00420.4536210.0002
Check MTime0.00170.1877210.0001
Mysql Total
Database connection0.00100.102610.0010
Mysqli_queries0.863993.31631890.0046
Looping result0.00170.18441870.0000
Template Total0.899797.220.4498
Template load0.00200.212820.0010
Template processing0.897796.971320.4488
Template load and register function0.00010.014610.0001
states
state_id_array0.00080.086610.0008
state_identifier_array0.00070.076920.0004
Override
Cache load0.00170.1790230.0001
Sytem overhead
Fetch class attribute can translate value0.00120.132020.0006
Fetch class attribute name0.00460.499320.0023
XML
Image XML parsing0.00040.040020.0002
class_abstraction
Instantiating content class attribute0.00000.001020.0000
General
dbfile0.00230.2520210.0001
String conversion0.00000.000530.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
1node/view/full.tplfull/forum_topic.tplextension/sevenx/design/simple/override/templates/full/forum_topic.tplEdit templateOverride template
2content/datatype/view/ezxmltext.tpl<No override>extension/community_design/design/suncana/templates/content/datatype/view/ezxmltext.tplEdit templateOverride template
4content/datatype/view/ezxmltags/paragraph.tpl<No override>extension/ezwebin/design/ezwebin/templates/content/datatype/view/ezxmltags/paragraph.tplEdit templateOverride template
2content/datatype/view/ezxmltags/line.tpl<No override>design/standard/templates/content/datatype/view/ezxmltags/line.tplEdit templateOverride template
1pagelayout.tpl<No override>extension/sevenx/design/simple/templates/pagelayout.tplEdit templateOverride template
 Number of times templates used: 10
 Number of unique templates used: 5

Time used to render debug report: 0.0002 secs