Integracja wtyczki tt_news z komentarzami Disqus

Opublikował:‌ WG admin
Kategorie: Rozszerzenia, TypoScript, HTML i CSS

Coraz więcej stron do obsługi komentarzy na stronie używa systemu Disqus. System prosty w implementacji i dość intuicyjny w obsłudze zarówno dla właścicieli witryn jak i samych komentujących.

Dlaczego więc piszę artykuł skoro implementacja kodu jest tak prosta? No właśnie… Jeżeli wykorzystujesz u siebie wtyczkę tt_news i zależy Ci jedynie na możliwości komentowania, dalej czytać nie musisz – rozszerzenie dodasz bez większych problemów i będzie działało (przynajmniej w większości przypadków). Jeżeli natomiast chciałbyś umieścić na liście newsów licznik komentarzy to czytaj dalej.

Na początek uwaga – Nie będę pisać jak wygenerować, skonfigurować oraz umieścić kod Disqus na stronie – z tym powinien sobie każdy poradzić.

Nie znalazłem w repozytorium TYPO3 wtyczki, która by się integrowała z wtyczką tt_news i w pełni ją obsługiwała. Sam proces umieszczenia kodu odpowiedzialnego za umieszczanie i wyświetlanie komentarzy na stronie jest stosunkowo prosty i ogranicza się do wstawienia kodu JavaScript jako obiektu HTML - mi natomiast najbardziej brakowało możliwości dodania licznika komentarzy na widoku listy. W manualu, który został przygotowany przez programistów systemu Disqus wystarczy (oprócz kodu JavaScript) wstawić poniższy fragment do każdego elementu listy na stronie i sprawa załatwiona:

<a href="http://example.com/article2.html#disqus_thread">Second article</a>

Wszystko pięknie i ładnie, tylko jak wygenerować we wtyczce tt_news tak zmodyfikowany link? Z pomocą przychodzi nam genialne rozwiązanie: genericmarker, dzięki któremu możemy w szablonach LIST, LATEST, SINGLE itp. umieścić własne markery wyświetlające przygotowany przez nas kod TypoScript. Jak tego dokonać – już spieszę z wyjaśnieniami:

Na początek „podwaliny” markera:

Kod:  Zaznacz wszystko  |  Linenumbers on/off
  1. plugin.tt_news.genericmarkers.URL = COA
  2. plugin.tt_news.genericmarkers.URL {
  3.     1 = TEXT
  4.     1.data = TSFE:baseUrl
  5.     2 = TEXT
  6.     2 {
  7.         value =
  8.         typolink = 1
  9.         typolink {
  10.             #Page UID where your single view plugin is placed
  11.             parameter = 22
  12.             additionalParams = &tx_ttnews[tt_news]={field:uid}
  13.             additionalParams.insertData = 1
  14.             returnLast = url
  15.         }
  16.     }
  17.     wrap = <a href="|#disqus_thread">article</a>
  18. }

Następnie edytujemy szablon listy, w którym chcemy umieścić licznik danych i umieszczamy marker ###GENERIC_URL### Pozostaje nam jedynie dodanie kodu JavaScript przed znacznikiem </body>:

Kod:  Zaznacz wszystko  |  Linenumbers on/off
  1. <script type="text/javascript">
  2.   /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
  3.   var disqus_shortname = 'example'; // required: replace example with your forum shortname
  4.  
  5.   /* * * DON'T EDIT BELOW THIS LINE * * */
  6.   (function () {
  7.     var s = document.createElement('script'); s.async = true;
  8.     s.type = 'text/javascript';
  9.     s.src = 'http://' + disqus_shortname + '.disqus.com/count.js';
  10.     (document.getElementsByTagName('HEAD')[0] || document.getElementsByTagName('BODY')[0]).appendChild(s);
  11.   }());
  12. </script>

Czyścimy cache i jeżeli posiadaliśmy już jakieś komentarze pod artykułami naszym oczom powinny się pojawić na liście liczniki z danymi.

Wasze komentarze:

comments powered by Disqus

Komentowanie - zasady

Autorzy komentarzy zamieszczonych w serwisie webground.pl publikują swoje opinie wyłącznie na własną odpowiedzialność.

Właściciel serwisu webground.pl nie ponosi żadnej odpowiedzialności za treści umieszczone przez użytkowników portalu