Drupalall

In Drupal 7 zogen über 50 Zusatz-Module ein

Bild von tobiasb

Daniel F. Kudwien a.k.a sun a.k.a tha_sun hat ein netten Blogeintrag [engl.] geschrieben, in dem er ausführlich berichtet welche Zusatz-Module von Drupal 6 mit ins Haus von Drupal 7 eingezogen sind. http://www.unleashedmind.com/de/blog/sun/more-than-50-drupal-modules-mov...

Deutsche Übersetzung zum Modul Ed_Readmore

Bild von tobiasb

Deutsche Übersetzung für das Ed_Readmore Modul. (Version 6.x-5.0-rc4)

Einmal als Po-Datei zum Importieren und als Modulpaket.

Drupal und Übersetzungsdateien

Bild von tobiasb
Das Modul kann jetzt hier http://drupal.org/project/po_re_importer heruntergeladen werden. Dann bitte vorher das Modul deinstallieren; Modulverzeichnis löschen, dann erst dann das Modul von drupal.org erneut installieren. Hätte nicht gedacht das ich den CVS-Account innerhalb von 1 Stunde bekomme, ansonsten hätte ich mir den letzten Update auf diese Art auch sparen können. Die erste Version enthält leider nicht die deutsche Übersetzung, habe ich vergessen hinzuzufügen. Diese kann aber hier http://localize.drupal.org später heruntergeladen werden.
Po-Re-Importer Konfigurationsseite
Po-Re-Importer Konfigurationsseite

Deutsche Übersetzung für Invite

Bild von tobiasb

Deutsche Übersetzung für das Invite Modul. (Version 6.x-2.0-alpha1)

Einmal als Po-Datei zum nachträglichen Importieren und als Komplettpaket für eine Neuinstallation.

"Was ist Drupal?" in 57 Sekunden

Bild von tobiasb

Das Video What is Drupal? gewann sechs Telly Awards. Das Video, produziert von pingVision soll eine kleine Vorstellung von Drupal sein.

Linuxtag 2009 zu ende und Fotos sind online

Bild von tobiasb

Die Messe ist jetzt seit dem letzten Samstag zu ende und hier jetzt meine kurzer Statement.

Es waren irgendwie weniger Leute allgemein auf der Messe, es könnte aber daran gelegen haben, dass unser Stand diesmal nicht so präsent war wie letztes Jahr.

Unsere Besucher waren meistens sehr speziell und zielorientiert. Das heißt sie benutzen schon Drupal und haben konkrete Fragen gestellt, was nicht schlimm war, aber nicht Ziel einer Messe ist.

Gute Nachrichten für alle XML-Sitemap 6.x-1.0 Benutzer

Bild von tobiasb

Für alle die XML-Sitemap benutzen und sich ärgern warum die XML nicht richtig angezeigt wird etc. bzw. geärgert haben, weil wieder deaktiviert. Den sei gesagt, dass mit der Veröffentlichung von 6.x-1.0-rc1 http://drupal.org/node/508262, die XML wieder funktioniert. Überzeugen könnt Ihr euch, wenn Ihr einfach mal meine anschaut http://blog.tobiasbaehr.de/sitemap.xml.

Drupal ist wieder auf der Messe Linuxtag 2009 in Berlin

Bild von tobiasb

Es ist wieder soweit vom 24. - 27.06.2009 findet die Messe Linuxtag auf dem Berliner Messegelände in Berlin statt. Drupal wird vertreten durch die Usergroup Berlin in Halle 7.b/Stand 101c als Open-Source Aussteller anwesend sein.

Und am Donnerstag, den 25. Juni, ab 16:00 Uhr sind alle Drupalfreunde die unseren Stand besuchen eingeladen auf Freibier. Dann heisst es : "free as in beer, free as in speech"!.

EDIT: Beginn ca. 18 Uhr.

gruppenfoto_linuxtag2008_1.jpg

Drupal_write_record

Bild von tobiasb

Mit dieser schicken Funktion kann man sehr elegant Daten in seiner Datenbank abspeichern ohne den SQL-Code dafür schreiben zu müssen.
Unterstützte Datenbank-Operationen sind INSERT und UPDATE.

Die Datenbank-Tabelle muss ein Primary Key aufweisen, damit man diese Funktion nutzen kann.

Die Schlüssel oder Eigenschaften des Objects bilden dabei immer den Spaltennamen.

Parameter: 

$table Der Name der Tabelle, die muss in der Schema-Api vorhanden sein.

$object Das Object was geschrieben werden soll. Das Object ist eine Referenz, die Standardwerte werden wie in der Schema-API entprechend gefüllt, ebenfalls die ID bei Serial Typ(en). Es kann sowohl ein Array als auch ein Object übergeben werden.

$update Wenn dies ein UPDATE ist, müssen hier die Namen der Primary Keys angegeben werden. Ob der Datensatz bereits in der Datenbank vorhanden ist, muss selbst vorher überpüft werden. Wenn es nur 1 Schlüssel gibt, muss nur ein einfach String übergeben werden.

Rückgabe: 
Bei einem erfolglosen schreiben des Datensatz, wird FALSE zurückgegeben. Ansonsten SAVED_NEW oder SAVED_UPDATED, abhängig davon, welche Operation durchgeführt wird. Die $opject Parameter enthaltene Werte für alle Serial-Felder, welche durch $table definiert sind. Zum Beispiel, $object->nid wird nach dem einfügen einer Node zur Verfügung stehen.
Code der Funktion: 
  1. <?php
  2. function drupal_write_record($table, &$object, $update = array()) {
  3.   // Standardize $update to an array.
  4.   if (is_string($update)) {
  5.     $update = array($update);
  6.   }
  7.  
  8.   $schema = drupal_get_schema($table);
  9.   if (empty($schema)) {
  10.     return FALSE;
  11.   }
  12.  
  13.   // Convert to an object if needed.
  14.   if (is_array($object)) {
  15.     $object = (object) $object;
  16.     $array = TRUE;
  17.   }
  18.   else {
  19.     $array = FALSE;
  20.   }
  21.  
  22.   $fields = $defs = $values = $serials = $placeholders = array();
  23.  
  24.   // Go through our schema, build SQL, and when inserting, fill in defaults for
  25.   // fields that are not set.
  26.   foreach ($schema['fields'] as $field => $info) {
  27.     // Special case -- skip serial types if we are updating.
  28.     if ($info['type'] == 'serial' && count($update)) {
  29.       continue;
  30.     }
  31.  
  32.     // For inserts, populate defaults from Schema if not already provided
  33.     if (!isset($object->$field) && !count($update) && isset($info['default'])) {
  34.       $object->$field = $info['default'];
  35.     }
  36.  
  37.     // Track serial fields so we can helpfully populate them after the query.
  38.     if ($info['type'] == 'serial') {
  39.       $serials[] = $field;
  40.       // Ignore values for serials when inserting data. Unsupported.
  41.       unset($object->$field);
  42.     }
  43.  
  44.     // Build arrays for the fields, placeholders, and values in our query.
  45.     if (isset($object->$field)) {
  46.       $fields[] = $field;
  47.       $placeholders[] = db_type_placeholder($info['type']);
  48.  
  49.       if (empty($info['serialize'])) {
  50.         $values[] = $object->$field;
  51.       }
  52.       else {
  53.         $values[] = serialize($object->$field);
  54.       }
  55.     }
  56.   }
  57.  
  58.   // Build the SQL.
  59.   $query = '';
  60.   if (!count($update)) {
  61.     $query = "INSERT INTO {". $table ."} (". implode(', ', $fields) .') VALUES ('. implode(', ', $placeholders) .')';
  62.     $return = SAVED_NEW;
  63.   }
  64.   else {
  65.     $query = '';
  66.     foreach ($fields as $id => $field) {
  67.       if ($query) {
  68.         $query .= ', ';
  69.       }
  70.       $query .= $field .' = '. $placeholders[$id];
  71.     }
  72.  
  73.     foreach ($update as $key){
  74.       $conditions[] = "$key = ". db_type_placeholder($schema['fields'][$key]['type']);
  75.       $values[] = $object->$key;
  76.     }
  77.  
  78.     $query = "UPDATE {". $table ."} SET $query WHERE ". implode(' AND ', $conditions);
  79.     $return = SAVED_UPDATED;
  80.   }
  81.  
  82.   // Execute the SQL.
  83.   if (db_query($query, $values)) {
  84.     if ($serials) {
  85.       // Get last insert ids and fill them in.
  86.       foreach ($serials as $field) {
  87.         $object->$field = db_last_insert_id($table, $field);
  88.       }
  89.     }
  90.   }
  91.   else {
  92.     $return = FALSE;
  93.   }
  94.  
  95.   // If we began with an array, convert back so we don't surprise the caller.
  96.   if ($array) {
  97.     $object = (array) $object;
  98.   }
  99.  
  100.   return $return;
  101. }
  102. ?>

Deutsche Übersetzung für Quota by Role

Bild von tobiasb

Einmal als Po-Datei zum Importieren und als Modulpaket.

Inhalt abgleichen