Linux und Ich

Blog über Ubuntu, Linux, Android und IT

drupal

Admin von der ‘Beitrag gelesen’-Zählung im Drupal CMS ausnehmen

| Keine Kommentare

Eine Standardinstallation von Drupal zählt bei aktiviertem Statistik-Modul wie oft ein Artikel gelesen, sprich aufgerufen, wurde. Allerdings wird dabei jeder Aufruf gezählt. Überarbeitet man beispielsweise als Administrator Beiträge, so verändert man dabei die Anzahl der Hits. Möchte man die Zahlen also “sauber” halten, so muss man Drupal ein wenig anpassen

Anzeige

Dazu bearbeitet man die Datei statistics.module im Verzeichnis modules/statistics. Hier ersetzt man die Funktion statistics_exit() mit folgendem Code.

function statistics_exit() {
  global $user, $recent_activity;

  drupal_bootstrap(DRUPAL_BOOTSTRAP_PATH);

  if (variable_get('statistics_count_content_views', 0)) {
    // We are counting content views.
    if ((arg(0) == 'node') && is_numeric(arg(1)) && arg(2) == '') {
      // A node has been viewed, so update the node's counters.
      // exclude admin & node author
$nid = arg(1);
$node = node_load($nid);
$node_author = $node->uid;
if (!user_access('administer nodes') && $user->uid!=$node_author) {
          db_query('UPDATE {node_counter} SET daycount = daycount + 1, totalcount = totalcount + 1, timestamp = %d WHERE nid = %d', time(), arg(1));
         // If we affected 0 rows, this is the first time viewing the node.
          if (!db_affected_rows()) {
        // We must create a new row to store counters for the new node.
        db_query('INSERT INTO {node_counter} (nid, daycount, totalcount, timestamp) VALUES (%d, 1, 1, %d)', arg(1), time());
    }
         }
    }
  }
  if ((variable_get('statistics_enable_access_log', 0)) && (module_invoke('throttle', 'status') == 0)) {
    // Log this page access.
    db_query("INSERT INTO {accesslog} (title, path, url, hostname, uid, sid, timer, timestamp) values('%s', '%s', '%s', '%s', %d, '%s', %d, %d)", strip_tags(drupal_get_title()), $_GET['q'], referer_uri(), $_SERVER['REMOTE_ADDR'], $user->uid, session_id(), timer_read('page'), time());
  }
}

Anschließend wird der Zähler nicht mehr erhöht, wenn ein Administrator oder der Autor eines Nodes den entsprechenden Artikel aufruft.

Autor: Christoph

Hallo, ich bin Christoph -- Linux-User, Blogger und pragmatischer Fan freier Software. Wie Ihr ohne Zweifel bemerkt haben solltet schreibe ich hier über Linux im Allgemeinen, Ubuntu im Speziellen, sowie Android und andere Internet-Themen. Wenn du Freude an meinen Artikel gefunden haben solltest, dann kannst du mir über Facebook, Google+ oder Twitter oder natürlich dem Blog folgen.

Hinterlasse eine Antwort

Pflichtfelder sind mit * markiert.

Die Eingabe einer E-Mail Adresse ist hier im Blog nicht nötig! Ihr müsst nur dann eine E-Mail angeben, wenn ihr bei neuen Kommentaren benachrichtigt werden möchtet, oder über Gravatar euer Nickpic neben eurem Kommentar erscheinen soll.