Forums / Developer / How to get the URL of an object in chosen language version

How to get the URL of an object in chosen language version

Author Message

Jean-Luc Nguyen

Tuesday 03 November 2009 4:28:20 am

http://ez.no/fr/developer/forum/developer/how_to_get_url_of_an_object_in_chosen_language_version

As in Piotrek Karaƛ code example, both $node->urlAlias() returns same URL, but $node->name() returns localised node titles.

<?php
$node = eZContentObjectTreeNode::fetch( 67, 'pol-PL' ); //default lang
var_dump( $node->urlAlias() );
$node = eZContentObjectTreeNode::fetch( 67, 'eng-US' );
var_dump( $node->urlAlias() );
?>

http://www.acidre.com

Kristof Coomans

Saturday 07 November 2009 6:59:11 am

Hi Jean-Luc

Apparently the urlAlias() method does not take into account the language you fetched the node in. It completely relies on eZURLAliasML, which on its turn relies on eZContentLanguage and the prioritized language list as defined for your site access.

Although I did not try this, I think you can modify the prioritized language list, get the URL alias you want, and then restore the prioritized language list to its original value. Some code that might get you started:

$node = eZContentObjectTreeNode::fetch( 67, 'eng-US' );

$originalPrioritizedLanguages = eZContentLanguage::prioritizedLanguageCodes();
eZContentLanguage::setPrioritizedLanguages( array( 'eng-US' ) );
var_dump( $node->urlAlias() );
eZContentLanguage::setPrioritizedLanguages( $originalPrioritizedLanguages );

Let us know if that worked :)

independent eZ Publish developer and service provider | http://blog.coomanskristof.be | http://ezpedia.org

Jean-Luc Nguyen

Thursday 12 November 2009 3:50:26 am

Thanks Kristof,

I'll check that and tell you if it works.

http://www.acidre.com

Andy Caiger

Monday 28 December 2009 6:19:03 am

What I want to do is have the same URLs in all the different languages, basically turn off multilanguage URL aliases, or (to put it another way) force all siteaccesses to show the URL aliases for the main language. Do I have to write a custom method like the above or is there an easier way, like a setting somewhere, that will do this? Thanks!

EAB - Integrated Internet Success
Offices in England, France & China.
http://www.eab.co.uk http://www.eab-china.com http://www.eab-france.com

Pablo Pernot

Wednesday 19 May 2010 5:35:31 am

"

Hi Jean-Luc

Apparently the urlAlias() method does not take into account the language you fetched the node in. It completely relies on eZURLAliasML, which on its turn relies on eZContentLanguage and the prioritized language list as defined for your site access.

Although I did not try this, I think you can modify the prioritized language list, get the URL alias you want, and then restore the prioritized language list to its original value. Some code that might get you started:

$node = eZContentObjectTreeNode::fetch( 67, 'eng-US' );

$originalPrioritizedLanguages = eZContentLanguage::prioritizedLanguageCodes();
eZContentLanguage::setPrioritizedLanguages( array( 'eng-US' ) );
var_dump( $node->urlAlias() );
eZContentLanguage::setPrioritizedLanguages( $originalPrioritizedLanguages );

Let us know if that worked :)

"

hi Kristof, I have needed that and I can say now it works well. thanks

Pablo Pernot
http://www.smartview.fr
http://www.areyouagile.com

eZ debug

Timing: Jan 29 2025 13:31:44
Script start
Timing: Jan 29 2025 13:31:44
Module start 'content'
Timing: Jan 29 2025 13:31:44
Module end 'content'
Timing: Jan 29 2025 13:31:44
Script end

Main resources:

Total runtime0.1394 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.0083 588.1875180.7969
Module start 'content' 0.00830.0049 768.9844102.1172
Module end 'content' 0.01320.1261 871.1016530.2969
Script end 0.1393  1,401.3984 

Time accumulators:

 Accumulator Duration (sec) Duration (%) Count Average (sec)
Ini load
Load cache0.00332.3348200.0002
Check MTime0.00130.8987200.0001
Mysql Total
Database connection0.00171.251510.0017
Mysqli_queries0.096369.12221410.0007
Looping result0.00090.64521390.0000
Template Total0.125990.310.1259
Template load0.00070.523010.0007
Template processing0.125189.793910.1251
Override
Cache load0.00050.361710.0005
Sytem overhead
Fetch class attribute can translate value0.00070.467910.0007
XML
Image XML parsing0.00020.168010.0002
General
dbfile0.00775.5135200.0004
String conversion0.00000.004430.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