ShariffWrapper – Übergebene URL manipulieren

Bei einem Projekt wurde das Plugin Shariff Wrapper verwendet um s.g. SharingButtons Datenschutzkonform zu verwenden.

 

 

 

 

Sharingbuttons sind Links auf der Webseite mit deren Hilfe die URL der Seite auf der ich mich befinde mit einen Klick in Sozialen Netzwerken wie Twitter, Facebook, Google+ usw geteilt werden kann.

 

Zwar stellen alle diese Dienste Codeschnipsel bereit im solch einen Button ein zubinden, aber die Lösung ist Datenschutzrechtlich Problematisch, da für das erzeugen der Buttons jeweils Kontakt mit dem Diensteanbieter aufgenommen wird. Auch wenn ich die angesehene Seite nicht “teile” weiß der Dienst (Beispielweise Facebook) das ich diese Seite angesehen habe. Wer sich genau damit auseinander setzen möchte, sei auf Heise verwiesen.

Im konkreten Projekt war das Problem, das eine Seite in WordPress einen Shortcode enthielt, der weitere URL-Parameter auswertete. Der URL Parameter war eine VeranstaltungsID aus einer externen Tabelle in der Datenbank.

Während der Benutzer auf der Seite frank.dev/seitenname?event=ID war, wurden vom ShariffWrapper nur frank.dev/seitenname an die Dienste übergeben.

 

Das Plugin stellt mit dem dem Filter shariff3UU_render_atts einen Hook bereit, mit dem das $atts Array manipuliert werden kann.
Bei einem ersten ausgeben des Arrays fand ich dort allerdings nicht die Adresse der aktuellen Seite.

array (size=4)
  'version' => string '4.3.0' (length=5)
  'add_after' => 
    array (size=2)
      'posts' => int 1
      'pages' => int 1
  'shortcodeprio' => string '10' (length=2)
  'services' => string 'twitter|facebook|googleplus|info' (length=32)

Einige Zeilen tiefer im Code vom ShariffWrapper wird der Permalink der aktuellen Seite als URL verwendet, AUSSER wenn in dem Config Array ein Eintrag mit dem Key url vorhanden ist, dann wird dieser verwendet.

Wenn wir also über den  Filter shariff3UU_render_atts dem Array die url hinzufügen ist das Problem gelöst.

function staude_shariff_url( $atts) {
 $url = get_permalink();
 $id = (int) $_REQUEST[ 'eventid'];
 if ($id > 0 && $id != '' ) {
   $url = add_query_arg( 'eventid', $id , $url );
   $atts[ 'url'] = $url;
 }
 return $atts;
}

add_filter ( 'shariff3UU_render_atts', 'staude_shariff_url' );

 

 

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert