<![CDATA[ [Wayfinder+YAMS] Filtering multilingual documents - My Forums]]> https://forums.modx.com/thread/?thread=45455 <![CDATA[Re: [Wayfinder+YAMS] Filtering multilingual documents]]> https://forums.modx.com/thread/45455/wayfinder-yams-filtering-multilingual-documents#dis-post-263005 Quote from: PMS at Nov 24, 2009, 09:29 AM

@MadeMyDay.

If you want to manage a single Ditto call, then rather than placing one copy in each language’s content field you could place it in a chunk, or you could place it directly in the document template.

@ddim

Don’t forget that if you have the appropriate ditto language files available you should also be able to add: &language=`(yams_mname)` to your call so that, for example, the ’no results’ text appears in the correct language.

Yes, of course, simply in this example I didn’t need the language, because it never returns ditto language texts. But this is specially important with pagination, dates formatting and so on.
I would say that it is good style to allways put &language=`(yams_mname)` in the call.

Below is an example of news listing, which formats the date according to the language:

[!Ditto? &id=`(yams_id)_listnews` &language=`(yams_mname)` &extenders=`@FILE assets/modules/yams/yams.extender.inc.php` &total=`10` &tpl=`listnews.dt` &orderBy=`datepublish DESC` &hideFolders=`1` &debug=`0` &dateSource=`pub_date` &dateFormat=`%d %B %Y`!]


May be a bit off topic, but one remark about the dates - to have proper date outputs, don’t forget to set the locales properly. With ditto this can be done in the language file. Add something like this to it:
 $loc = setlocale(LC_TIME, 'bg_BG.utf-8'); 



And related to the usage of "navigation" snippets like wayFinder and ditto - I’m trying to use them mainly inside templates. In very rare cases (like sitemap pages) I’m using such calls in the pages.

All the examples above can be seen in action at http://bbr.nitbg.com. In the next days this will be transferred to a live site at http://www.bbr.bg
]]>
ddim Nov 24, 2009, 03:41 AM https://forums.modx.com/thread/45455/wayfinder-yams-filtering-multilingual-documents#dis-post-263005
<![CDATA[Re: [Wayfinder+YAMS] Filtering multilingual documents]]> https://forums.modx.com/thread/45455/wayfinder-yams-filtering-multilingual-documents#dis-post-263004
If you want to manage a single Ditto call, then rather than placing one copy in each language’s content field you could place it in a chunk, or you could place it directly in the document template.

@ddim

Don’t forget that if you have the appropriate ditto language files available you should also be able to add: &language=`(yams_mname)` to your call so that, for example, the ’no results’ text appears in the correct language.]]>
PaulSuckling Nov 24, 2009, 03:29 AM https://forums.modx.com/thread/45455/wayfinder-yams-filtering-multilingual-documents#dis-post-263004
<![CDATA[Re: [Wayfinder+YAMS] Filtering multilingual documents]]> https://forums.modx.com/thread/45455/wayfinder-yams-filtering-multilingual-documents#dis-post-263003
&excludeDocs=`10,11,36,[[ComaDelimitedChildren? &startID=`[[UltimateParent]]` &tv=`available` &tvLang=`(yams_id)` &filter=`1,1`]]`


you will have a problem because in case the snippet returns nothing in the SQL query you will have something like: "... not in (10,11,36,)..." which will lead to SQL error.

To solve this, in the snippet add one more element to the array of IDs which can never be found. For example before the implode call add $out[]=’-1’:

....
$out[]='-1';
$output=implode(',',$out);
return $output;



]]>
ddim Nov 24, 2009, 03:26 AM https://forums.modx.com/thread/45455/wayfinder-yams-filtering-multilingual-documents#dis-post-263003
<![CDATA[Re: [Wayfinder+YAMS] Filtering multilingual documents]]> https://forums.modx.com/thread/45455/wayfinder-yams-filtering-multilingual-documents#dis-post-263002 MadeMyDay Nov 24, 2009, 03:22 AM https://forums.modx.com/thread/45455/wayfinder-yams-filtering-multilingual-documents#dis-post-263002 <![CDATA[Re: [Wayfinder+YAMS] Filtering multilingual documents]]> https://forums.modx.com/thread/45455/wayfinder-yams-filtering-multilingual-documents#dis-post-263001 Quote from: MadeMyDay at Nov 20, 2009, 04:52 PM

Hi ddim,

With ditto filters and using multilingual TVs this is not big issue.

how does your solution look like? Do you have different Ditto-calls for each language? Then it is no problem, but how would a solution look like when there is only one ditto call for both languages?

Thx for sharing!

Hi,
No I have single ditto calls. An example of filtering using the same TV is:

[!Ditto? &id=`(yams_id)_footer` &extenders=`@FILE assets/modules/yams/yams.extender.inc.php` &parents=`112` &total=`8` &tpl=`footer.dt` &tplCurrentDocument=`footer-current.dt` &tplLast=`footer-last.dt` &orderBy=`menuindex ASC` &filter=`hidemenu,1,2|available_(yams_id),1,1` &hideFolders=`0` &debug=`0`!]


see the second part of the filter "available_(yams_id),1,1"]]>
ddim Nov 24, 2009, 03:18 AM https://forums.modx.com/thread/45455/wayfinder-yams-filtering-multilingual-documents#dis-post-263001
<![CDATA[Re: [Wayfinder+YAMS] Filtering multilingual documents]]> https://forums.modx.com/thread/45455/wayfinder-yams-filtering-multilingual-documents#dis-post-263000
With ditto filters and using multilingual TVs this is not big issue.

how does your solution look like? Do you have different Ditto-calls for each language? Then it is no problem, but how would a solution look like when there is only one ditto call for both languages?

Thx for sharing!]]>
MadeMyDay Nov 20, 2009, 10:52 AM https://forums.modx.com/thread/45455/wayfinder-yams-filtering-multilingual-documents#dis-post-263000
<![CDATA[Re: [Wayfinder+YAMS] Filtering multilingual documents]]> https://forums.modx.com/thread/45455/wayfinder-yams-filtering-multilingual-documents#dis-post-262999
That’s great. Thank you very much for sharing!]]>
PaulSuckling Nov 17, 2009, 07:18 PM https://forums.modx.com/thread/45455/wayfinder-yams-filtering-multilingual-documents#dis-post-262999
<![CDATA[ [Wayfinder+YAMS] Filtering multilingual documents]]> https://forums.modx.com/thread/45455/wayfinder-yams-filtering-multilingual-documents#dis-post-262998 What I mean is to have the possibility to filter different documents in different languages.
This is specially important when creating navigation.
With ditto filters and using multilingual TVs this is not big issue.
With Wayfinder the only way to filter (I know) is to use &excludeDocs.
Here is (not very polished) snippet, which can be used for this:
There are some ideas, taken from other posts in this forum, sorry than I don’t give explicit credits to the people
<?php
/**
 * Return Coma Delimited Children
 * Created by Dimitar Dimitrov 2009
 * Call like so:
 * 
 * [!ComaDelimitedChildren? &startID=`start parent id` &depth=`depth in the document tree` &tv=`tv name` &tvLang=`lang id` &filter=`value,mode`!]
 * 
 * Mode can either be 1 or  2. Mode 1 is not equal and mode 2 is equal. [2]
 */
$startID = isset( $startID )? $startID: $modx -> documentObject['id'];
$tv = isset( $tv ) ? $tv : "";
$depth = isset( $depth ) ? $depth : "1";
$tvLang = isset( $tvLang ) ? $tvLang : "";
$tv=$tv.'_'.$tvLang;
$flt = explode( ',', $filter);
$value = $flt[0];
$filtertype = isset( $flt[1] ) ? $flt[1] : "2";
$ids = $modx->getChildIds($startID,$depth);
$out=array();
$condition='';
foreach ($ids as $id) {
	$condition='';
	$tvarray = $modx -> getTemplateVarOutput( $tv, $id, $published = 1 );
	$condition=$tvarray[$tv];
	if ( ($filtertype == 1) && ($condition != $value)) {
		$out[]= $id;
	}
	else if ( ($filtertype) == 2 && ($condition == $value) ) {
		$out[]= $id;
	}
}
$out[]='-1';
$output=implode(',',$out);
return $output;
?>

Then call like this:
[!Wayfinder? &startId=`3` &limit=`10` &excludeDocs=`[[ComaDelimitedChildren? &startID=`3` &tv=`available` &tvLang=`(yams_id)` &filter=`1,1`]]` &hideSubMenus=`TRUE` &outerTpl=`sub_menu_outer.wf` &rowTpl=`sub_menu.wf` &rowClass=`navButton` &hereClass=`currentSection` &lastClass=`last`!]


and radio or dropdown TVs with name available_en available_fr available_bg would allow the menu produced bu WF to be different per language.




]]>
ddim Nov 17, 2009, 08:10 AM https://forums.modx.com/thread/45455/wayfinder-yams-filtering-multilingual-documents#dis-post-262998