akurteev VIP
Total posts: 43
06 Sep 2016 06:54

Столкнулся вот с такой проблемой кобальта при использовании https.

90% ссылок в карте сайте на xmap выглядят вот так https://alex-kurteev.ruhttp ://alex-kurteev.ru/masterskaya-joomla/full/487-1-vypusk.html

Как это можно решить?

Last Modified: 29 Nov 2016


Paul_I VIP
Total posts: 89
06 Sep 2016 17:22

Поддерживаю вопрос


akurteev VIP
Total posts: 43
08 Sep 2016 07:50

Да, давайте, хотя бы так.


Sergey
Total posts: 13,748
09 Sep 2016 10:43

Paul_I Привет. Сергей сегодня предложил решение проблемы с https://. С каноническими ссылками это работает. Сегодня попробую это изменение на XMap. По результату отпишусь.

Жду...


akurteev VIP
Total posts: 43
09 Sep 2016 11:50

Павел, привет!

Помню.

Стоял форк mapx, заменил на родной xmap получил без дублей урла, но и без заветной "S".

Поменял только в плагине и все стало нормально.


Skyer
Total posts: 57
19 Nov 2016 12:16

akurteev Павел, привет!

Помню.

Стоял форк mapx, заменил на родной xmap получил без дублей урла, но и без заветной "S".

Поменял только в плагине и все стало нормально.

Добрый день, подскажите как справились с xmap, у меня тоже ссылки http А нужно чтобы были https, кроме кобальта все остальные https, где в кобальте поменять?


Paul_I VIP
Total posts: 89
20 Nov 2016 03:41

Решение "в лоб" (кстати, другого пока и нет) опубликовано выше


Skyer
Total posts: 57
20 Nov 2016 16:39

Paul_I Решение "в лоб" (кстати, другого пока и нет) опубликовано выше

Если нужно поменять в плагине, не подскажите в каком именно месте?


Paul_I VIP
Total posts: 89
27 Nov 2016 15:37
  1. В плагине для Cobalt- ../plugins/xmap/com_cobalt/com_cobalt.php меняем в строках 264, 357 и 465 $link = JRoute::_($node->link, true, -1); на, соответственно $link = JRoute::_($node->link, true, 1);
  2. И в файле ../components/com_xmap/views/xml/tmpl/default_class.php, строка 86 меняем $link = JRoute::_($node->link, true, @$node->secure == 0 ? (JFactory::getURI()->isSSL() ? 1 : -1) : $node->secure); на $link = JRoute::_($node->link, true, @$node->secure == 0 ? 1 : $node->secure); а я просто поменял на $link = JRoute::_($node->link, true, 1);

В результате все ссылки становятся с https://


Skyer
Total posts: 57
29 Nov 2016 08:55

Вобщем ковырял я этот вопрос, и временно решил его таким образом: в файле \libraries\joomla\application\route.php добавил букву "s" к http

строка 84: $uri->setScheme(((int) $ssl === 1 || $uri->isSsl()) ? 'https' : 'http');

Наверное это очень грубое решение...

Попробовал внедрить Ваш способ, все получилось, спасибо за помощь!

Но, возможно мой файл плагина был другой версии, строки немного отличались, поменял по аналогии, все получилось. Опишу процесс, может кому-то пригодится:

В файле: /plugins/xmap/com_cobalt/com_cobalt.php в стороках:

264: $node->link = JRoute::_($node->link, TRUE, -1);

357: $node->link = JRoute::_($node->link, TRUE, -1);

465: $node->link = JRoute::_(Url::record($item, NULL, $section, $cat), TRUE, -1);

Все -1 меняем на 1

Больше менять ничего не пришлось...


Paul_I VIP
Total posts: 89
29 Nov 2016 09:51

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

Оба решения ( и мое, и Ваше ) не совсем хорошие, т.к. изменяют исходный код.

НО , насколько мне известно, у плагина к компоненту XMap больше не выпускалось ни одного релиза => с большой долей вероятности можно лезть в исходный код.

А вот менять что-то внутри самой Joomla значительно хуже.

Powered by Cobalt