![]() |
Вопросы про устройство базы данных typo3
Добрый день.
Хотелось бы немного более детально понять суть концепции заложенной в использование БД-mysq. А именно пять вопросов 1. Назначение префиксов таблиц (tt_, tx_ temp_, sys_ и других); и когда какой необходимо использовать? 2. Назначение отдельных колонок в таблицах; (вот uid,pid,deleted,hidden,crdate - это и так ясно а что значат и для чего используются: -l18n_cfg -l18n_parent -l18n_diffsource -t3ver_.,. -cruser_id - и другие распространенные служебные поля... 3. как работают переводы на другие языки и какие варианты переводов можно создать 4. в чем преимущество использования mm связей - и в чем удобство, или проще использовать обычное поле ссылки на родителя? (так понимаю что при mm одним запросом можно выбирать и категорию, и то что в ней содержится?) 5. А также есть ли Возможность в typo3 создать так сказать внешнее подключение к БД - что бы он выбирал данные из двух и более БД? Может быть есть какое расширение? -- Спасибо за ответы. |
1. Разделять таблицы на классы и защититься от путаницы при установке других систем в ту же базу (если поставить phpbb в эту же базу, то его таблицы будут например phpbb_**). И, кажется мне, что функции t3lib_db делают проверки на префиксы (в частности tx_, который зарезирвирован для таблиц пользовательских плагинов). В TSRef точно есть упоминание про такие проверки. Именно поэтому нельзя с помощью TS.CONTENT выбрать записи из be_users (недавно обсуждалось на форуме).
В общем для удобства. 2+3. l18n - сокращение от английского варианта слова "интернализация". t3ver - для версионности, воркспейсов. cruser_id - id BE пользователя, который создал запись И интернализация и вверсионность используют простое создание копий записи в то же таблице, но с другим содержанием. Эти дополнительные поля позволяют различить что это копии и привязать их к главной (родительской) записи. Реализация поддержки интернализации в FE требует доработки кода плагинов. На всякий случай: http://www.slideshare.net/kfish/i18n-in-typo3-flow 4. mm = many to many. Одна новость может указывать на несколько категорий, и одна категория может относиться к нескольким новостям. Без промежуточной таблицы этого не сделать. В TYPO3 их обычно называют *_mm 5. Ядро точно не заставите видеть две базы. Это легко понять если глянуть код t3lib_db |
Спасибо за ответы.
|
Хотелось бы еще понять как работают переводы на другие языки и какие варианты переводов можно создать
|
Цитата:
|
Есть еще что нибудь из документаций по переводам?
|
|
Спасибо, это даже очень подходит!
|
Вложений: 1
Вопросик про связи:
в модуле список есть колонка Ref - связи - своего рода количество использования в других записях (картинка во вложении)... Это значение о количестве связей как понимаю typo3 пишет в БД таблицы sys_refindex? - или считает как-то по другому? -- Спасибо. |
Да, в sys_refindex
Если вы будет вставлять записи в таблицы "сырым" SQL кодом, а не через вызовы функций ядра, то связи не будут подсчитываться. |
Цитата:
1. создать новый язык в корне (0-уровень) сайта 2. создать альтерированный язык страницы 3. и только после можно приступить к переводу записей tt_news? *. и так со всеми элементами... И как это работает все в сумме не могу понять - ЛИБО получается что на каждый новый перевод создается новая запись - ЛИБО к одной записи прикрепляются переводы по каждому полю из одной какой-то-таблицы? В мануале нашел описание только трех полей sys_language_uid, l18n_parent и l10n_mode - где последнее l10n_mode так и не могу понять что делает. Но в интернете нашел еще не понятные поля, как полагаю связанные с переводом - это l18n_diffsource. Помогите разобраться с переводами...:) А также с механизмами, которые существуют по переводам. Спасибо. |
Давно не делал, но по памяти скажу так.
Пункт 1 обязателен. Пункт 2 и 3 - это фактически оно и то же, страницы это такие же записи как новости и т.п. Локализуются однотипно и независимо. Да, на каждый перевод создается копия исходной записи в то же таблице, и вы можете править. Параметр l10n_mode судя по всему относиться к каждому полю, задается в TCA. И управляет тем, нужно ли "переводить" это поле и как вести себя если перевод для поля не задан. Кстати может еще это будет вам полезно: http://www.typo3-media.com/blog/loca...n-secrets.html |
Так понял есть два пути локализации: создание двух и более сайтов на разных языках - либо переводы записей в рамках одного сайта...
Спасибо.:) |
Создание двух сайтов можно. Фактически это создание двух и более веток дерева от корня в одном BE, с разными доменами (!) и возможно разными структурами. Локализация заключается лишь в том, что средствами RealURL пользователь направляется на тот домен, который соответствует языку его броузера. И для этого не нужны всякие l18n, l10n.
А локализация в одному дереве - вот это особая фишка TYPO3. Тут удобство в том, что структура, шаблоны, TS делаются один раз. И делается основная ветка сайта на дефолтном языке (например это английский). А потом вы уже постепенно создаете переводы всех записей (страницы - заголовки, метатэги, новости и т.п.). Что не переведете - будет показываться на дефолтом (английском) или не будет показываться вовсе (как настроите). Получается эти два варианта предназначены для двух разных задач - создать точную копию сайта на другом языке, или создать похожий (или совсем другой) сайт на другом языке. |
Понял - спасибо.
|
Часовой пояс GMT +4, время: 17:38. |
Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot