protected function _loadTranslationData($data = null, $locale, array $options = array()) { $list = new Translation_Website_List(); $list->load(); foreach ($list->getTranslations() as $translation) { if ($translation instanceof Translation_Abstract) { foreach ($translation->getTranslations() as $language => $text) { $this->_translate[$language][$translation->getKey()] = Pimcore_Tool_Text::removeLineBreaks($text); } } } $availableLanguages = (array) Pimcore_Tool::getValidLanguages(); foreach ($availableLanguages as $language) { if (!array_key_exists($language, $this->_translate) || empty($this->_translate[$language])) { $this->_translate[$language] = array("__pimcore_dummy" => "only_a_dummy"); } } return $this->_translate; }
/** * @return string */ public function getTitle() { return Pimcore_Tool_Text::removeLineBreaks($this->title); }
public function translationsExportAction() { $admin = $this->_getParam("admin"); if ($this->getUser()->isAllowed("translations")) { // clear translation cache Pimcore_Model_Cache::clearTag("translator"); if ($admin) { $list = new Translation_Admin_List(); } else { $list = new Translation_Website_List(); } $list->setOrder("asc"); $list->setOrderKey("key"); $list->load(); $translations = array(); foreach ($list->getTranslations() as $t) { $translations[] = array_merge(array("key" => $t->getKey(), "date" => $t->getDate()), $t->getTranslations()); } $languages = Pimcore_Tool::getValidLanguages(); //header column $columns = array_keys($translations[0]); //add language columns which have no translations yet foreach ($languages as $l) { if (!in_array($l, $columns)) { $columns[] = $l; } } $headerRow = array(); foreach ($columns as $key => $value) { $headerRow[] = '"' . $value . '"'; } $csv = implode(";", $headerRow) . "\r\n"; foreach ($translations as $t) { $tempRow = array(); foreach ($columns as $key) { $value = $t[$key]; //clean value of evil stuff such as " and linebreaks if (is_string($value)) { $value = Pimcore_Tool_Text::removeLineBreaks($value); $value = str_replace('"', '"', $value); $tempRow[$key] = '"' . $value . '"'; } else { $tempRow[$key] = ""; } } $csv .= implode(";", $tempRow) . "\r\n"; } header("Content-type: text/csv"); header("Content-Disposition: attachment; filename=\"export.csv\""); echo $csv; die; } else { Logger::err("user [" . $this->getUser()->getId() . "] attempted to export translations csv, but has no permission to do so."); die; } }