Sitecore (социальный соединитель sitecore) - невозможно настроить контент, размещенный на facebook/twitter

Я недавно установил модуль социального коннектора sitecore и разместил на странице твит и кнопки "Мне нравится", но я не могу контролировать содержимое, которое отправляет в твиттер / фейсбук. Кнопка твит отправляет заголовок страницы в виде текста для твита, и я хотел бы переопределить это.

Ссылка в Facebook, похоже, ничего не делает. Если я вернусь на ту же страницу, она по-прежнему показывает 1 лайк, но на моей странице в Facebook ничего не появилось.

Любая помощь будет принята с благодарностью.

2 ответа

Решение

Извиняюсь за очень поздний ответ. Я не понимал, что кто-то спросил меня об ответе.

В конце концов, мне было проще использовать стандартные элементы управления Twitter/Facebook. С тех пор я узнал, что, хотя у Sitecore есть несколько полезных модулей для обработки операций CMS, на стороне доставки контента часто проще использовать любую веб-технологию, которую проще всего реализовать.

https://dev.twitter.com/web/tweet-button

https://developers.facebook.com/docs/plugins/share-button?locale=en_GB

Я декомпилировал CodeBehind для подслоя Tweet, и он имеет это для кода:

protected void Page_Load(object sender, EventArgs e)
{
        string text = "var xmlhttp;if (window.XMLHttpRequest){ xmlhttp=new XMLHttpRequest();}else{xmlhttp=new ActiveXObject(\"Microsoft.XMLHTTP\");}xmlhttp.open(\"GET\",url,true);xmlhttp.send();";
        string script = string.Format("<script>twttr.events.bind('tweet', function (event) {{var url = '{2}?itemid={1}&eventname={3}&buttontype=tweet';{4}}});</script>", new object[]
        {
            Sitecore.Context.User.Name.Replace('\\', '.'), 
            Sitecore.Context.Item.ID.ToString(), 
            "/layouts/system/Social/SocialEvents.aspx", 
            base.EventName, 
            text
        });
        this.Page.RegisterStartupScript("tweetsubscribe", script);
}

Если вы хотите изменить его, вам нужно декомпилировать Sitecore.Social.dll который находится в упаковке. Распакуйте пакет и откройте files папка и DLL будет в /bin/,

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

Обновление: просто чтобы уточнить, вам нужно декомпилировать текущий C# в DLL, чтобы внести в него изменения. Вы можете перекомпилировать в отдельный проект, вам просто нужно изменить Inherits="" в передней части управления, например,

Вместо этого:

Inherits="Sitecore.Social.Sharing.Controls.TweetButton"

Сделайте что-то вроде этого:

Inherits="MyProject.Sharing.Controls.TweetButton"
Другие вопросы по тегам