Änderung in *.module bewirkt nichts
Eingetragen von greg4b (11)
am 15.08.2012 - 21:07 Uhr in
am 15.08.2012 - 21:07 Uhr in
Hallo drupalcenter,
Bin von windows xp auf linux mint 12 gewechselt, apache2 und mysql separat installiert (nicht über XAMPP)
Das Problem ist:
Änderungen an den *.module Dateien wirken nicht.
Hab' caches gelöscht, entsprechendes Modul deaktiviert / aktiviert - nichts bewirkt. Verschiedene Browser (opera, chromium)
IDE ist eclipse und Änderungen werden im htdocs Verzeichnis auch ausgeführt (kontrolliert mit anderem Editor).
Hab' auch probiert dem apache2 das cachen auszureden - keinen Erfolg.
Bitte um Hinweise / Ideen & Vorschläge, damit ich den Wechsel XP >> Linux erfolgreich gestalten kann!
VG
Gregor
- Anmelden oder Registrieren um Kommentare zu schreiben
In welchem htdocs-Verzeichnis
am 15.08.2012 - 22:24 Uhr
In welchem htdocs-Verzeichnis denn?
Ich weiß nicht, wie das bei Linux Mint 12 ist, aber zumindest bei Oneiric ist das Verzeichnis /var/www, nicht htdocs.
/var/www/
am 16.08.2012 - 06:33 Uhr
die Änderungen werden an den (eigenen) Modul-Dateien in /var/www/ gemacht.
Es sind bei Drupal die Caches deaktiviert, Theme registry wird jedesmal neu erstellt, Cache flush vom devel-Modul ausgeführt...
Any ideas?
Und die Änderungen stehen am
am 16.08.2012 - 07:35 Uhr
Und die Änderungen stehen am Ende auch in den Dateien?
Hat /var/www die richtigen Rechte? Standardmäßig darf nicht einfach jeder User in /var/www rum schreiben.
Änderungen
am 16.08.2012 - 18:25 Uhr
Gibt's bei Drupal irgendeinen Zeitstempel, wo man sieht "wie alt" die angezeigte Seite ist???
Thx & VG
Hast du denn einfach mal ein
am 16.08.2012 - 20:50 Uhr
Hast du denn einfach mal ein echo "test" oder einen dsm("123") (sofern devel installiert) in dein Modul gepackt ?
Dies sollte sich dann außerhalb der Hooks befinden..
Wenn diese Funktionen gar nicht aufgerufen werden, kannst du schon mal sicherstellen, ob das Modul überhaupt geladen / korrekt installiert ist. Für alles Weitere müsste man schon ein wenig Code sehen, um zu schauen, ob du hier vlt. Dateien falsch benannt hast / die .info Datei nicht korrekt angelegt hast o. ä.
SteffenR
http://www.twitter.com/_steffenr
Drupal-Initiative e.V.
kein echo / dsm()
am 16.08.2012 - 22:38 Uhr
Hallo,
hab' nun meine eigenen Module durchprobiert:
echo() bzw. dsm() gibt nix aus - nur die unveränderte Seite.
Wenn ich andere Module (z.B. FAQ, oä) mit echo(123) aufrufe, dann kommt ganz links oben zuerst das 123 und dann der Rest der Seite.
Da ich URL's aufrufen kann, die von meinen Modulen stammen - nehme ich an, das diese geladen sind (sind sie deaktiviert, dann kann ich entsprechende URL's, Menü's, node's nicht hinzufügen - soweit ok)
Wie kann ich überprüfen, ob meine Module korrekt installiert sind?
Meine *.info Dateien sind:
; $Id$
name = sl3_product
description = "ein neues Produkt anlegen"
package = SL3
core = 6.x
*.module lautet:
sl3_product.module
Die Module wurden auf Windows entwickelt und dann zu Linux kopiert...
Bitte um Hinweise - thx,
Gregor
Hast Du denn Dein Modul
am 16.08.2012 - 22:57 Uhr
Hast Du denn Dein Modul überhaupt aktivieren können? Der .info-File ist mit den Zeilenenden etwas heikel. Die sollten im Unix-Stil und nicht im Widows-Stil sein. Wenn Das Modul unter den Modulen nicht aktiviert ist, hat nichts, was darin steht, eine Auswirkung.
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Änderungen wirken sich nicht aus
am 17.08.2012 - 00:09 Uhr
Hallo Werner,
hab' nun in Eclipse umgestellt auf Unix-Zeilenenden und ein .info-File mit neuen Zeilenenden versehen und zuletzt eine Leerzeile gemacht. Das betreffende Module ist aktivierbar - wie vorhin - aber es wird nachwievor kein echo(123) oder andere Änderungen ausgegeben :-(
Welche Funktionen hast Du in
am 17.08.2012 - 08:39 Uhr
Welche Funktionen hast Du in Deinem Modul und von wo sollen die aufgerufen werden?
Welche Drupal Hooks verwendest Du?
Drupal zieht Dein Modul nur an, wenn es die Funktionen daraus auch benötigt. Du könntest z.B. mittels hook_menu einen Menüpunkt/Pfad registrieren, bei dessen Betätigung dann eine Funktion Deines Moduls aufgerufen wird.
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
probiert: neuer Pfad - nix passiert
am 17.08.2012 - 20:20 Uhr
Hallo Werner,
ich hab' in einem meiner Module probehalber hinzugefügt:
$items['test'] = array(
'title' => 'Test',
'page callback' => 'sl3_kassabon_test',
'access arguments' => array('collect bons'),
);
function sl3_kassabon_test () {
$output = "Test";
return $output;
}
aber es passiert nix... die Such-Seite öffnet sich.
Hab' dann das Modul "Page Example" aktiviert - und wenn ich da im Modul was am ausgegebenen Text ändere, wird's bei Aufruf dann auch so dargestellt... Wieso bei meinen Modulen nicht!? Komisch...
UTF-8?
am 17.08.2012 - 21:34 Uhr
Haben die Dateien das UTF-8 Format?
Das Modul muss z.B in "/var/www/drupal7/sites/all/modules/" sein.
Ich würde die Rechte der Ordner auch nur so hoch wie nötig setzen. Bei mir gehört "var/www" root und nur die einzelnen Drupal Versions-Ordner dem Benutzer.
$items['test'] =
am 17.08.2012 - 22:57 Uhr
$items['test'] = array(
'title' => 'Test',
'page callback' => 'sl3_kassabon_test',
'access arguments' => array('collect bons'),
);
function sl3_kassabon_test () {
$output = "Test";
return $output;
}
Da fehlt doch der Funktions-Aufruf um den hook_menu. Du musst einen Hook schon gemäß den Drupal-Regeln codieren.
Der Aufbau muss wie folgt aussehen:
function mymodule_menu() {
$items['abc/def'] = array(
'page callback' => 'mymodule_abc_view',
'page arguments' => array(1, 'foo'),
);
return $items;
}
Wichtig: nicht das
return $items;
vergessen, sonst wirkt das alles nicht.Und einfach nur test als Pfad wäre mir zu riskant, da das mit existierenden Pfaden kollidieren könnte und die Access-Kontrolle würde ich zum Testen auch erst mal weglassen.
Was ist denn passiert, nachdem Du die URL deine.seite.de/test aufgerufen hast? Dann sollte Deine Callback-Funktion aufgerufen werden. In der aufgerufenen Funktion sollte dann zum Testen eine Ausgabe stehen, die Dir zeigt, dass der Aufruf angekommen ist.
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
/modules vs. /modules/custom
am 18.08.2012 - 19:59 Uhr
Hallo Chris,
danke für Deine Anregungen, die ich probiert hab'...
Und siehe da: it work's!
Wenn ich meine Module aus dem Verzeichnis .../modules/custom verschiebe in das Verzeichnis .../modules werden Änderungen im *.module file sofort angezeigt - wie's eigentlich sein soll :-)
Ich würde aber weiterhin gerne weiterhin meine Module in dem Schema
weiterverwenden (Was ja bis zum Wechsel auf Linux funktioniert hat).
Für Hinweise und Tipps - Danke im Voraus!
Gregor
Hallo Werner, Danke für die
am 18.08.2012 - 20:08 Uhr
Hallo Werner,
Danke für die ausführliche Anwort! Mein Code wäre so nicht lauffähig gewesen...
Das Problem scheint in Zusammenhang mit der Platzierung meiner Module in .../modules/custom zusammenzuhängen, denn in .../modules werden Änderungen in dem Source-File angezeigt (wie es sein soll).
Ich würde aber gerne bei .../modules/custom bleiben!
Any ideas?
Thx & VG
gregor
Wie sind die Zugriffsrechte
am 18.08.2012 - 20:21 Uhr
Wie sind die Zugriffsrechte auf Custom gesetzt und wie führst Du PHP-Code aus, als Apache-Modul oder als CGI. Der Prozess, der den Code ausführt, muss Execute-Rechte auf dem Verzeichnis Custom haben, um auf das Unterverzeichnis durchgreifen zu können. Wenn er nicht durchgreifen kann, kann er den Code auch nicht lesen.
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
sites/all/modules/custom
am 18.08.2012 - 20:52 Uhr
Hallo Gregor
Schön, dass es nun standardmässig in "sites/all/modules/" funktioniert. :-)
Die Module in Unterordner wie "custom" zu verschieben ist ja auch nur nötig wenn man sehr viele Module hat und eine "bessere/schnellere" Übersicht möchte. Gemäss Dokumentation sollte das aber auch möglich sein.
Bevor aber die Module verschoben werden, würde ich sie ganz deinstallieren "admin/modules/uninstall" und neu installieren.
Chris
modules/custom
am 18.08.2012 - 21:28 Uhr
Hallo Werner,
der return von php_sapi_name() ist apache2handler - nehme an, php läuft als Apache-Modul.
Die Rechte für sites/all/modules/custom sind für Owner, Group & Others auf "rwx" gesetzt - sollten also ausführbar sein. UID, GID & sticky sind nicht gesetzt.
Braucht's einen speziellen User?
In der Zwischenzeit hab' ich auch den umgekehrten Weg probiert: ein Modul (example) von ...modules/ nach /modules/custom verschoben und dort aktiviert. Änderungen sind sichtbar....
Meine Folgerung: Zugriffsrechte ok, es hat was mit meinen Modulen zu tun - aber was?
Dann fällt mir nur noch
am 18.08.2012 - 21:34 Uhr
Dann fällt mir nur noch Text-Codierung (utf8) und Unix-Zeilenenden ein. Andernfalls gibt es manchmal Probleme.
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
rätselhaft
am 19.08.2012 - 23:02 Uhr
Hallo Werner & Drupalcenter!
hab' mittels Linux-Tool "dos2unix" die Zeilenende umgewandelt und mittels iconv auf UTF-8.
Allerdings ohne Erfolg...
Nachdem ein Bild mehr als 1000 Worte sagt hab' ich das Dilemma mal mittels Screenshots dargestellt:
Link
Gibt's eine Möglichkeit zu ersehen, wann das Angezeigte gerendert wurde? Woher stammt der angezeigte Content - von dem momentan aktuellen *.module File nicht ...
Danke & VG
Gregor
Testinstallation
am 11.09.2012 - 17:55 Uhr
Ich denke das Modul wurde nicht komplett deinstalliert.
Tritt das Problem nur bei deinen oder bei anderen contributed modulen auf? Installiere doch ein komplett neue Drupal-Site und installiere zuerst contibuted Module in einem Unterordner und erst dann deine Module.