Drupal Probleme und Fehlermeldungen

path_to_theme() gibt statt des Theme Pfads modules/field (oder ein anderes Modul) zurück

Als ich das letzte mal in ein Field Template anpassen wollte (field–[FIELD_NAME]–[PAGE_NAME].tpl.php), benötigte ich den theme path. Doch als ich diesen über path_to_theme() ausgeben wollte, war der return „modules/field“ – da dieses Theme File zum Fields Modul gehört – und man path_to_theme innerhalb Modulen anscheinend nicht verwenden kann.

Lösung: statt

path_to_theme();

Folgendes verwenden:

base_path() . drupal_get_path('theme', variable_get('theme_default', NULL))

Dann klappts 🙂

Nach Upgrade: Fatal error: Call to undefined function drupal_path_initialize() in […]/includes/common.inc on line 5131

Nach einem Core Upgrade kann es immer wieder zu solchen oder ähnlichen Fehlermeldungen kommen. Das wichtigste ist, dass der Drupal Cache gelöscht ist. Wenn PHP mit APC Cache oder anderen Cache System läuft, muss PHP unbedingt auch neu gestartet werden.

1) PHP restart – das ist sehr wichtig, denn PHP scheint die alten Verzeichnisstrukturen in gewissen Fällen zu cachen

/usr/local/etc/rc.d/php-fpm restart

2) Cache löschen (mit drush)

drush -l http://www.sitename.com -r /www/sitename.com/drupal cache-clear

Fatal error: require_once() [function.require]: Failed opening required ‚[…]/modules/system/system.tar.inc‘ (include_path=‘.:/usr/share/pear:/usr/share/php‘) in […]/includes/bootstrap.inc on line 3088

Kann sein, dass sich z.B. nach einem Drupal Kern Upgrade fehlerhafte File Permissions eingeschlichen haben. Das sah in diesem Fall so aus:

-rw-r--r-- 1 12663 Jan 18  2013 system.queue.inc
---------- 1 63840 Jan 18  2013 system.tar.inc
-rw-r--r-- 1 107812 Jan 18  2013 system.test

Also einfach die korrekte Berechtigung setzten, danach funktioniert wieder alles.

chmod 644 system.tar.inc

Das Zahnrad zum Bearbeiten der Konfiguration erscheint nicht bei den Blöcken, obwohl die Rolle die Berechtigung hat, Blöcke zu bearbeiten

contextual_linksDamit das Zahnrad angezeigt werden kann, müssen auch die Contextual links aktiviert sein – bzw. die Berechtigungen dazu.

Benutzer -> Berechtigungen

admin/people/permissions

Contextual links -> Kontextabhängige Links verwenden aktivieren.

sitemap.xml -> 404 Seite nicht gefunden

Wenn das Modul

XML sitemap internationalization (xmlsitemap_i18n)

aktiviert ist, wird für jede Sprache eine separate Sitemap generiert. Daher ist der default Link zu sitemap.xml ungültig. Wenn ich jedoch nur 1 Sprache aktiviert hab, einfach das internationalization Modul für die XML Sitemap deaktivieren. Danach Sitemap rebuilden

Konfiguration > Suche und Metadaten > XML Sitemap > Rebuild Links

Danach ev. noch Cache löschen und Cronjob manuell ausführen. Danach sollte die Sitemap aufrufbar sein.

PHP Notice / Strict / Warning Meldungen deaktivieren

Grundsätzlich kann man dies im php.ini machen. Manchmal hat man aber darauf keinen Zugriff. Dann kann man das auch über die settings.php Datei im Drupal machen.

/sites/default/settings.php

Einfach folgende Zeile einfügen:

@ini_set('error_reporting', E_ALL & ~E_NOTICE & ~E_WARNING & ~E_DEPRECATED  & ~E_STRICT);

Danach sollten diese Meldungen nicht mehr protokolliert werden.

Das Superfish Menü Flickert in Safari bei einem webkit-transform Effekt

In Safari kommt es oft zu Problemen, wenn man den CSS webkit-transform Effekt benutzt. z.B.

  -webkit-transform: rotate(-2deg) translate(0px, -2px);

So kann es vorkommen, dass Elemente auf der Page zu flickern anfangen, während der Effekt läuft. Im Fall von Drupal mit Superfish kommt es dazu, dass das Menü flickert. Lösen kann man dies mit folgendem CSS

#superfish-1 ul,
#superfish-1  li {
   -webkit-transform: translate3d(0px, 0px, 1px);
}

Original Lösungsansatz #8: https://drupal.org/node/1748514

Fehler: Warning: file_get_contents() [function.file-get-contents]: http:// wrapper is disabled in the server configuration by allow_url_fopen=0 in _locale_parse_js_file() (Zeile 1488 von (…)/includes/locale.inc). 

Dieses Problem taucht auf, wenn allow_url_fopen deaktiviert ist. Wenn man Zugriff auf das php.ini hat oder die Berechtigung, die Systemvariabel allow_url_fopen zu setzen, lässt sich das Problem einfach so lösen:

im settings.php von Drupal:

@ini_set("allow_url_fopen", 1);

oder im php.ini:

allow_url_fopen = On

oder per .htaccess

php_value allow_url_fopen 1

Nicht alle Hosting Provider erlauben den Zugriff auf diese Optionen. In dem Fall muss ein Core File von Drupal angepasst werden:

vi /includes/locale.inc

ca. Zeile 1488

  /* replaced by teslina
  $file = file_get_contents($filepath);
  */
    $request = drupal_http_request($filepath);
    $file = $request->data;  
  // eof teslina

So, und nun klappt es wieder 🙂

.

Flattr this!

  • *

    Du kannst diese HTML tags verwenden: <a> <abbr> <acronym> <b> <blockquote> <cite> <code> <del> <em> <i> <q> <s> <strike> <strong>

  • Kommentar-Feed für diesen Beitrag
nach oben