sly2m: (Default)
sly2m ([personal profile] sly2m) wrote2011-02-18 11:35 am
Entry tags:

Как вставить кнопку Like из Facebook в ЖЖ (пошли на второй круг)

Сначала немного истерики тЁзка-like style:

…криворукие ебалаи!…асы из СУПа…чтоб вас распи…ваши визитки – гав…таких кретинских иллюстраций еще поискать…вы ничего не понимаете в программи…чудовищно унылая х…так верстают только му…хочется вырвать глаза и блева…

Закончили истерику и прекратили выставлять себя толпе на посмешище для набора очков дешевой популярности, мы же не дизайнеры какие, мы - программисты. Так что по делу.

Вчера в СУПе прикрыли лавочку с публикацией кнопочек Like из Facebook и Tweet из Twitter в Живой Журнал при помощи обходных маневров, открытых мною месяц назад.

Просто обрубили вставку тега <OBJECT> с параметром DATA в записи и баста. Таким образом старые кнопочки, помещенные в посты раньше, продолжают работать, а вот при публикации новых парсер вырезает теги <OBJECT> с параметром DATA, и подменяет их своими, которые полностью убивают работоспособность данных кнопок.

Решение СУП-а понятно и возможно даже оправдано. Все-таки такой полу-хак с подменой функциональности тега <IFRAME> штука потенциально небезопасная. Теоретически (теоретически!) можно представить себе ситуацию, когда злоумышленник подгружает в IFRAME стороннюю страницу с вредоносным кодом, а пользователь ничего не может поделать, ибо над страницей в IFRAME не властен.

Можно было бы, конечно, ограничить доступ IFRAME-а (а точнее его замены в виде OBJECT) только страницами facebook и twitter, или еще что-нибудь в этом роде, варианты есть, но в СУП-е решили не париться, и отрубить лихую голову на корню.

Вообще удивительное рядом, но оно запрещено – неофициальный слоган Живого Журнала, если кто не знал. Возможности HTML тут урезаны до критического минимума, никаких тебе JavaScript, IFRAME, SSI-include, никаких посторонних вкусностей. Идея понятна – чтобы враги не залезли и ничего не поломали.

Но ведь второе десятилетие 21го века пошло, HTML5 на носу, надо как-то двигаться вперед, не считаете?


Что можно сделать в данном случае?

Решение настолько простое, что можно сказать – абсолютно тупое.

Тупо не задумываясь меняем в коде кнопки слова OBJECT на EMBED (обратите внимание, это нужно сделать ДВА раза, при открытии тега, и при его закрытии), а слово data на src, и все снова работает!

Т.е. до этого для Like мы имели:

<comment>
<object data=”http://www.facebook.com/plugins/like.php?href=http://sly2m.livejournal.com&locale=ru_RU&layout=standard&show_faces=true&width=450&height=100&action=like&colorscheme=light&ref=sly2m” type="text/html" width="450" height="100">
</object>
</comment>

а получили:

<comment>
<embed src="http://www.facebook.com/plugins/like.php?href=http://sly2m.livejournal.com&locale=ru_RU&layout=standard&show_faces=true&width=450&height=100&action=like&colorscheme=light&ref=sly2m" type="text/html" width="450" height="100">
</embed>
</comment>


То же самое для кнопки Tweet, было:

<comment>
<object width="130" height="60" type="text/html" style="width: 130px" data="http://platform.twitter.com/widgets/tweet_button.html?url=http://sly2m.livejournal.com&text=Суп хитер, а мы хитрее&via=sly2m">
</object>
</comment>

стало:

<comment>
<embed width="130" height="60" type="text/html" style="width: 130px" src="http://platform.twitter.com/widgets/tweet_button.html?url=http://sly2m.livejournal.com&text=Суп хитер, а мы хитрее&via=sly2m">
</embed>
</comment>


Обращаю ваше внимание, что это не решение проблемы, а лишь временная заплатка на полу-легальный хак. Вне всякого сомнения через пару недель (если не дней) администрация прикроет и ее. Да, это намек – налетай, торопись, ставь кнопки, пока есть такая возможность, не ленись! :)

Хочется лишь надеятся, что криворукие ебалаи дальновидные программисты из СУПа бросят свою вредную привычку законопатчивать дыры паклей и выплескивать ребенка вместе с грязной водой, а поймут, что если в бизнесе существует потребительская потребность, ее нужно удовлетворять, а не делать вид, что меньше знаешь, крепче спишь, и чем меньше потребностей, тем меньше проблем и забот у кодеров на зарплате.

Не забываем так же, что данный финт с подменой тега IFRAME на теги OJBECT или EMBED работает во всех нормальных браузерах и не работает(!) в Internet Explorer-е, даже последней 9-й версии, а значит 90% потенциально вредоносного кода уже отсечено само собой одним только фактом не использования IE при работе с Живым Журналом.

А теперь, попросив прощения у читателей (я ведь обещал больше не пользоваться этими кнопками у себя в журнале, но для теста придется это сделать еще один, надеюсь последний раз) сами блескучие, сияющие, недосиськи и почти-что забавные котеги, притягивающие взгляд и курсор мышки, кнопочки:





UPD: Не забываем, кнопочки поставлены для тестирования - если видите какие-то глюки, отпишитесь в комментарии, пожалуйста. Так, на первый взгляд Opera и Google Chrome работают, а вот FireFox чего-то нет.
Продолжаем копаться в коде...

UPD2: Кто бы мог подумать на FireFox, клевый же браузер. Ну ладно IE, но Firefox...
Вот временное решение, которое НЕ работает ни в IE, ни в Firefox-e, но зато работает в Опере, Хроме и Сафари, и при этом НЕ выбрасывает никакие сообщения о неправильно установленных плагинах, т.е. пользователи IE и FireFox вообще ничего не увидят, никаких сообщений об ошибках.

<comment>
<object type="text/html" width="450" height="100">
<param name="url" value="http://www.facebook.com/plugins/like.php?href=http://sly2m.livejournal.com/403214.html&layout=standard&show_faces=true&width=450&height=100&action=like&colorscheme=light&ref=sly2m">
</object>
</comment>

Для Twitter-а в value= вставляем твиттерную строку из кода выше.


Эта тема также интересна:

http://gmolodtsov.livejournal.com/





Эта тема также интересна:

http://demyan-om.livejournal.com/


[identity profile] vladanda.livejournal.com 2011-02-18 05:09 pm (UTC)(link)
спасибо друг-человек. хоть кнопочки мне и не нужны, всё же достойный спичь профессионала очень приятен.

[identity profile] forumhelp.ru (from livejournal.com) 2011-02-20 01:44 pm (UTC)(link)
Раз вы пост этот читали, значит, вам было интересно это узнать. А если вам это было интересно узнать, то, возможно, это вам когда-либо в жизни пригодится.

[identity profile] vladanda.livejournal.com 2011-02-22 09:36 pm (UTC)(link)
я с большим удовольствием читаю техническое "how to..", в отличие от гуманитарного "какого ху.." .
даже, если я этим не воспользуюсь - меня согревает мысль, что я теперь знаю как это сделать.
не хотел вас обидеть, если внешне так выглядит - извините.

[identity profile] cyxymu.livejournal.com 2011-02-18 05:50 pm (UTC)(link)
в файерфоксе 5.0 требует установку плагинов(((

[identity profile] ctype.livejournal.com 2011-02-18 06:19 pm (UTC)(link)
не знаю где вы взяли пятый, а у меня в бете четвертого таже хрень (Minefield 4.0b12pre)

[identity profile] cyxymu.livejournal.com 2011-02-18 06:24 pm (UTC)(link)
упс)) 3.6))
Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13 ( .NET CLR 3.5.30729)

[identity profile] cyxymu.livejournal.com 2011-02-18 05:51 pm (UTC)(link)
при этом при нажатии на установку плагинов идет поиск и их не находят. так что не сработает на большем проценте компов

[identity profile] vplusplus.livejournal.com 2011-02-18 06:55 pm (UTC)(link)
Firefox:
Image





Safari:
Image
Edited 2011-02-18 18:56 (UTC)

[identity profile] cyxymu.livejournal.com 2011-02-18 06:57 pm (UTC)(link)
мда. регистрацию требует? в общем -мы в пролете

[identity profile] sly2m.livejournal.com 2011-02-18 07:05 pm (UTC)(link)
Не, регистрация всегда требовалась. Если ты не залогинен в Facebook ты видишь только число скольким человекам понравилось, а если залогинен - видишь аватарки этих людей.

Это не проблема, так всегда было и это правильно.

Проблема, что теперь это все НЕ работает в IE и Firefoxе, а работает только в Opera, Chrome и Safari. Я исправил вроде бы код, чтобы хотя бы ошибок про недостающие плагины не выбрасывало.

Но это, конечно, не дело. Нужно еще поковырять, на выходных попробую.

[identity profile] cyxymu.livejournal.com 2011-02-18 07:30 pm (UTC)(link)
в общем СУП никогда навстречу человеку не идет. им бы только лж-тайс придумать и дизайн гребанного магазина улучшить..

[identity profile] sly2m.livejournal.com 2011-02-18 07:39 pm (UTC)(link)
Да что там магазин. Ты видел, что они Веселого Фермера в ЖЖ притащили?

[identity profile] cyxymu.livejournal.com 2011-02-18 07:46 pm (UTC)(link)
неее, только не это!!!

[identity profile] sly2m.livejournal.com 2011-02-18 07:48 pm (UTC)(link)
Зацени. http://www.livejournal.com/games/ (http://www.livejournal.com/games/)

[identity profile] cyxymu.livejournal.com 2011-02-18 07:50 pm (UTC)(link)
охренеть! они просто хотят убить серьезную блогосферу вот этим.. я и не знал про это, т.к. френды более менее серьезные люди.. полный атас.

[identity profile] sly2m.livejournal.com 2011-02-18 07:57 pm (UTC)(link)
Серьезная блогосфера не приносит серьезных денег.
Серьезные деньги приносит морковка на грядках. Что реальных, что виртуальных.

[identity profile] vplusplus.livejournal.com 2011-02-18 08:24 pm (UTC)(link)
Да, теперь там вообще пустое место в файрфоксе :)

[identity profile] vrotmnen0gi.livejournal.com 2011-02-19 05:44 pm (UTC)(link)
Может это повод перейти на более совершенный браузер?

[identity profile] dusty.livejournal.com 2011-02-21 08:47 am (UTC)(link)
В Хроме - пустота вместо кнопок.

[identity profile] blacky-unicorn.livejournal.com 2011-02-23 11:57 am (UTC)(link)
Возможно лихо глупый вопрос, я прямо только что вылупившийся новичок, но все же :
- как сделать так,чтобы кнопочка проставлялась к каждой записи??
пока получилось поставить под одной с общей ссылкой на журнал
з.ы. у меня хром,все работает!

[identity profile] sly2m.livejournal.com 2011-02-23 01:53 pm (UTC)(link)
Никак. Ручками заходим в каждую запись и ручками ставим кнопку.

[identity profile] blacky-unicorn.livejournal.com 2011-02-23 05:51 pm (UTC)(link)
ясно
а как тогда работают кнопки у тех,кто ставил их по старому тегу?вы пишете, что они у них остались.
в любом случае, спасибо большое, очень полезное это дело)))

[identity profile] sly2m.livejournal.com 2011-02-23 06:33 pm (UTC)(link)
Это два независимых события.
На прошлой неделе СУП отключил возможность публикации кнопок старым методом (OBJECT + DATA), ибо данная комбинация теперь вырезается парсером в момент публикации поста. Те кнопки, что уже были опубликованы ранее - вполне себе работают.

[identity profile] fire-81.livejournal.com 2011-03-01 08:31 am (UTC)(link)
и эту возможность похоже ТОЖЕ закрыли :*(

[identity profile] pc.livejournal.com 2011-03-02 04:37 pm (UTC)(link)
зря вы панику разводите, кнопка фейсбука в ЖЖ попрежнему вставляется через OBJECT + DATA http://berillxvi.livejournal.com/162752.html

а ваш код, действительно не работает, почему - не знаю

[identity profile] isolder.livejournal.com 2011-03-05 08:00 am (UTC)(link)
Ваш способ тоже не работает в Файерфоксе (3.6.15)

[identity profile] pc.livejournal.com 2011-03-06 03:19 pm (UTC)(link)
Проверил, работает

[identity profile] mazzoniguide.livejournal.com 2011-04-24 09:29 pm (UTC)(link)
ни в хроме ни в файрфоксе не работает

[identity profile] pc.livejournal.com 2011-04-25 11:43 am (UTC)(link)
уже нет, когда писался комент - работало

[identity profile] kirillgubin.livejournal.com 2011-03-07 08:49 pm (UTC)(link)
Прочитал все до конца с огромным интересом и могу сказать только одно: sly2m - ты мега человечище) Спасибо за интересный пост с объяснениями что да как. Я эти кнопки вообще в дизайн планировал вставить!Но думаю,что пока не стоит заморачиваться..

[identity profile] sly2m.livejournal.com 2011-03-07 09:46 pm (UTC)(link)
Если это правда, и ты действительно отказался от идеи ставить любого вида кнопочки в посты жж после прочтения моей записи - я считаю, что старался не зря, и мой план минимум - выполнен.

[identity profile] kirillgubin.livejournal.com 2011-03-07 10:08 pm (UTC)(link)
Хотел найти пост по практическому внедрению этих кнопок, а убедился в том, что лучше не надо этого)
Ограничимся кнопочками от Яндекса типа "В день мой блог посещают..." насколько я знаю они без проблем ставятся

[identity profile] kukmor.livejournal.com 2011-03-08 05:07 pm (UTC)(link)
прикольно
(deleted comment)

[identity profile] kukmor.livejournal.com 2011-04-24 06:09 pm (UTC)(link)
конечно
сам так не копался в жж
но интересно

[identity profile] alter19.livejournal.com 2011-03-11 01:58 pm (UTC)(link)
Наверное вы это уже знаете, или вам писали, но кнопок нет.
Так же как их нет у меня в журнале при простой установке через HTML.
В теле поста они есть а в журнале не визуализируются.

[identity profile] sly2m.livejournal.com 2011-03-11 02:05 pm (UTC)(link)
Зато сейчас снова старый механизм заработал - http://sly2m.livejournal.com/394946.html

Короче нужно творить, выдумывать, пробовать...

[identity profile] to-be-friends.livejournal.com 2011-04-13 02:54 pm (UTC)(link)
Всё! Они сделали! Теперь можно нажать Share и запостить в разные сети. В том числе в фейсбук. Правда человек должен об этом знать. :)

[identity profile] rttv.livejournal.com 2011-04-14 05:05 am (UTC)(link)
Появилась необходимость поставить "лайк" к жжшной записи. Попробовал и так и так не работает. Либо просит плагин, либо выпиливает из хтмл-кода почти все. Файрфокс.

Какая методика есть на сегодня?

[identity profile] sly2m.livejournal.com 2011-04-14 06:15 pm (UTC)(link)
Не знаю, они там в СУПе каждые две недели код меняют. Пробовать нужно.

[identity profile] mazzoniguide.livejournal.com 2011-04-24 09:58 pm (UTC)(link)
Есть два вопроса, на которые я так и не смог найти ответа:

1. Как можно удалить аннотацию: "54 людям это нравится. Будьте первыми среди своих друзей", а оставит просто в таком виде:
Image

2. Как сделать все кнопки в один ряд, а не одну над другой?

[identity profile] mazzoniguide.livejournal.com 2011-04-24 11:05 pm (UTC)(link)
И как убрать чудовищный отступ снизу кнопки?