We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 5644
    • 78 Posts
    I download newwest version of Ditto and successfully install it. But, The reflect snippets shows the archive in English, and I need to translate the dates and Headers.Please tell me what files should I change?
    Thanks
      • 18397
      • 3,250 Posts
      Just add setlocale(LC_ALL, ’fr_FR’); to the top of the snippet where fr_ER is your language code.
        • 5644
        • 78 Posts
        But I am from Russia sad
          • 18397
          • 3,250 Posts
          Your language code should be ru_RU per the international standards.
            • 5644
            • 78 Posts
            Sorry for questiion, but what line i need to add?

            that is my code


            <?php
            /*
             * Title: Reflect Snippet
             * 
             * Description: 
             * 		Generates date based archives using Ditto
             * 
             * Author: 
             * 		Mark Kaplan for MODx CMF
             * 
             * Version: 
             * 		1.0.2
             * 
             * Note: 
             * 		If Reflect is not retrieving its own documents, make sure that the
             *			Ditto call feeding it has all of the fields in it that you plan on
             *       calling in your Reflect template. Furthermore, Reflect will ONLY
             *			show what is currently in the Ditto result set.
             *       Thus, if pagination is on it will ONLY show that page's items.
            */
             
            
            // ---------------------------------------------------
            //  Includes
            // ---------------------------------------------------
            
            $reflect_base = isset($reflect_base) ? $modx->config['base_path'].$reflect_base : $modx->config['base_path']."assets/snippets/reflect/";
            /*
            	Param: ditto_base
            	
            	Purpose:
            	Location of Ditto files
            
            	Options:
            	Any valid folder location containing the Ditto source code with a trailing slash
            
            	Default:
            	[(base_path)]assets/snippets/ditto/
            */
            setlocale(LC_ALL, 'ru_RU');
            $config = (isset($config)) ? $config : "default";
            /*
            	Param: config
            
            	Purpose:
             	Load a custom configuration
            
            	Options:
            	"default" - default blank config file
            	CONFIG_NAME - Other configs installed in the configs folder or in any folder within the MODx base path via @FILE
            
            	Default:
            	"default"
            	
            	Related:
            	- <extenders>
            */
            
            require((substr($config, 0, 5) != "@FILE") ? $reflect_base."configs/$config.config.php" : $modx->config['base_path'].trim(substr($config, 5)));
            
            
            
            // ---------------------------------------------------
            //  Parameters
            // ---------------------------------------------------
            
            $id = isset($id) ? $id."_" : false;
            /*
            	Param: id
            
            	Purpose:
            	Unique ID for this Ditto instance for connection with other scripts (like Reflect) and unique URL parameters
            
            	Options:
            	Any valid folder location containing the Ditto source code with a trailing slash
            
            	Default:
            	"" - blank
            */
            $getDocuments = isset($getDocuments) ? $getDocuments : 0;
            /*
            	Param: getDocuments
            
            	Purpose:
             	Force Reflect to get documents
            
            	Options:
            	0 - off
            	1 - on
            	
            	Default:
            	0 - off
            */
            $showItems = isset($showItems) ? $showItems : 1;
            /*
            	Param: showItems
            
            	Purpose:
             	Show individual items in the archive
            
            	Options:
            	0 - off
            	1 - on
            	
            	Default:
            	1 - on
            */
            $groupByYears = isset($groupByYears)? $groupByYears : 1;
            /*
            	Param: groupByYears
            
            	Purpose:
             	Group the archive by years
            
            	Options:
            	0 - off
            	1 - on
            	
            	Default:
            	1 - on
            */
            $targetID = isset($targetID) ? $targetID : $modx->documentObject['id'];
            /*
            	Param: targetID
            
            	Purpose:
             	ID for archive links to point to
            
            	Options:
            	Any MODx document with a Ditto call setup with extenders=`dateFilter`
            	
            	Default:
            	Current MODx Document
            */
            $dateSource = isset($dateSource) ? $dateSource : "createdon";
            /*
            	Param: dateSource
            
            	Purpose:
            	Date source to display for archive items
            
            	Options:
            	# - Any UNIX timestamp from MODx fields or TVs such as createdon, pub_date, or editedon
            	
            	Default:
            	"createdon"
            	
            	Related:
            	- <dateFormat>
            */
            $dateFormat = isset($dateFormat) ? $dateFormat : "%d-%b-%y %H:%M";	
            /*
            	Param: dateFormat
            
            	Purpose:
            	Format the [+date+] placeholder in human readable form
            
            	Options:
            	Any PHP valid strftime option
            
            	Default:
            	"%d-%b-%y %H:%M"
            	
            	Related:
            	- <dateSource>
            */
            $yearSortDir = isset($yearSortDir) ? $yearSortDir : "DESC";
            /*
            	Param: yearSortDir
            
            	Purpose:
             	Direction to sort documents
            
            	Options:
            	ASC - ascending
            	DESC - descending
            
            	Default:
            	"DESC"
            	
            	Related:
            	- <monthSortDir>
            */
            $monthSortDir = isset($monthSortDir) ? $monthSortDir : "ASC";
            /*
            	Param: monthSortDir
            
            	Purpose:
             	Direction to sort the months
            
            	Options:
            	ASC - ascending
            	DESC - descending
            
            	Default:
            	"ASC"
            	
            	Related:
            	- <yearSortDir>
            */
            $start = isset($start)? intval($start) : 0;
            /*
            	Param: start
            
            	Purpose:
             	Number of documents to skip in the results
            	
            	Options:
            	Any number
            
            	Default:
            	0
            */	
            $phx = (isset($phx))? $phx : 1;
            /*
            	Param: phx
            
            	Purpose:
             	Use PHx formatting
            
            	Options:
            	0 - off
            	1 - on
            	
            	Default:
            	1 - on
            */
            
            // ---------------------------------------------------
            //  Default Templates
            // ---------------------------------------------------
            
            $defaultTemplates['tpl'] = <<<TPL
            <h3>Archives</h3>
            <div class="reflect_archive_list">
            	[+archive_items+]
            </div>
            TPL;
            
            $defaultTemplates['year'] = <<<TPL
            <a href="[+url+]" title="[+year+]" class="reflect_year_link">[+year+]</a>
            TPL;
            
            $defaultTemplates['month'] = <<<TPL
            <a href="[+url+]" title="[+month+] [+year+]" class="reflect_month_link">[+month+]</a>
            TPL;
            
            $defaultTemplates['item'] = <<<TPL
            <a href="[~[+id+]~]" title="[+pagetitle+]" class="reflect_item_link">[+pagetitle+]</a> (<span class="reflect_date">[+date+]</span>)
            TPL;
            
            // ---------------------------------------------------
            //  Initialize Ditto
            // ---------------------------------------------------
            $placeholder = ($id != false && $getDocuments == 0) ? true : false;
            if ($placeholder === false) {
            	$rID = "reflect_".rand(1,1000);
            	$itemTemplate = isset($tplItem) ? $tplItem: "@CODE:".$defaultTemplates['item'];
            	$dParams = array(
            		"id" => "$rID",
            		"save" => "3",	
            		"summarize" => "all",
            		"dateFormat" => $dateFormat,
            		"dateSource" => $dateSource,
            		"tpl" => $itemTemplate,
            	);
            
            	if (isset($dittoSnippetParameters)) {
            		$givenParams = explode("|",$dittoSnippetParameters);
            
            		foreach ($givenParams as $parameter) {
            			$p = explode(":",$parameter);
            			$dParams[$p[0]] = $p[1];
            		}
            	}
            	/*
            		Param: dittoSnippetParameters
            
            		Purpose:
            	 	Pass parameters to the Ditto instance used to retreive the documents
            	
            		Options:
            		Any valid ditto parameters in the format name:value 
            		with multiple parameters separated by a pipe (|)
            
            		Default:
            		[NULL]
            	*/
            	$dittoSnippetName = isset($dittoSnippetName) ? $dittoSnippetName : "Ditto";
            	/*
            		Param: dittoSnippetName
            
            		Purpose:
            		Name of the Ditto snippet to use
            
            		Options:
            		Any valid snippet name
            
            		Default:
            		"Ditto"
            	*/
            	$modx->runSnippet($dittoSnippetName,$dParams);
            	$ditto = $modx->getPlaceholder($rID."_ditto_object");
            	$resource = $modx->getPlaceholder($rID."_ditto_resource");
            } else {
            	$ditto = $modx->getPlaceholder($id."ditto_object");
            	$resource = $modx->getPlaceholder($id."ditto_resource");
            }
            if (!is_object($ditto) || !isset($ditto) || !isset($resource)) {
            	return "The Ditto object is invalid. Please check it.";
            }
            
            // ---------------------------------------------------
            //  Templates
            // ---------------------------------------------------
            
            $templates['tpl'] = isset($tplContainer) ? $ditto->template->fetch($tplContainer): $defaultTemplates['tpl'];
            /*
            	Param: tplContainer
            
            	Purpose:
            	Container template for the archive
            
            	Options:
            	- Any valid chunk name
            	- Code via @CODE:
            	- File via @FILE:
            
            	Default:
            	(code)
            	<h3>Archives</h3>
            	<div class="reflect_archive_list">
            		[+archive_items+]
            	</div>
            */
            $templates['year'] = isset($tplYear) ? $ditto->template->fetch($tplYear): $defaultTemplates['year'];
            /*
            	Param: tplYear
            
            	Purpose:
            	Template for the year item (inside of li)
            
            	Options:
            	- Any valid chunk name
            	- Code via @CODE:
            	- File via @FILE:
            
            	Default:
            	(code)
            	<a href="[+url+]" title="[+year+]" class="reflect_year_link">[+year+]</a>
            */
            $templates['month'] = isset($tplMonth) ? $ditto->template->fetch($tplMonth): $defaultTemplates['month'];
            /*
            	Param: tplMonth
            
            	Purpose:
            	Template for the month item (inside of li)
            
            	Options:
            	- Any valid chunk name
            	- Code via @CODE:
            	- File via @FILE:
            
            	Default:
            	(code)
            	<a href="[+url+]" title="[+month+] [+year+]" class="reflect_month_link">[+month+]</a>
            */
            $templates['item'] = isset($tplItem) ? $ditto->template->fetch($tplItem): $defaultTemplates['item'];
            /*
            	Param: tplItem
            
            	Purpose:
            	Template for the individual item (inside of li)
            
            	Options:
            	- Any valid chunk name
            	- Code via @CODE:
            	- File via @FILE:
            
            	Default:
            	(code)
            	<a href="[~[+id+]~]" title="[+pagetitle+]" class="reflect_item_link">[+pagetitle+]</a> (<span class="reflect_date">[+date+]</span>)
            */
            
            $ditto->addField("date","display","custom");
            	// force add the date field if receiving data from a Ditto instance
            
            // ---------------------------------------------------
            //  Reflect
            // ---------------------------------------------------
            
            if (function_exists("reflect") === FALSE) {
            function reflect($archiveDocumentID, $showItems, $groupByYears, $resource, $archiveDateSource, $dateFormat, $ditto, $archive,$id,$start,$yearSortDir,$monthSortDir) {
            	global $modx;
            	$cal = array();
            	$output = '';
            	$build = array();
            	$stop = count($resource);
            
            	// loop and fetch all the results
            	for ($i = $start; $i < $stop; $i++) {
            		$date = getdate($resource[$i][$archiveDateSource]);
            		$year = $date["year"];
            		$month = $date["mon"];
            		$cal[$year][$month][] = $resource[$i];
            	}
            	if ($yearSortDir == "DESC") {
            		krsort($cal);
            	} else {
            		ksort($cal);
            	}
            	foreach ($cal as $year=>$months) {
            		if ($monthSortDir == "ASC") {
            			ksort($months);
            		} else {
            			krsort($months);
            		}
            		$build[$year] = $months;
            	}
            	$output .= '<ul class="reflect_archive">';
            	foreach ($build as $year=>$months) {
            		$year_url = $ditto->buildURL("year=".$year."&month=false&day=false&start=0",$archiveDocumentID,$id);
            		if ($groupByYears) $output .=  '<li class="reflect_year">'.str_replace(array("[+year+]","[+url+]"),array($year,$year_url),$archive['year'])."\n\n";	
            		foreach ($months as $mon=>$month) {
            			$month_text = $ditto->formatDate(mktime(10, 10, 10, $mon, 10, $year),"%B");
            			$month_url = $ditto->buildURL("month=".$mon."&year=".$year."&day=false&start=0",$archiveDocumentID,$id);
            			if ($groupByYears) $output .=  '<ul>';
            			$output .= '<li class="reflect_month">'.str_replace(array("[+year+]","[+month+]","[+url+]"),array($year,$month_text,$month_url),$archive['month'])."\n";
            			if ($showItems) {
            				$output .=  '<ul class="reflect_items">'."\n";
            				foreach ($month as $resource) {
            					$output .=  '<li class="reflect_item">'.$ditto->render($resource, $archive['item'], false, $archiveDateSource, $dateFormat, array(),$phx).'</li>';
            				}
            				$output .= '</ul>';
            			}
            			$output .= '</li>';
            			if ($groupByYears) $output .= '</ul>';
            		}
            		if ($groupByYears) $output .= '</li>';
            	}
            	$output .= '</ul>';
            return str_replace("[+archive_items+]",$output, $archive['tpl']);
            	
            }
            }
            
            return reflect($targetID, $showItems, $groupByYears, $resource, $dateSource, $dateFormat, $ditto, $templates,$id,$start,$yearSortDir,$monthSortDir);
            ?>
              • 5644
              • 78 Posts
              simply I am not "ace" in php. This code doesn’t effect.
              I use ModX 0.9.5
                • 18397
                • 3,250 Posts
                Quote from: collst at Jun 07, 2007, 11:47 AM

                This code doesn’t effect.

                Do you mean the code doesn’t work?
                  • 5644
                  • 78 Posts
                  Because I have on Top "Archives" and not Архив
                  and in month "May", not "Май" in Russian language, but in English
                    • 5644
                    • 78 Posts
                    If it is doesn’t work in snippet, tell me where I should change the names of the months and word "Archives"
                      • 18397
                      • 3,250 Posts
                      Add the setlocale code on a new line after <?php so that your month names are in Russian.