![]() |
Апгрейд с 4.1 до 4.5
Здравствуйте, уважаемые эксперты!
Как обновить движок с версии 4.1 до 4.5 без потери данных для действующего уже сайта? В первую очередь меня интересует замена PHP 4.4.9 на PHP 5.5.3. Можно ли это сделать в панели управления хостингом? Я уже скачал пакет версии 4.5.1 с оффициал. сайта залил его по фтп, создал тестовый поддомен сайта и увидел новые возможности админки и даже русифицировал её. Как сделать апгрейд для уже существующего сайта? Я читал русскую документацию по установке по этой ссылке http://typo3.org/documentation/docum.../installation/ и по этой:http://wiki.typo3.org/wiki/Upgrade, но везде все ссылается к одному -версии PHP 5.3. И второе: можно будет потом обновить базу и версию движка через Install Tool? Заранее благодарен! |
Во первых, почему
Цитата:
Заменить PHP через панель - обычно можно - за подробностями - к своему хостеру. Думаю, что PHP 5.5.3. для Typo3 4.6.3 вполне подойдет, но не проверял... Алгоритм обновления такой: ставим/включаем новую версию PHP, обновляем файлы Typo3 (см инструкцию по обновлению), после этого через инсталл тулл обновляем базу. |
Еще один важный момент с кодировками. В 4.1 и более ранних версиях не было объязательно использовать кодировку utf8, поэтому часто, например, была win1251 (для русскоязычных сайтов). А в последних версиях utf8 обязательно. И вот вам надо сначала сконвертировать базу в utf8 и удостовериться что ничего не потерялось.
|
Тогда уж продолжу тему про UTF.
После конвертации базу надо будет изменить настройки в TS на что то вроде этого: Код:
config { |
wiki.typo3.org/wiki/Upgrade - вот здесь внизу документа как раз 4.6 описано.
с php 5.3 работает хорошо. единственное с чем столкнулся - слетели пререводы, надо было обновлять их. |
Здравствуйте!
Обновил наконец версию движка до 4.5.11. Сделал все обновления через Инсталл Тулл, обновил базу. Но....в админке теперь ничего не получается редактировать и сохрвнять. Пишет:Fatal error: Cannot re-assign $this in /home/intelpol/intelpol.com.ua/www/typo3conf/ext/static_info_tables/class.tx_staticinfotables_syslanguage.php on line 41 В этой строчке в static_info_tables 41 написано следующее, начиная с 39-й: class tx_staticinfotables_syslanguage { function processDatamap_postProcessFieldArray($status, $table, $id, $fieldArray, $this) { if($table == 'sys_language' AND $fieldArray['static_lang_isocode']) { // the hotlist will be updated only if the field changed, because only then it's in the $fieldArray tx_staticinfotables_div::updateHotlist ('static_languages', $fieldArray['static_lang_isocode'], 'uid'); } } } if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/static_info_tables/class.tx_staticinfotables_syslanguage.php']) { include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/static_info_tables/class.tx_staticinfotables_syslanguage.php']); } ?> Что еще нужно поменять? Что-то в настройках сайта на хосте? Помогите, пожалуйста! |
PHP апгрейдили? Похоже что в новой версии PHP передача параметра с именем $this - это ошибка. Так как $this это в то же время ссылка на текущий экземпляр класса.
Для решения проблемы переименуйте в коде $this во что-то другое ($thisX), все равно эта переменная не используется. И могу предположить что ваша версия static_info_tables не совместима с новым TYPO3. Либо обновите экст, либо удалите - может он вам и не нужен. |
Да, PHP до обновления поставил 5.3! На хостинге он ставится вручную. static_info_tables стоит 2.0.0. Наверное попробую сначала обновить. И еще...забыл сказать. Зайдите, пожалуйста, на сам сайт http://intelpol.com.ua/ Справа от "Контакты" Вы увидете строку поиска, а под ней кракозябры. Это - после обновления! До этого было написано просто "Поиск". Может нужно обновить и сам плагин "indexed_search_engine"? Сейчас стоит версия 2.12.0.
|
Кракозябры - это в каком-то HTML шаблоне забит текст в кодировке Windows-1251, а сайт у вас весь в utf8. Сконвертируйте этот файл в utf8 и все исправится.
|
Спасибо! С поиском проблему решил. На главной страничке в движке просто надо было прописать в коде еще раз "Поиск" и всё нормально. Теперь еще парочка таких вопросов:
1) nepa-design.de spam protection стоит версии 1.0.1 красным - стоит обновить или для 4.5 есть защита получше от спама? 2) Rich Text Editor отображается некорректно - Что с ним не так? В скриншоте. И опять проблема с Поиском - на главной всё нормально, а перехожу, к примеру "О компании" тоже самое что было... Может нужно сделать то, что до этого писал Илья Цитата:
|
Извините!
По поиску - на главной http://s1.hostingkartinok.com/upload...d1800c1eb0.png На остальных страницах: http://s1.hostingkartinok.com/upload...095c95b371.png RTE: http://s1.hostingkartinok.com/upload...cb64dcae83.png |
1) Расширение Spamshield посмотрите, оно вполне актуально.
2) Почистить кэши TYPO3, почистить кэши вашего броузера. Может быть еще у вас редактор это отдельеное расширение tinymce - удалить или обновить. 3) Поиск - значит в другом шаблоне остался вариант в неправильной кодировке. 4) Все что касается config прописывается в TS шаблоне корневой страницы сайта. |
Как оказалось это не всё...(((
Теперь нельзя создавать новые страницы и вообще нельзя добавлять новые элементы на страницах любых форм существующих и новых. Пишет: Oops, an error occured! PHP Catchable Fatal Error: Argument 2 passed to t3lib_div::implodeArrayForUrl() must be an array, null given, called in /home/intelpol/intelpol.com.ua/www/typo3conf/ext/templavoila/mod1/db_new_content_el.php on line 282 and defined in /home/intelpol/intelpol.com.ua/www/t3lib/class.t3lib_div.php line 2065 Или в скриншоте. http://s1.hostingkartinok.com/upload...d20aaaac4a.png В db_new_content_el.php на строчке 282 такая запись PHP код:
PHP код:
|
А вы Templavoila обновили?
|
...Нет. Стоит та которая была 1.3.0. Нужно поставить последнюю из репозитория TemplaVoila 1.6.1? Или в "Управлениях расширениями" в настройках просто старой TemplaVoila поставить галочку возле Enable the classic page module [enable.oldPgeModule]...или лучше обновить до 1.6.1?
И еще, напомните, пожалуйста, как в упралениях расширениями переключиться к импорту расширений, установке - стандартному виду? |
Обновил TemplaVoila до 1.6.1 и поставил новый SiteCrawler, вот что теперь с сайтом:
http://s1.hostingkartinok.com/upload...e1cac61a17.png Может какие-то еще значения TemplaVoila нужно выставить? ENABLE FEATURES Enable the classic Page module[enable.oldPageModule] Check this box to enable classic Page module in the list of modules. Галочка не стоит Enable data structure selection[enable.selectDataStructure] If this checkbox is checked, page and content elements will have data structure selector as they had in older TemplaVoila versions. If current installation has very few template objects, it is recommended to have this checkbox unchecked. Галочка не стоит Enable Header for FCE's[enable.renderFCEHeader] If this checkbox is checked the header of Content Element type FCE will be rendered like headers of other Content Elements. Галочка стоит |
Скорее всего у вас какие-то проблемы с кодировкой базы данных, из-за которых и слетают настройки того же TV. Проще всего было решить этот вопрос с апгрейдом откатив и файлы и базу на бэкап до апдейта и посмотреть как и что вообще настроено.
|
Цитата:
Скриншоты 1) http://s1.hostingkartinok.com/upload...9e31bbab5f.png 2) http://s1.hostingkartinok.com/upload...7d981dd9be.png 3) http://s1.hostingkartinok.com/upload...918079555b.png |
Цитата:
Обновлять нужно в обязательном порядке, ведь вы поменяли версии всего. Старые версии могут просто не совместимы с новым php и TYPO3 |
Цитата:
|
Я конечно могу опять залить старый движок на сервер, но смысл? Что именно Вам нужно знать по TemplaVoila чтобы понять проблему?
|
Вот еще запись в базе с таблицы tx_templavoila_datastructure в title Main Page в поле dataprot:
<?xml version="1.0" encoding="utf-8" standalone="yes" ?> <T3DataStructure> <meta type="array"> <langDisable>1</langDisable> </meta> <ROOT type="array"> <tx_templavoila type="array"> <title>ROOT</title> <description>Select the HTML element on the page which you want to be the overall container element for the template.</description> </tx_templavoila> <type>array</type> <el type="array"> <field_menu type="array"> <tx_templavoila type="array"> <title></title> <sample_data type="array"> <numIndex index="0"></numIndex> </sample_data> <eType>TypoScriptObject</eType> <TypoScriptObjPath>lib.menu</TypoScriptObjPath> </tx_templavoila> </field_menu> <field_col1 type="array"> <tx_templavoila type="array"> <title>Column1</title> <sample_data type="array"> <numIndex index="0"></numIndex> </sample_data> <eType>ce</eType> <TypoScript><![CDATA[ 10= RECORDS 10.source.current=1 10.tables = tt_content 10.wrap = <!--TYPO3SEARCH_begin--> | <!--TYPO3SEARCH_end--> ]]></TypoScript> <oldStyleColumnNumber type="integer">0</oldStyleColumnNumber> </tx_templavoila> <TCEforms type="array"> <config type="array"> <type>group</type> <internal_type>db</internal_type> <allowed>tt_content</allowed> <size>5</size> <maxitems>200</maxitems> <minitems>0</minitems> <multiple>1</multiple> <show_thumbs>1</show_thumbs> </config> <label>Column1</label> </TCEforms> </field_col1> <field_col2 type="array"> <tx_templavoila type="array"> <title>Column2</title> <sample_data type="array"> <numIndex index="0"></numIndex> </sample_data> <eType>ce</eType> <TypoScript><![CDATA[ 10= RECORDS 10.source.current=1 10.tables = tt_content 10.wrap = <!--TYPO3SEARCH_begin--> | <!--TYPO3SEARCH_end--> ]]></TypoScript> <oldStyleColumnNumber type="integer">1</oldStyleColumnNumber> </tx_templavoila> <TCEforms type="array"> <config type="array"> <type>group</type> <internal_type>db</internal_type> <allowed>tt_content</allowed> <size>5</size> <maxitems>200</maxitems> <minitems>0</minitems> <multiple>1</multiple> <show_thumbs>1</show_thumbs> </config> <label>Column2</label> </TCEforms> </field_col2> <field_footertext type="array"> <tx_templavoila type="array"> <title></title> <sample_data type="array"> <numIndex index="0"></numIndex> </sample_data> <eType>TypoScriptObject</eType> <TypoScriptObjPath>lib.footer</TypoScriptObjPath> </tx_templavoila> </field_footertext> </el> </ROOT> </T3DataStructure> Я не знаю...посмотрите это во всех UID. Их 6 в таблице. И что это, вообще?) |
А вы сами на скриншоте той же базы не видите что ли что сопоставление кодировки в базе utf8_general_ci, кодировка всей базы вроде как тоже такая же, а половина таблиц вдруг почему-то в cp1251 - из-за этого все глюки и есть. Других причин нет и быть не может. Значит, надо конвертировать все в правильный utf8 и перезаливать целиком и полностью все в нем. И забыть cp1251 как страшный сон.
|
Цитата:
|
Просто сохраните дамп штатными средствами и посмотрите в обычном текстовом редакторе в какой он кодировке. Потом переведите этот сохраненный дамп в нужную вам кодировку, откорректируйте служебную информацию mysql в дампе, касающуюся кодировок и сохраните его. После этого очистите всю базу и заново выставив параметры соединения с mysql и параметры сопоставления кодировок залейте дамп.
|
Зачем все эти трудности?
На всякий случай делайте резервную копию БД. Ставите расширение sfdbutf8, пи помощи его конвертируйте БД в utf8. Далее, в самой БД ставим кодировку по умолчанию в utf8_general_ci. На всякий случай делаем проверку БД в install tool, заодно подгружаем заново все статические таблицы. Все. Это проверено ни на одном сайте. Работает. |
@Андрей, дело в том что конвертировать можно и средствами самого mysql прямо в том же phpMyAdmin, но надо хотя бы представлять что там на самом деле лежит, а то бывали случаи когда записи хранились в utf-8 вроде бы, но были в cp1251.
|
Цитата:
Хотя можно установить и на TYPO3 phpMyAdmin и глянуть, что там... Установить в нем же нужное сопоставление для всей базы данных - utf8_general_ci, оно понадобиться и для вновь создаваемых таблиц и т. д. Затем переконвертить поля/таблицы в неправильной кодировке... Кстати, сталкивался с тем, что иногда связанные поля не могут быть сконвертированы поодиночке - нужно выделить оба связанных поля и одновременно их сконвертировать... тут и упомянутое мной расширение sfdbutf8 не помогает - все ручками... Ну и обязательно, как уже говорил, проверку БД в install tool, заодно подгружаем заново все статические таблицы. Тут уже недостающие таблицы пересоздаются самой TYPO3 в уже нужной кодировке... Что касается статических таблиц, то они тоже пересоздаются в нужной кодировке, бывали случаи, когда при регистрации в форме, при выборе страны (на родном языке) появлялись кракозябры... Пересоздание статических таблиц (статик инфо тейбл в данном случае) помогло... Далее все зависит от конкретного случая... Возможно придется вмешаться и ручками подкорректировать записи содержимого в базе данных. Но это уже другая история... |
@Андрей, в том и дело что там половина таблиц в cp1251 и половина в utf8 - неважно чем делать дамп, в нем все будет ровно так же и для решения этого вопроса нужно либо дамп делить на куски и конвертировать кусками, либо руками в текстовом редакторе, который позволяет менять на лету кодировку в части файла.
|
Ну дамп - в любом случае текстовый файл... А уж чем с ним работать...
Проще отметить таблицы с кодировкой в cp1251 и еще раз отдельно их выгрузить, а уж в том же нотапде++ кодировку поменять нет проблем... Ну и загрузить их обратно... Кстати, может в том же Sypex Dumper можно на лету это сделать? Я не пробовал, но как вариант... Хотя у меня недавно с одним сайтом схожая проблема была... Увидел это по тому, как даже непичатный пробел не распознавался. Ну так вот, описанным мною способом все решилось без танцев с бубном... |
Кстати еще один нюанс при апгрейде с TYPO3 4.1 - в этой версии и более ранних поля config/setup TS шаблонов (и возможно еще какие-то) были BLOB. А в более позних уже TEXT. В результате при экпорте в .sql BLOB поля выводились как BASE64-encoded строки, кодировка в них соответственно не изменялась при перекодировании дампа в utf8, а при импорте в utf8 таблицу в ней если попадался русский символ или что-то отличное от латиницы - все что шло дальше после такого символа просто отрезалось. Так что важно проверить что бы BLOB поля экспортировались как простой текст.
|
Могу посоветовать обратится в gConverter.ru отлично работают. Мне здорово всё сделали.
|
Ребята, обновил в ноутпаде++ кодировку вручную с cp1251 на utf8 и заменил BLOB-поля на text по совету dmartynenko и теперь все таблицы в юникоде. Также через Инсталл Тул апдейтил все таблицы и в результате :
Update database tables and fields: Table and field definitions are OK. The tables and fields in the current database corresponds perfectly to the database in the selected SQL-file. С этим всё! Поставил TemplaVoila 1.6.1, StaticInfoTables обновил до 2.3.0, но вот со Skin Grey 2 3.0.6 подглюкивает... Да и это не все так просто... TV обновилась в админке, но вот при входе на наш сайт возникает вот такая TemplaVoila ERROR. И как с ней теперь справиться? Помогите, пожалуйста, меня уже эта проблема с обновлением в печенках сидит, а вас я уверен мои проблемы еще больше достали! |
Ну так вроде как skin_grey_2 только до версии 4.2 совместим? А с TV надо немного покопаться в настройках наверное и "освежить" маппинг и шаблон.
|
Скины нужно отключать - меxанизм несколько обновился... Можно глянуть в логе устаревших функций, какие расширения несовместимы. С TV проблемы возникают часто - гляньте на используемый шаблон, возможно там значится ошибка и нужно будет внимательно глянуть и разобраться что и как...
|
Цитата:
развернутый ответ? По поводу скина я понял - его надо отлючить, а лучше даже удалить, так ведь? И какой поставить тогда? А по поводу TV я же кинул ссылку на ошибку TV... Могу написать: TemplaVoila ERROR: Couldn't find a Data Structure set for table/row "pages:9". Please select a Data Structure and Template Object first. Лично мне это ни о чем не говорит!:) И где в паке мне смотреть на возможную еще какую-то ошибку? В папке templates или где? У нас сайт компании. Помогите решить эту проблему, пож! Где именно нужно копаться в решении с TV? Дайте какие-то ссылки! Может с моей стороны нужна еще какая-то информация? |
Никакой скин ставить не надо. По умолчанию в комплекте TYPO3 Skin уже идет. Относительно ошибки TV - где-то что-то недоконвертировали или же что-то сбилось в результате конвертации. Обновите маппинг, пересохраните DS.
|
Цитата:
|
Вот этот мануал почитайте - http://www.typo3.ru/fileadmin/docume...onov__FTB_.pdf
Должно стать понятнее каким образом работает TemplaVoila и как с ней взаимодействовать. |
Цитата:
можете дать доступ к сайту, я посмотрю и прокомментирую, что там не так? Пишите в личку... Ошибка с темплавойлой встречается при переносе сайтов довольно часто. Причиной, как я думаю, может послужить введенный в недавних версиях механизм возможного хранения структур данных в файлах, а не в записях базы данных. Что-то конкретное посоветовать здесь сложно - на разных сайтах проявляется по-разному, где-то помогает операция обновления через инстал-тул, а где-то приходится перелопатить весь сайт для поиска ошибки... |
Часовой пояс GMT +4, время: 00:51. |
Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot