Drupal

  • Drupal Kommentare DSGVO-konform

    Um dem sinnigen Thema Datenschutz nicht nur im Rahmen der DSGVO bzw. GPDR nachzukommen, habe ich nach etwas Recherche in Punkto Kommentare (Achtung, das ist keine Rechtsberatung ;-D) für diese Site folgendes unternommen:

    • Die Mail-Benachrichtigung bei neuen Kommentaren via comment_notify1 habe ich deaktiviert und deinstalliert, da ich momentan keinen Weg kenne, dies mit Double-Opt-In umzusetzen.
    • Ich nutze ich keinen Dienst für Spam-Erkennung von einem Drittanbeiter (vergl. Mollom o. Akismet), sondern setze auf die im Vergleich zu Captchas für den Benutzer weniger aufdringlichen Module Hashcash2 und Honeypot3
    • IP-Adressen in Kommentaren bewahre ich, aufgrund von berechtigtem Interesse 7 Tage auf, bevor ich diese mit Nullen überschreibe. Dafür habe ich ein kleine Shellskript geschrieben, welches ich via Cron ausführen lasse.

    Weiterlesen

  • Ein Experiment: drupalcamp.ruhr goes BarCamp

    Teilnehmer fotografieren das Session Board #dcruhr18 an Tag 2
    hat jeder das sessionboard fotografiert? #dcruhr18, © Ronald Krentz, https://twitter.com/rokr/status/975309942579236864

    Ich glaube es war so im Sommer letzen Jahres, als mein Freund und Genosse1 Boris Runte mich fragte, ob ich nicht Lust hätte, das fünfte DrupalCamp Ruhr 2018 als UnConference bzw. BarCamp (was es soweit mir bekannt noch nicht gegeben hat) mit zu gestalten und den dazugehörigen OpenSpace2 zu halten.

    Klar! Ich mag BarCamps, finde Konferenzen mit OpenSpace Technologie wirklich gut und habe schon selbst den ein oder anderen OpenSpace facilitiert3. Richtig gut fand ich die Idee aber, weil uns in der Drupal Community meiner Meinung nach ein Konferenzformat fehlt, in dem noch mehr Partizipation möglich ist und welches sich noch mehr an den Bedürfnissen ihrer Teilgeber orientiert.

    Nicht zuletzt würde hier durch Diversität, Offenheit und Interaktion der Teilgeber gefördert. Ich hatte echt Lust auf dieses Experiment und wollte da unbedingt mitmachen. In diesem Artikel möchte ich meine Erfahrungen, Probleme und FuckUps bei der Organisation einesDrupal BarCamps teilen.

    Weiterlesen

  • PHP_CodeSniffer und PHP Mess Detector mit Syntastic in Vim integrieren

    VIM mit Syntastic for PHP  and Drupal development
    Abbildung 1, Vim mit Editor Tab und location list.

    Bei der Statischen Code Analysehttps://de.wikipedia.org/wiki/Statische_Code-Analyse (englisch linting), welche den den White-Box-Test-Verfahren zugeordnet ist wird der Quellcode einer Software auf seine Beschaffenheit überprüft. Hierzu gehört z.B. neben dem eigentlichen Linting, in PHP mit z.B. php -l oder dem Tool phplint die Überprüfung von Coding-Standardshttps://de.wikipedia.org/wiki/Programmierstil oder das Erkennen von potenziellen Problemem bzw. suboptimalen Code wie z.B. ungenutzen Variablen, Properties oder Funktionen, zu hoher Komplexität (z.B. in Zusammenhang mit Wartbarkeit) und die Erkennung möglicher Fehler.

    In der Programmiersprache PHP werden hierfür die Werkzeuge PHP_CodeSnifferhttps://pear.php.net/manual/en/package.php.php-codesniffer.php (squizlabs/PHP_CodeSnifferhttps://github.com/squizlabs/PHP_CodeSniffer) und PHP Mess Detectorhttp://phpmd.org/about.html genutzt, welche sich bequem in IDE’s wie PHPStorm integrieren lassenhttps://confluence.jetbrains.com/display/PhpStorm/PHP+Code+Quality+Tools. Aber wie schaut es mit einem scheinbar betagtem und angestaubtem UNIX-Editor wie dem VIM aus?

    Natürlich geht das auch im VIM! Wie zeigt dieser Post.

    Weiterlesen

  • Ich bin jetzt Ubernaut

    Nach fast einer Dekade mit eigenen Linux-Root-Servern, bin ich mit meinen Domains nach uberspace1 umgezogen und überlasse das Root-Sein jetzt anderen und zwar Jonas Pasche2 und seinem Team.

    Ich habe noch Zugriff auf eine Shell und jede Menge Software zu Verfügung, so dass ich auch nicht wirklich was vermisse (Bis vielleicht manchmal die Allmacht3… xD).

    Uberspace? Uberspace beschreibt sich auf seiner Seite selbst so:

    Uberspace.de ist eine Plattform von Technikern für Techniker und alle, die es werden wollen. Wir machen Hosting für Kommandozeilenliebhaber, Datenschützer, Kontrollebehalter, Unixfreunde, Selbermacher, Waszusagenhaber. Und wenn es mal klemmt, stehen dir erfahrene Linux-Admins zur Seite.

    Dem ist meiner Meinung nach eigentlich nur noch das flexible Preismodell4 hinzuzufügen, bei dem Du den Preis selbst wählen und anpassen kannst.

    Hier beschreibe ich, wie meine Drupal6-Site netzaffe.de ein neues Zuhause bezieht (lässt sich wahrscheinlich ohne viel Anpassung auch auf Drupal 7 anwenden) und Mail- und Webserver für die gleichnamige Domain aufgeschaltet werden.

    Weiterlesen

  • pear.phpunit.de, Composer und Drupal

    PHUnit und PEAR

    Während der Installation von der benötigten Pakate für das PHING-Drupal-Templatehttps://github.com/reinblau/phing-drupal-build, einer XML-Build-Datei für ein Phing-Build-System für Drupal-Projekte als zentraler Bestandteil eines PHING-Drupal-Jobshttp://reload.github.io/jenkins-drupal-template/ für den Continous Integrationhttp://de.wikipedia.org/wiki/Kontinuierliche_Integration Server Jenkinshttp://jenkins-ci.org/ lief ich in einer längere Fehlersuche. Zwei Pakete die durch pear.phpunit.de bereitgestellt werden, phpcpdhttps://github.com/sebastianbergmann/phpcpd, ein PHP Copy n Paste Detector und phplochttps://github.com/sebastianbergmann/phploc, ein Tool für Code-Metriken sollen laut den Anforderungenhttp://reload.github.io/phing-drupal-template/ via PEAR installiert werden.

    pear channel-discover pear.phpunit.de 
    

    Aber schon die sog. “Channel discovery”, vergleichbar mit einem apt-get update nach einer Erweiterung der Repositories schlägt fehl…

    Error: No version number found in <channel> tag Discovering channel pear.phpunit.de over http:// failed with message: channel-add: invalid channel.xml file 
    Trying to discover channel pear.phpunit.de over https:// instead Error: No version number found in <channel> tag
    Discovery of channel "pear.phpunit.de" failed (channel-add: invalid channel.xml file) </channel></channel>
    

    Weiterlesen

  • Drupal und Apache 2.4.x unter Debian Testing/Jessie

    Da es nicht mehr all zu lange dauert bis Debian 8 erscheint, bzw. bis Jessie den Status stable erreicht, haben wir bereits jetzt einige(in progress…) Drupal-Installationen auf eine Debian-Jessie-KVM migriert.

    Von Debian 7 zu 8 hat sich nicht nur das Major-Release-Nummer von Debian erhöht, sondern auch der Webserver Apache hat einen Sprung gemacht, von Apache Version 2.2 auf 2.4.

    Das bringt einige Implikationen mit sich…

    Weiterlesen

  • PHP Properties/Klassenvariablen in Doxygen dokumentieren

    Zur Dokumentation von Klassenvariablen, auch Properties1 oder Member genannt wird in Doxygen2 (u.a.) und PHPDoc3 (phpDocumentor 2) das Tag @var4 5 verwendet.

    In PHPDoc wird die folgende Notation verwendet, diese wird so auch in Drupals Coding-Standards6 beschrieben:

    /** 
     * Passed command line options 
     * @var string 
     */ 
     protected $commandLineOptions; 
    

    …welche in Doxygen leider weder mit Typ noch mit dem zusätzlichen Kommentar angezeigt wird.

    PHP Member Data Documenation within Doxygen, PHPDoc Notation

    Weiterlesen

  • Bassets BoF, DCVIE 2013

    Bassets BoF, DCVIE 2013 © Karl Staudinger, Quelle https://twitter.com/karl07st/status/404235198533230592

    Tobias und ich bei der Digital Asset Management mit Bassets BoF, November 2013, DrupalCampVienna.

    Weiterlesen

  • Drupal 7: hook_menu mit Wildcards

    In Zeile 6, registriere ich hier einen Menü-Pfad mit einer sog. Wildcard, also einem Platzhalter.

    Das bedeutet in diesem Fall, dass während der Pfad-Anteil example/ fix ist, dass der zweite Pfad-Anteil %node_type_nid, wie hoffentlich schon durch seine Benennung deutlich wird, Node-ID’s (nids) von Node-Typ example enthalten soll.

    <?php
    /**
     * Implements hook_menu().
     */
    function example_menu() {
      $items = array();
      $items['example/%node_type_example_nid'] = array(
        'title' => 'Example page title',
        'description' => 'Example page description',
        'page callback' => 'drupal_get_form',
        'page arguments' => array('example_form', 1),
        'access callback' => TRUE,
      );
      return $items;
    }
    
    • 404 bei Aufruf von example/123?
    • Wie bekomme ich es hin, dass der Pfad nur in Verbindung von Node-ID's vom Typ example valide ist?
    • ...vielleicht noch zusätzliche Validierungen?

    Weiterlesen

  • Ähnlichkeiten in SQL: Drupal + db_query + LIKE

    Den Fallstrick und die Suche möchte ich euch ersparen...

    db_like is the way to go
    <?php
    $result = db_query( 
      'SELECT * FROM person WHERE name LIKE :pattern', 
       array(':pattern' => db_like($prefix) . '%') 
    ); 
    

    Weiterlesen

Subscribe