Drupal Probleme und Fehlermeldungen
- path_to_theme() gibt statt des Theme Pfads modules/field (oder ein anderes Modul) zurück
- Nach Upgrade: Fatal error: Call to undefined function drupal_path_initialize() in [...]/includes/common.inc on line 5131
- 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
- Das Zahnrad zum Bearbeiten der Konfiguration erscheint nicht bei den Blöcken, obwohl die Rolle die Berechtigung hat, Blöcke zu bearbeiten
- sitemap.xml -> 404 Seite nicht gefunden
- PHP Notice / Strict / Warning Meldungen deaktivieren
- Das Superfish Menü Flickert in Safari bei einem webkit-transform Effekt
- 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).
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
Damit 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 🙂
.