Joomla 4. Компонент K2 и форк K2ForJ4 (18 янв 2024)

Если вас, как и меня, достало выслушивать (вычитывать) бесконечные обещания разработчика K2 опубликовать версию компонента K2 под Joomla 4 (без чего невозможно реализовать апгрейд from Joomla 3 to Joomla 4) - воспользуйтесь форком K2ForJ4. Который в данный момент установлен и без каких-либо проблем работает на этом веб-сайте.

jUpgrade. Концептуальная альфа-версия?

Больше
12 года 1 мес. назад - 12 года 1 мес. назад #1 от Aleksej
Да, примерно к такому выводу я в сердцах пришел, потратив несколько часов на возню с данным продуктом. Это не есть stable версия, однозначно.

Безусловно, мой взгляд субъективен; вполне возможно, что у вас аналогичное предприятие по переносу сайта на новую версию движка прошло без сучка и задоринки. А если у вас на сайте всего десять страниц - то и вообще проблем нет... несложно и заново переделать. Но если у вас тысячи полторы страниц интерактивного сайта, который постоянно пополняется комментариями к статьям и постами на форуме - все, увы, не так просто.

По порядку. jUpgrade v.2.5.0, недавно появившийся, я сразу же и с ужасом отмел; возникающие при обновлении сайта проблемы даже не буду здесь пытаться описать. Черти-что, уважаемый разработчик, надо ведь хоть немного ценить время людей, которые попытались воспользоваться твоим поделием... была под рукой версия 1.2.4 от 6 декабря 2011, чей функционал показался мне более-менее уже отлаженным; с нее и начал свои мытарства.

Обновлялся до J1.7; после чего уже из админки - подробнее см. здесь - до J2.5.1. Необходимо отметить, что вторая часть операции ознаменовалась не совсем гладким финалом:
Code:
JInstaller: :Install: Ошибка SQL Ошибка базы данных с номером 1060 Duplicate column name 'ordering' SQL=ALTER TABLE `sta_languages` ADD COLUMN `ordering` int(11) NOT NULL default 0 AFTER `published`; SQL = ALTER TABLE `#__languages` ADD COLUMN `ordering` int(11) NOT NULL default 0 AFTER `published`; Обновление файлов: файл ошибок SQL Ошибка базы данных с номером 1060 Duplicate column name 'ordering' SQL=ALTER TABLE `sta_languages` ADD COLUMN `ordering` int(11) NOT NULL default 0 AFTER `published`; SQL = ALTER TABLE `#__languages` ADD COLUMN `ordering` int(11) NOT NULL default 0 AFTER `published`;
Вроде бы ничего страшного? Ну, шут его знает; обновление до J2.5.1, так или иначе, прошло.

Второй неприятный трабл, на который я наткнулся - это проблемы переноса материалов К2.
Попросту говоря - перенесенный таким образом контент не опубликован на сайте, хотя вполне доступен из панели администрирования J1.7.* или J2.5.1. И сделать новые пункты меню, указывающие на статьи K2 - невозможно. Вероятнее всего - глюк jUpgrade, тем более странный, что данный продукт появился на свет далеко не вчера... можно было бы, кажется, уже и решить столь нешуточные проблемы.

Тем более, что решаются они, по сути, несложно. Всего пара SQL-запросов; возьмите на вооружение, если столкнетесь с аналогичными сложностями:
Code:
UPDATE `sta_k2_categories` SET `access` = '1' WHERE `access` = '0' UPDATE `sta_k2_items` SET `access` = '1' WHERE `access` = '0'
Префикс, разумеется, необходимо изменить на префикс своей базы данных. Чуть подробнее об этой странной ошибке см. по ссылке.

Далее. Обнаружилось, что страницы форума kunena, перенесенного таким образом, не открываются более по старым ссылкам, так как к алиасу форума добавилась цифра 1. Иными словами - если ранее url вашего форума выглядел вот так:
Code:
vash_site/forum
, то теперь он будет таким:
Code:
vash_site/forum1
Ну; это не так уж и страшно: подредактируйте алиас из админки, либо прибегните к таким вот примерно SQL-запросам (название базы и префикс, опять же, нелишне изменить на свои):
Code:
DELETE FROM `joom_alex`.`sta_menu` WHERE alias = 'forum' UPDATE `sta_menu` SET path = REPLACE(path, 'forum1', 'forum'), alias = REPLACE(alias, 'forum1', 'forum') WHERE `path` LIKE 'forum1%'
Кроме того, возможна еще одна проблема, имеющая отношение к старым и новым ссылкам kunena... лучше всего описывает данной трабл разработчик, слово Матиасу:

Joomla 1.7 uses your local transliteration method where Joomla 1.5 just removed everything which wasn't in ASCII. I was fearing that something like this would happen if you don't use category ids in the urls.

Currently there's no good way implemented to work around this issue -- it isn't directly related to Kunena (we cannot fix something that we didn't know about), but there is one thing you can do:

You can add redirects to your .htaccess file!

You only need to add redirects for categories, which limits number of rules into something that can be managed. So If you have:

Code:
masterpro.ws/forum/38-web---/3359-gap--- masterpro.ws/forum1/38-web-sajt-svoimi-r...atsiya-svoimi-rukami
Code:
.. Mapping is: 38-web--- => 38-web-sajt-svoimi-rukami
BTW: In your case you haven't removed category IDs from your Kunena configuration, so this URL should keep on working, even if it has changed. Kunena 1.7 also uses canonical URLs, which means that these old URLs will be converted to new ones when Google goes through your site.

So this category mapping is really only issue IF you have changed your Kunena configuration not to use category IDs in your URLs. Am I right?


Не знаю, прав ли он. Походу, прав... мне и в самом деле с этим легче. Но не всегда ведь так бывает.

Далее выяснилось, что на новом сайте отсутствует ряд меню; благополучно перенеслось только одно из них. Правда, если вы сделаете меню заново, прописав ему то же самое системное имя - ранее внесенные в него пункты сами встанут на место... но, как всегда есть одно "но": если системное имя старого меню включало в себя подчерк - скажем, вот так - menu_old - вам не удастся на новом месте сделать такое же. Весьма неприятно может обернуться все это, согласитесь. Потеря времени всегда невосполнима.

Баннеры и категории баннеров благополучно перенеслись, а вот в "клиентах" этого компонента оказалось пусто. Ну и наконец, когда при попытке зайти на вкладку админки "Пользователи" я увидел следующее сообщение - терпение мое лопнуло:
Code:
500 - Обнаружена ошибка. Table 'stalk_germes.sta_user_notes' doesn't exist SQL=SELECT n.user_id, COUNT(n.id) As note_count FROM sta_user_notes AS n WHERE n.user_id IN (471,342,269,62,503,619,239,578,64,344,348,279,333,336,620,581,398,585,251,583) AND n.state >= 0 GROUP BY n.user_id
Безусловно, все решаемо... но очень неприятно было то обстоятельство, что догадался я заглянуть на эту вкладку далеко не сразу. И без того проблем хватало, не знаешь, куда тут и смотреть. А ну как глючок какой-нибудь менее заметный высветится через неделю? через месяц? Сайт у меня непрерывно пополняется новым контентом, и будет это весьма неприятным событием.

Такие вот дела. Мелькнула мысль присмотреться к коммерческому аналогу SP Upgrade ... ладно, увидим. У меня несколько сайтов на joomla 1.5, плюс сайты клиентов; каждый раз проходить через все эти траблы очень не хочется.

Впрочем, остается надежда, что jUpgrade перестанет же когда-нибудь быть таким глючным! Невероятное что-то...

Вполне возможно, ваш опыт использования jUpgrade был успешнее моего? или неуспешнее? Расскажите.
Последнее редактирование: 12 года 1 мес. назад пользователем Aleksej.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Dev banner 3
Больше
12 года 1 мес. назад - 12 года 1 мес. назад #2 от Vasilij
В принципе, jUpgrade 2.5.0 работает. Особенно если принять во внимание ряд его особенностей, которые вполне можно, конечно, назвать и глюками. :)

В настройках компонента ни в коем случае не изменяйте префикс новой базы данных. Старый префикс измените на тот, что имеет место в вашей базе данных, а новый - не трогайте, оставьте по-дефолту. Это, как ни странно - условие более-менее успешного использования компонента.

После обновления:
  • Удалите каталоги installation-old и image-old, лежащие в корне публичного каталога вашего сайта.
  • Зайдите Менеджер расширений -> База данных и проверьте, актуальна ли база. Если обнаружите ошибки - нажмите на кнопочку в верхней правой части админки. Тут же все и исправит.
  • Материалы и меню сайта должны перенестись без проблем. Но будьте готовы к тому, что придется, возможно, открыть каждый пункт меню и заново выбрать материал. Это не касается пунктов меню, привязанных к материалам K2 - здесь все тип-топ.
  • Категории баннеров у меня не перенеслись на новый сайт. Или перенеслись с ошибками, уже не помню. Сделал заново. Баннеры перенеслись успешно, но картинку каждому баннеру пришлось присваивать заново.
  • ID пользователей на новом сайте идентичны тем, что были на старом.
Последнее редактирование: 12 года 1 мес. назад пользователем Vasilij.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
12 года 4 нед. назад - 12 года 4 нед. назад #3 от Aleksej

Vasilij пишет: В принципе, jUpgrade 2.5.0 работает. Особенно если принять во внимание ряд его особенностей...

Еще одна такая "особенность". Еще одна недоработка процесса обновления... приходится вручную в базу добавлять language, без этого K2 не работает. Подробности здесь .
Последнее редактирование: 12 года 4 нед. назад пользователем Aleksej.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Работает на Kunena форум