Forums / Developer / ezxmltext override with changes

ezxmltext override with changes

Author Message

Håkan Bergman

Monday 03 May 2010 5:37:53 am

Hello,

I got an article where user adds PDF-documents in the body text through links in the editor and are using the eznode://<nodeid> feature. The link however is not linking to the object in question but to another url where ezbinary.tpl is loaded with a proper download link.

I thought that I could easily change in link.tpl where I could just make a switch case to match type file and create a different a href to match content/download but I don't really understand how link.tpl is called, from where and where the data comes from.

Can anyone explain how I could do this in my link.tpl override for ezxmltext?

Best regards,

Håkan

Robin Muilwijk

Monday 03 May 2010 12:01:55 pm

Hi Håkan,

I might not have a solution for you but something similar crossed my path some time ago. This topic was related to getting a direct link to a file (download) to work. See http://share.ez.no/forums/setup-design/direct-link-to-a-file-on-image#comment56455, maybe the code and/or method used can help you.

Regards Robin

Board member, eZ Publish Community Project Board - Member of the share.ez.no team - Key values: Openness and Innovation.

LinkedIn: http://nl.linkedin.com/in/robinmuilwijk // Twitter: http://twitter.com/i_robin // Skype: robin.muilwijk

Håkan Bergman

Tuesday 04 May 2010 12:31:50 am

Hello Robin,

Thanks a lot for that link, I have now solved my problem!

The original code only printed the {$content} of every single URL but with that code I managed to tweak it.
This is content/datatype/ezxmltags/link.tpl file (overriden in my own extension)

{* Begin Code *}

---------------------------------------------------------------------------------------------------------------------------------------------------------

{* Define values we are checking for: type, content, attributes and URL *}

{def $protocols=array('http', 'file', 'ftp', 'mailto', 'https')
$mycontent = ""
$attribute = ""
$url = false()
}

{* Fetch content from path *}
{set $mycontent=fetch(content, node, hash(node_path, $href))}
{* Verify the path URL and identify the source *}
{switch match=$href}

{* If the path is a file object, print the direct URL to file for download *}
{case match=$mycontent.object.class_identifier|eq('file'))}
{set $attribute=$mycontent.data_map.file}
{set $url=concat( '/content/download/', $attribute.contentobject_id, '/', $attribute.id,'/version/', $attribute.version , '/file/', $attribute.content.original_filename|urlencode )}
<a href={$url|ezurl} target="_blank">{$attribute.object.name}</a>
{/case}

{* If no match was made, print the default URL link *}
{case}
<a href={$href|ezurl}
{if $id} id="{$id}"{/if}
{if $title} title="{$title}"{/if}
{if $target} target="{$target}"{/if}
{if $classification} class="{$classification|wash}"{/if}
{if and(is_set( $hreflang ), $hreflang)} hreflang="{$hreflang|wash}"{/if} >
{$content}
</a>
{/case}
{/switch}

---------------------------------------------------------------------------------------------------------------------------------------------------------
{* End Code *}

eZ debug

Timing: Jan 19 2025 06:05:29
Script start
Timing: Jan 19 2025 06:05:29
Module start 'content'
Timing: Jan 19 2025 06:05:29
Module end 'content'
Timing: Jan 19 2025 06:05:29
Script end

Main resources:

Total runtime0.1479 sec
Peak memory usage2,048.0000 KB
Database Queries141

Timing points:

CheckpointStart (sec)Duration (sec)Memory at start (KB)Memory used (KB)
Script start 0.00000.0068 588.9609180.8359
Module start 'content' 0.00680.0059 769.796997.8672
Module end 'content' 0.01270.1351 867.6641526.5234
Script end 0.1478  1,394.1875 

Time accumulators:

 Accumulator Duration (sec) Duration (%) Count Average (sec)
Ini load
Load cache0.00432.8912200.0002
Check MTime0.00130.8696200.0001
Mysql Total
Database connection0.00100.672010.0010
Mysqli_queries0.100668.00781410.0007
Looping result0.00120.81081390.0000
Template Total0.134791.010.1347
Template load0.00100.705710.0010
Template processing0.133690.329510.1336
Override
Cache load0.00070.453610.0007
Sytem overhead
Fetch class attribute can translate value0.00070.466510.0007
XML
Image XML parsing0.00040.298210.0004
General
dbfile0.00432.9307200.0002
String conversion0.00000.010230.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.0002 secs