Социальные обременения

Плагин Joomline Like с кнопками репоста в соцсети — хреновый, но это лучшее, что можно купить, быстро настроить и не париться. Если хочется большего, в том числе всякой кастомизации и тонкой настройки, то надо удалять его к чертям и ставить что-то прямо в код. Крутой хакер это кто-то другой, я не претендую, здесь не мануал, а сказ про говнокод в руках дебила любителя. Текст написан как послание себе на будущее, потому что я постоянно забываю что и как сделал на своих сайтах.

HACKERMAN

Изначальная проблема была в том, что при репосте в твиттор и куда-то ещё ссылка передавалась как есть, а с кириллическими путями это получалось криво, т.е. твиттэр не жрёт ссылки вида http://modicine.ru/нате/мнение, делая из них битые http://modicine.ruнате/&nbspмнение. Грустно, пришлось исправлять; сам плагин воспитать не удалось, поэтому я пошёл за помощью на любимый share42.com и напихал туда пару невообразимых костылей, но зато своими руками без кредитов.

Короч:

  1.  По пути modicine.ru/templates/shablon/layouts/article.php впихнут код расшаривания на все статьи вообще + ссылка на яваскрипт + код, преобразующий ссылки в машино(!)-понятные УРЛы;
  2. Выглядит сие бесовское отродье так:
    <div class="share42init" 
        data-url="http://
            <?php 
                $encodedurl2 = implode("/", array_map("rawurlencode", explode("/", str_replace("http://", "", $permalink)))); 
                echo $encodedurl2; 
            ?>"
        data-title="<?php echo $title; ?>" 
        data-image="<?php echo $image; ?>"
        //data-description="<?php $SukaNeRabotaet; ?>">  
        //description не подхватывается никак, скотина( Даже если выковыривать другими функциями-костылями (типа setMetaData str_replace и прочим substr); а если указывать $article, $text или что-либо ещё, то съезжает вёрстка всей страницы вообще. 
    </div>
  3. rawurlencode преобразует строку в стандартный URL без кириллицы, сжирая при этом и слэши (хреново — ссылки бьются ещё сильнее, чем в начале), поэтому к нему добавлены implode("/" и explode("/", фиксящие это, а так же следующий пункт; 
  4. Переменная $permalink в шаблоне задана как полный адрес статьи, поэтому приходится вырезать оттуда 'http://' опять же чтоб оно не гадилось rawurlencode;
  5. Поскольку http:// мы убрали из кодированного УРЛа, то пришлось его впихнуть до всей конструкции, лол;
  6. На выходе $encodedurl2 даёт (например) из http://modicine.ru/нате/мнение сие: http://modicine.ru/%D0%BD%D0%B0%D1%82%D0%B5/%D0%BC%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5

Твитлеру и остальным машинам нраица!

CSS нах не впёрся, и так красиво (результат внизу статьи под кнопкой «Дальше/Скрыть»).

Чисто теоретически я понимаю, что эту хреноту можно просто инъецировать в плагин JLlike, но на практике все мои действия с ним приводят к ошибке 500, поэтому он меня очень сильно злит. Share42 куда круче, задонатил бы ему миллион (пока только пару сотен).

Если вдруг есть мысль как заставить подхватывать description, то пишите, буду сильно благодарен.

 

UPD 20.01.2016

Я наконец-то понял как вообще надо обращаться с джумлой и всё перепилил: теперь тот же самый код живёт и работает как модуль (причём без описанных изворотов с data-url). Как всё оказалось просто.

Комментарии  

# Вонючка 04.02.2016 17:51
Ссылки из вики нихера не пашут.

Например тут http://encyclopatia.ru/wiki/%D0%A0%D0%A1%D0%9F

есть ссылка на
http://modicine.ru/promo/%D0%B8%D0%B4%D0%B8_%D0%B2_%D0%B0%D0%BF%D1%82%D0%B5%D0%BA%D1%83

которая даёть 404
# Никита 08.02.2016 23:00
Да, ссылка побилась, исправил. Спасибо!

You have no rights to post comments