Здравствуйте.
Решили ли Вы проблему с транслитерацией тегов?
если вы хотите транслита тэгов
то в Joomla 1.7 есть новый class
JLanguageTransliterate$lang = JFactory::getLanguage();
$str = $lang->transliterate($str);
можно по идее в классе таблиц тэгов
ФАЙЛ :
administrator\components\com_zoo\tables\tag.phpдобавить при сохранении или обновлении пример:
public function save($item_id, $tags) {
// get database
$db = $this->database;
// delete old item tags
$query = "DELETE FROM ".$this->name
." WHERE item_id = ".(int) $item_id;
$db->query($query);
// insert new item tags
$tags = (array) $tags;
if (count($tags)) {
// remove duplicates case insensitive
$tags = array_intersect_key($tags, array_unique(array_map('strtolower',$tags)));
// add oppo 15 жовтня 2011 р.
$lang = JFactory::getLanguage();
foreach ($tags as $tag) {
$tag = str_replace('.', '_', $tag);
// add oppo 15 жовтня 2011 р.
$tag = $lang->transliterate($tag);
$values[] = sprintf("(%s, %s)", (int) $item_id, $db->Quote($tag));
}
$query = "INSERT INTO ".$this->name
." VALUES ".implode(", ", $values);
$db->query($query);
}
// trigger deleted event
$this->app->event->dispatcher->notify($this->app->event->create($tags, 'tag:saved', array('item' => $this->app->table->item->get($item_id))));
}
проверил работает ..
далее правим alias
ФАЙЛ :
administrator\components\com_zoo\tables\item.php public function save($object) { if (!is_string($object->type) || empty($object->type)) {
throw new ItemTableException('Invalid type id');
}
if ($object->name == '') {
throw new ItemTableException('Invalid name');
}
if ($object->alias == '' || $object->alias != $this->app->string->sluggify($object->alias)) {
throw new ItemTableException('Invalid slug');
}
// add oppo 15 жовтня 2011 р.
$lang = JFactory::getLanguage();
$object->alias = $lang->transliterate($object->alias);