Udo Neist schrieb:> Dann wäre es doch viel sinnvoller, die Fehlermeldung zu korrigieren.
Klar könnte man sie noch etwas genauer formulieren, ich wollte aber
nicht überall im Skript bei jedem Schreibzugriff noch eine Überprüfung
auf korrekte Dateirechte und ein Versuch dies automatisch zu korrigieren
einbauen, weil sowieso geplant ist eine zentrale Überprüfung auf
korrekte Dateirechte einzubauen. Die hats jetzt halt nur noch nicht in
die 0.3.0 geschafft...
Ich gebe dir schon Recht, ich finde auch eine Überprüfung der
Dateirechte (und ein Versuch, diese automatisch zu korrigieren) muss
eingebaut werden. Aber ich dachte halt, bei der 0.2.2 ging das ja auch
ohne, und es gibt ja eine gute Dokumentation in der beschrieben ist wie
man die Rechte setzt muss, da kann diese Funktion noch aufs nächste
Release warten (wir können ja nicht alle Punkte unserer ToDo-Liste in
die 0.3.0 einbauen, sonst wird die nie fertig...).
Aber von mir aus kann ich das noch einbauen, damit das dann in der 0.3.0
RC2 drin ist.
> Die config_defaults.php führt in die Irre. Viele PHP-Projekte schleppen> eine solche Datei mit, die dann oft vom Anwender umkopiert werden soll,> damit die Installation klappt.
Ja das stimmt, aber trotzdem sollte man einen kurzen Blick in die
Installationsanleitung werfen :-)
Ich habe hier halt ein etwas anderes Konzept gewählt weil ich der
Meinung bin, dass solche Aufgaben ein grafischer Installer übernehmen
soll (wenn sowieso eine grafische Oberfläche vorhanden ist) und nicht
ein händisches Rumkopieren von Dateien. Wozu von Hand Dateien
rumkopieren, wenn es im Installer viel einfacher und schneller geht und
man so auch noch nichts falsch machen kann?
Den Dateinamen "config_defaults.php" könnte ich natürlich in
"DontToucheMe.php" umbenennen, das würde das Problem beheben, ist aber
nicht gerade Entwicklerfreundlich ;-)In dieser Datei werden halt
Standardwerte für die Konfiguration geladen, für den Fall dass diese in
der config.php nicht definiert sind. Da fand ich halt "config_defaults"
passend ;-)
Ich hätte aber zwei Vorschläge, diesem Problem entgegenzuwirken:
- Eine fette Warnung in die config_defaults.php einbauen "do not
copy...read manual at http://......!"
- Mal schauen ob das Skript feststellen kann, ob der Benutzer die
config_defaults.php als Vorlage verwendet hat, um dann eine
Fehlermeldung ausgeben zu können.
> Einfach die Datei gleich schon im> data-Verzeichnis unterbringen und eventuell auch defaults.php nennen> oder eine leere config.php mitliefern? Die config.php aus 0.2.2 würde ja> entsprechend umgeschrieben.
Eine leere config.php mitliefern ist schlecht, dann wird die config.php
des Benutzers bei jedem Systemupdate mit dieser config.php
überschrieben.
Eine defaults.php mitzuliefern dient irgendwie nicht der Bekämpfung der
Ursache, sondern des Symptoms. Die Ursache ist: Der Benutzer meint
fälschlicherweise, er müsse seine config von Hand anlegen. Mit einer
defaults.php lässt man ihn auch noch glauben, das sei richtig so. Die
wirklich richtige Lösung wäre aber, ihm klarzumachen dass er keine
config anzulgenen braucht, sondern einfach http://localhost/part-db/
aufrufen muss und der Installer dann alles für ihn erledigt.
...meine Meinung! :-)
> PS: SVN speichert die Datei/Verzeichnisrechte, da sollte man diese von> Anfang an auch richtig einstellen :-)
Oh das wusste ich gar nicht, danke :-D
mfg
Urban B. schrieb:> Ich gebe dir schon Recht, ich finde auch eine Überprüfung der> Dateirechte (und ein Versuch, diese automatisch zu korrigieren) muss> eingebaut werden. Aber ich dachte halt, bei der 0.2.2 ging das ja auch> ohne, und es gibt ja eine gute Dokumentation in der beschrieben ist wie> man die Rechte setzt muss, da kann diese Funktion noch aufs nächste> Release warten (wir können ja nicht alle Punkte unserer ToDo-Liste in> die 0.3.0 einbauen, sonst wird die nie fertig...).>> Aber von mir aus kann ich das noch einbauen, damit das dann in der 0.3.0> RC2 drin ist.
Schwerwiegend ist das ja nicht, könnte man ja mit einfachen Mitteln
erreichen. Einfach eine kleine Liste von Dateien/Verzeichnisse und deren
Rechte mitliefern, die dann bei der Installation geprüft werden können.
Könnte man aber auch in eine 0.3.1 rein nehmen.
> Den Dateinamen "config_defaults.php" könnte ich natürlich in> "DontToucheMe.php" umbenennen, das würde das Problem beheben, ist aber> nicht gerade Entwicklerfreundlich ;-)In dieser Datei werden halt> Standardwerte für die Konfiguration geladen, für den Fall dass diese in> der config.php nicht definiert sind. Da fand ich halt "config_defaults"> passend ;-)>> Ich hätte aber zwei Vorschläge, diesem Problem entgegenzuwirken:> - Eine fette Warnung in die config_defaults.php einbauen "do not> copy...read manual at http://......!"> - Mal schauen ob das Skript feststellen kann, ob der Benutzer die> config_defaults.php als Vorlage verwendet hat, um dann eine> Fehlermeldung ausgeben zu können.
Letzteres wäre wohl das sinnvollste.
>> Einfach die Datei gleich schon im>> data-Verzeichnis unterbringen und eventuell auch defaults.php nennen>> oder eine leere config.php mitliefern? Die config.php aus 0.2.2 würde ja>> entsprechend umgeschrieben.>> Eine leere config.php mitliefern ist schlecht, dann wird die config.php> des Benutzers bei jedem Systemupdate mit dieser config.php> überschrieben.
Kommt auf das Systemupdate drauf an. Ich weiß jetzt nicht auswendig, ob
bei SVN eine Datei als Tabu zum Update markiert werden kann. Ich glaube
aber sowas mal gelesen zu haben. Für ein internes Systemupdate ist die
config.php sowieso für ein Überschreiben zu schützen, am besten immer
eine Kopie vor dem Update machen.
> Eine defaults.php mitzuliefern dient irgendwie nicht der Bekämpfung der> Ursache, sondern des Symptoms. Die Ursache ist: Der Benutzer meint> fälschlicherweise, er müsse seine config von Hand anlegen. Mit einer> defaults.php lässt man ihn auch noch glauben, das sei richtig so. Die> wirklich richtige Lösung wäre aber, ihm klarzumachen dass er keine> config anzulgenen braucht, sondern einfach http://localhost/part-db/> aufrufen muss und der Installer dann alles für ihn erledigt.>> ...meine Meinung! :-)
Könnte man auch irgendwo tief im System verstecken. Wichtig ist nur,
dass der User nicht direkt mit der config-defaults.php bzw. config.php
in Berührung kommt. Leider gibt es keinen Standard für solche Zwecke :(
>> PS: SVN speichert die Datei/Verzeichnisrechte, da sollte man diese von>> Anfang an auch richtig einstellen :-)>> Oh das wusste ich gar nicht, danke :-D
:-D Wäre ja doof, wenn es nicht so wäre.
Urban B. schrieb:> Peter Müller schrieb:>> Egal, mit welcher Auswahl ich es versuche, ich bekomme immer dieselbe>> Fehlermeldung ...>> Bei welchem Webhoster bist du?>> Füge bitte mal am Anfang der start_session.php die folgenden Zeilen ein:>
>> Und stelle hier die Ausgabe rein, vielleicht sieht man da was> auffälliges.>
Mein Webhoster ist hostpoint.ch
Also ich hab den Code reinkopiert und folgende Meldungen bekommen ...
LC_ALL = false
LC_COLLATE = false
LC_CTYPE = false
LC_MONETARY = false
LC_NUMERIC = false
LC_TIME = false
LC_MESSAGES = false
Gruss Peter
Udo Neist schrieb:> Kommt auf das Systemupdate drauf an. Ich weiß jetzt nicht auswendig, ob> bei SVN eine Datei als Tabu zum Update markiert werden kann.
Du darfst nicht vergessen, dass SVNNICHT der Update-Mechanismus von
Part-DB darstellt. Das einzige "offizielle" Verfahren, seine Part-DB
aktuell zu halten, ist immernoch über den manuellen Download des
*.tar.gz Archives mit anschliessendem Überschreiben der alten Dateien.
Part-DB über SVN aktuell zu halten kann sogar auch mal richtig
schiefgehen, wenn z.B. ein Datenbankupdate in den Trunk geladen wird,
das sich als fehlerhaft herausstellt. Solange dieses Update noch nicht
offiziell rausgegeben wurde, können wir es nochmal verändern. Wer zu
diesem Zeitpunkt aber bereits seine Part-DB über SVN aktualisiert hat,
hat Pech gehabt...
Daher kann man nur davon abzuraten, Part-DB im produktiven Einsatz über
SVN zu aktualisieren, dies sollten wirklich nur Entwickler mit ihren
Testinstallationen von Part-DB machen.
Udo Neist schrieb:>>> PS: SVN speichert die Datei/Verzeichnisrechte, da sollte man diese von>>> Anfang an auch richtig einstellen :-)>>>> Oh das wusste ich gar nicht, danke :-D>> :-D Wäre ja doof, wenn es nicht so wäre.
Hmm bist du dir wirklich sicher dass das so funktioniert? Im Internet
konnte ich dazu nichts finden, in Google Code sieht man die Dateirechte
nirgens und wenn ich die Rechte einer Datei verändere wird sie von SVN
nicht als "verändert" markiert...
Ausserdem, was nützen die UNIX Dateirechte wenn jemand unter Windows auf
einer NTFS Partition arbeitet?
Peter Müller schrieb:> Mein Webhoster ist hostpoint.ch>> Also ich hab den Code reinkopiert und folgende Meldungen bekommen ...> LC_ALL = false> LC_COLLATE = false> LC_CTYPE = false> LC_MONETARY = false> LC_NUMERIC = false> LC_TIME = false> LC_MESSAGES = false
Ahh, ich glaube ich habe das Problem gefunden. Hostpoint erwartet
vermutlich "de_CH.UTF-8" statt "de_CH.utf8":
http://support.hostpoint.ch/index.php?page=ArticleDetailPage&navigation=7&category=29&article=57
Ich bau das noch in Part-DB ein, habe da sowieso grad noch
Optimierungspotential entdeckt :-)
Ich stimme dir da schon zu, nur will ich darauf hinaus, dass wir mit dem
Installer auch ohne Eingriffe ins System direkt starten können.
Existiert keine config.php wird eine angelegt. Stimmen die Rechte nicht,
wird das angezeigt. Alles andere ist Blödsinn.
Mit den Rechten unter Windows müssen wir eh schauen. Das ist eine eigene
Geschichte und sollte später auch berücksichtigt werden. Man kann ja
eine Umfrage starten, wer Part-DB auf welchem OS nutzt :-)
Also ich habe mal angefangen zumindest eine rudimentäre Überprüfung der
Dateirechte einzubauen, die "data" auf Schreibrechte überprüft. Nur habe
ich da gewisse Schwierigkeiten...
In der Doku habe ich ja z.B. für das Verzeichnis "data" die Rechte auf
755 zu stellen. Das gilt allerdings nur, wenn der Besitzer des Ordners
dem Webserver (www-data) entspricht. Das ist aber nicht immer der Fall,
das kommt auf die Infrastruktur drauf an. Bei einem Hoster kann es ja
durchaus sein, dass die Dateien, die über FTP hochgeladen wurden, dem
FTP-Benutzer gehören und nicht dem Webserver.
Das heisst also, es bringt nichts wenn ich "data" auf 755 prüfe, das
einzig Sinnvolle ist, mit is_writable() auf Schreibrechte zu prüfen.
Gibt diese Funktion "false" zurück, kann ich versuchen mit chmod() die
Rechte auf 755 zu setzen. Geht das nicht, kann ich die Meldung ausgeben
dass man die Rechte von Hand ändern muss (mit Verweis auf die Doku).
Wurden die Rechte erfolgreich geändert, aber die Datei ist immernoch
nicht beschreibbar, kann man es mit 775 und schlussendlich mit 777
versuchen.
Das ist irgendwie ein ziemliches Gebastel. Eine andere Idee habe ich
aber nicht, die dann auch auf jedem System funktioniert.
Gibts bessere Vorschläge? :-)
Urban B. schrieb:> Ahh, ich glaube ich habe das Problem gefunden. Hostpoint erwartet> vermutlich "de_CH.UTF-8" statt "de_CH.utf8":> http://support.hostpoint.ch/index.php?page=Article...>> Ich bau das noch in Part-DB ein, habe da sowieso grad noch> Optimierungspotential entdeckt :-)
Hallo,
Habs leider nicht hinbekommen , weil ich weiss nicht, wie das mit den
SVN geht ...
nun gut ich habe jetzt mal die Version 2.1 heruntergeladen und
installiert ...
stehe leider aber schon wieder an ...
Bei der Navigation in "Kategorien","Baugruppen" oder "Verwaltung /
Tools" passiert nichts, wenn ich entweder "alle Anzeigen" oder "alle
Schliessen" klicke ...
Sollte aber für ein DB-Update in die Verwaltung kommen ;-)
Die Navigation in den Online "Test-Datenbanken" gehen ....
Habe die Datenbank jetzt etwa 3 Mal neu installiert inkl. Datenbank
... immer mit demselben Ergebnis -> Navigation funktioniert nicht , auch
eine bereits eingegebene Kategorie ist nicht sichtbar
Was mache ich falsch ?
Christopher K. schrieb:> Das war ja fast zu einfach um wahr zu sein. Danke ich habs geschafft.> Hab gleich auf RC1 geupdated.>> Zeile in der config_defaults.php lautet in meinem Fall nun
$config['table']['category_parts']['columns'] =
'hover_picture;name;description;instock_mininstock;footprint;storelocati
on;datasheets;attachements;button_decrement;button_increment;suppliers;s
upplier_partnrs';
> Geniales Script... netten Abend wünsche ich noch.>> PS: Beim update meldete der Server "File does not exist:> /usr/share/javascript/toggle.js".>> Lösung war: In der Datei "/etc/apache2/conf.d/javascript-common.conf"> die Zeile "Alias /javascript /usr/share/javascript/"> Kommentieren/Löschen und Apache neu starten.
Der String 'id' bei der
configzeile:$config['table']['category_parts']['columns'] läuft in
ein leeres case.
https://code.google.com/p/part-db/source/browse/trunk/lib/class.Part.php
ZEile 1141
Möchte diese Nummer auch auflistenlassen. Benutze für die Sortierung in
der Schublade gleich die ID Nummer. Was muss da geändert werden?
Hm bei mir bleibt beim SVN Update die Part-DB nach dem Dateirechte
setzen hängen.
http://www.partdb.grautier.com/svn/
Die RC1 bin ich grade noch am uploaden, sollte heute Abend auch wieder
Funktionieren.
Zum Dateirechte setzen oben steht da ja was zu, ich würde das nicht vom
Script setzen lassen sondern einfach nur mit dem jeweiligen PHP User
schauen ob es beschreibbar ist oder nicht, so wie es auch bei CMS
Systemen gemacht wird, und dan nur ausgeben was der Benutzer noch ändern
muss, das ist am Problemlosesten.
Gibt es irgendwo eine Übersicht über die Funktionen der Part-DB? Ist das
nur eine Datenbank, oder gibt es auch ein Frontend mit GUI? Ich müsste
meine Lagerhaltung (bei den Bauteilen) nämlich auch mal endlich auf eine
solidere Basis stellen...
Edit: Ich hab gerade den zugehörigen Artikel gefunden:
http://www.mikrocontroller.net/articles/Part-DB_RW_-_Lagerverwaltung
Wenn noch Fragen offen bleiben sollten, melde ich mich nochmal.
Mit freundlichen Grüßen
Thorsten Ostermann
Peter Müller schrieb:> Urban B. schrieb:>> Ahh, ich glaube ich habe das Problem gefunden. Hostpoint erwartet>> vermutlich "de_CH.UTF-8" statt "de_CH.utf8":>> http://support.hostpoint.ch/index.php?page=Article...>>>> Ich bau das noch in Part-DB ein, habe da sowieso grad noch>> Optimierungspotential entdeckt :-)>>> Hallo,> Habs leider nicht hinbekommen , weil ich weiss nicht, wie das mit den> SVN geht ...
Wenn du die 0.3.0 RC1 installiert hast, kannst du vorübergehend
folgendes machen: In der config_defaults.php die Zeile
und dann unter System -> Konfiguration die Sprache auf "de_CH (UTF-8)"
einstellen.
An der config_defaults.php darf man eigentlich NICHTS verändern wie ich
schonmal erwähnt habe. Da diese Änderung aber in der RC2 gleich
standardmässig mit eingebaut ist, kann man hier mal eine Ausnahme
machen.
> stehe leider aber schon wieder an ...> Bei der Navigation in "Kategorien","Baugruppen" oder "Verwaltung /> Tools" passiert nichts, wenn ich entweder "alle Anzeigen" oder "alle> Schliessen" klicke ...
Hast du mal überprüft ob die Dateirechte für die Javascript-Dateien
korrekt sind?
Christian schrieb:> Der String 'id' bei der> configzeile:$config['table']['category_parts']['columns'] läuft in> ein leeres case.
Ja, weil dies in der 0.3.0 RC1 noch nicht möglich war. Du musst die
Datei lib/lib.export.php mit dieser hier ersetzen, dann sollte es gehen:
https://code.google.com/p/part-db/source/browse/trunk/lib/lib.export.phpK. J. schrieb:> Hm bei mir bleibt beim SVN Update die Part-DB nach dem Dateirechte> setzen hängen.
mmh ok schade, aber irgendwie habe ich das schon fast vermutet dass es
da Probleme geben wird ;-)
> Zum Dateirechte setzen oben steht da ja was zu, ich würde das nicht vom> Script setzen lassen sondern einfach nur mit dem jeweiligen PHP User> schauen ob es beschreibbar ist oder nicht, so wie es auch bei CMS> Systemen gemacht wird, und dan nur ausgeben was der Benutzer noch ändern> muss, das ist am Problemlosesten.
Jup, werde ich dann wohl noch so ändern.
mfg
Urban B. schrieb:> Christian schrieb:>> Der String 'id' bei der>> configzeile:$config['table']['category_parts']['columns'] läuft in>> ein leeres case.>> Ja, weil dies in der 0.3.0 RC1 noch nicht möglich war. Du musst die> Datei lib/lib.export.php mit dieser hier ersetzen, dann sollte es gehen:> https://code.google.com/p/part-db/source/browse/tr...
Betreffend dem export der datei hab ichs soweit verstanden. Ich schreibe
von der Auflistung der Treffern bei der Suche oder der
Kategorieauflistung der Bauteilen. Die Parameter die angezeit werden,
können via configzeile:
configzeile:$config['table']['category_parts']['columns']
bearbetet werden. Kann da jetzt einfach den String 'id' angewendent
werden für die Auflistung?
Urban B. schrieb:> Hast du mal überprüft ob die Dateirechte für die Javascript-Dateien> korrekt sind?
Es hat funktioniert ... hatte da etwas vile Probleme mit den
"Datei-Rechten"
Nun funktioniert die Navigation , wie sie sollte :-)
2 Fragen hätte ich noch:
1. das Administatoren Passwort wird trotz korrekter Eingabe nicht wieder
erkannt und akzeptiert
2. kann eine Vorgänger-Datenbank vom Rel 1.04 RC in die neue Datenbank
übernommen werden - oder irgendwie zumindestens die Artikel ,
Lagerorte
usw
Danke für Eure Hilfe
Peter
Peter Müller schrieb:> 1. das Administatoren Passwort wird trotz korrekter Eingabe nicht wieder> erkannt und akzeptiert
Hoppla, da ist was vergessen gegangen ;-) werde ich sofort korrigieren.
Vorübergehend muss man dann halt die Datenbankeinstellungen direkt in
der config.php ändern.
> 2. kann eine Vorgänger-Datenbank vom Rel 1.04 RC in die neue Datenbank> übernommen werden - oder irgendwie zumindestens die Artikel ,> Lagerorte> usw
Das ist zwar schon eine relativ alte Version, sollte aber eigentlich
möglich sein. Einfach unbedingt ein Backup der Datenbank anlegen. Wenns
nicht klappt, könnte man versuchen zuerst mit Part-DB 0.2.2 die
Datenbank auf eine neuere Version zu aktualisieren, und erst dann 0.3.0
zu verwenden.
Urban B. schrieb:> Das ist zwar schon eine relativ alte Version, sollte aber eigentlich> möglich sein. Einfach unbedingt ein Backup der Datenbank anlegen. Wenns> nicht klappt, könnte man versuchen zuerst mit Part-DB 0.2.2 die> Datenbank auf eine neuere Version zu aktualisieren, und erst dann 0.3.0> zu verwenden.
Hat geklappt mit dem update der Datenbank auf 0.3.0 ....
Musste allerdings den Umweg über die Version 2.2 (2.1) machen ...
Das mit den Dateirechten hat sich jetzt auch geklärt ...
Irgendwie hat mir Filezilla diese Datei-Rechte "vermurkst" ...
... mit dem guten alten WS-FTP95 hats sofort auf Anhieb geklappt.
Besten Dank für die gute Unterstützung
Gruss Peter
Funktionieren Ihr bei Euch die Links auf der Startseite (unten) ?
Könnt Ihr den "Titel der Seite:" in der Konfiguration ändern ?
Danke für Feedbacks
Peter
Peter Müller schrieb:> Funktionieren Ihr bei Euch die Links auf der Startseite (unten) ?
Nope, die URLs, die der Google Feed ausliefert sind ja gar keine gültige
Adressen (bzw. die gültige Adresse ist in einem anderen XML-Eintrag).
Ich schreibs mal in unsere ToDo Liste.
> Könnt Ihr den "Titel der Seite:" in der Konfiguration ändern ?
Nein, auch das geht nicht :-) Liegt daran, dass die entsprechende
Einstellung in der zweiten Hälfte der config_defaults.php liegt, und
damit nicht automatisch in der config.php abgelegt wird, das kann man
nur manuell machen.
Allerdings frage ich mich, ob das überhaupt jemand braucht? Wenn man den
Eintrag in der Konfigurationsseite entfernen würde, ginge es einfach
nicht mehr übers Webinterface. Manuell ist es aber nach wie vor mäglich,
den Titel per $manual_config in der config.php zu ändern:
Zum Testen habe ich mal part-db auf meinem Win7 Rechner zusammen mit
einem WAMP System (UniServer) ausprobiert. Leider schlägt schon die
Funktion zum Testen der Dateirechte an und meckert. Schnell hat sich
gezeigt, dass anscheinend unter Windows die Verzeichnisse (z.B. data)
keine "execute" Rechte haben. Nachdem ich einfach mal die "x" Flags bei
den Verzeichnissen aus der Abfrage entfernt hatte, lief alles.
Gibt es dafür eine bessere Lösung ?
Welche Version hast du installiert? Die Frage ist deshalb wichtig, weil
wir ja weiter oben schon die Problematik der Rechtevergabe unter Windows
für die Entwicklerversion angesprochen haben. Man müsste im Installer
wohl noch das Betriebssystem berücksichtigen.
Wenn diese "true" ist, dann wird halt das executable Bit einfach
ignoriert in der Überprüfung der Rechte.
Ausserdem gibts noch einen anderen Bug bei Windows, wegen den mühsamen
Dateipfaden die aus Slashes und Backslashes bestehen. Es gibt ein paar
str_replace() im Code, die nur mit Unix Pfaden zurechtkommen. Da muss
ich mir noch was einfallen lassen...
Dirk B. schrieb:> Die letzte von gestern Abend aus SVN. Sollte also die r645 sein.
Da haste gerade ne Version erwischt, die die Überprüfung von
Datei-/Verzeichnisrechten enthält, aber auf Windows noch nicht getestet
wurde. Aber Urban ist wohl dran, diese Probleme zu beheben.
Also ich sehe momentan zwei Lösungswege, um das Pfad-Problem zu beheben:
1. Variante
Für alle Pfade immer direkt das korrekte Pfad-Trennzeichen (je nach
Betriebssystem) verwenden. Damit dürften wir aber in unserem gesamten
Code NIRGENDWO ein "/" oder "\" verwenden, sondern immer nur
DIRECTORY_SEPARATOR! Ist mühsam, aber verhindert so komische Pfade, in
denen Slashes und Backslashes gleichzeitig vorkommen. Für die Dateipfade
in der Datenbank (z.B. für Footprint Bilder) könnten wir uns vielleicht
darauf einigen, dass IMMER Slashes verwendet werden, also auch unter
Windows. Wird Windows benutzt, müssten dann halt beim Abspeichern und
beim Auslesen aus der Datenbank die Pfade entsprechend umgewandelt
werden. Das stellt sicher, dass die Datenbank komplett
Betriebssystemunabhängig ist, was natürlich anzustreben ist.
in den HTML bzw. TMPL Dateien könnte man dies mit einer
Template-Variable für DIRECTORY_SEPARATOR machen, damit auch im HTML
Code die richtigen Pfad-Trennzeichen verwendet werden können.
2. Variante
in unserem Code immer mit Slashes arbeiten (so wie bisher). Dadurch
können bei Windows dann aber Pfade entstehen, die Slashes wie auch
Backslashes enthalten. Sieht nicht schön aus, funktioniert aber weil
Windows (bzw. Apache) das toleriert. Allerdings müsste man dann bei
allen str_replace() Operationen immer aufpassen, dass es
betriebssystemunabhängig funktioniert, was relativ mühsam sein kann.
Ne Idee wäre, eine Funktion zu schreiben, die einen Pfad entsprechend
korrigiert. Also Slash/Backslash-Kombinationen per RegEx umschreibt und
auch die Pfade richtig setzt. Kann ja auch gleich auf is_dir() oder
is_file() prüfen. Wenn das Ergebnis halt nicht existent ist, wird false
zurückgeliefert, ansonsten den zum Betriebssystem passenden Pfad.
Eigentlich könnten wir ja auch gleich alle Pfade IMMER mt Slashes
schreiben und keine Backslashes mehr zulassen. Auch bei der Konstante
"BASE".
Aufpassen muss man dann nur noch bei Pfaden, die vom System geliefert
werden (z.B. realpath(), scandir(), ...). Die muss man dann sofort in
Unix Pfade umschreiben.
Urban B. schrieb:> Eigentlich könnten wir ja auch gleich alle Pfade IMMER mt Slashes> schreiben und keine Backslashes mehr zulassen. Auch bei der Konstante> "BASE".
Ich habe das jetzt mal so eingebaut (r646). Ich hoffe, damit sind die
Probleme mit Windows-Pfaden behoben. Mit XAMPP 1.8.1 auf Win7 konnte ich
auf den ersten Blick jedenfalls keine Probleme mehr feststellen.
Übrigens habe ich die nächsten 3 Wochen sehr wahrscheinlich nur an den
Wochenenden Internetzugang, also nicht wundern wenn ich nicht erreichbar
bin ;-)
Beim RC1 wurden bei mir anfänglich die Kategorien links nicht
aufgelistet die ich engetragen habe. Konnte es im File
class.StructuralDBElement.php Zeile 379ff. zum Anzeigen bringen.
Hab in den Kategorien eine Kategorie MOSFET's gennant. Dieses Zeichen '
darf nicht geschrieben werden. Dann läufts wenn der Name MOSFET
gebraucht wird.
@Christian
Jup da fehlte noch was, hab ein htmlentities() und ein addslashes()
eingebaut (r650), damit sollten jetzt alle Sonderzeichen korrekt
dargestellt werden. Ist dann in der RC2 mit drin.
mfg
Ich habe die ganze Zeit Version 0.2.2 verwendet. Jetzt wollte ich mal
die neue Version 3 testen, aber ich bekomme das mit der Datenbank nicht
hin. Das Autoupdate der Datenbank scheitert immer von V12 nach V13.
Von V11 auf V12 scheint es problemlos zu klappen.
Beim Update von V12 --> V13 bekomme ich den folgenden Fehler
Fehlermeldung: SQLSTATE[01000]: Warning: 1265 Data truncated for column
'description' at row 1
Manchmal bleibt er auch schon hier hängen:
Schritt: UPDATE `footprints` SET filename = REPLACE(filename, 'ä',
'ä')...FEHLER!
Fehlermeldung: SQLSTATE[42S22]: Column not found: 1054 Unknown column
'filename' in 'field list'
Ich spiele dann immer den SQL Dump der Version 0.2.2 ein.
Die Version 0.2.2 funktioniert auch problemlos.
Die Dateien aus dem Archiv habe ich in einen komplett lehren Ordner des
Webservers entpackt, nur die alte config.php habe ich eingefügt.
Hat jemand eine Idee?
Danke
OK also ich habe mal eine kleine Änderung in der class.Database.php
eingefügt, ersetze diese Datei mal mit dieser hier:
https://part-db.googlecode.com/svn/trunk/lib/class.Database.php
Es gibt wohl noch ein Problem wenn man nach einem Update-Fehler manuell
wieder eine ältere Datenbank einspielt. Denn das neu einspielen kriegt
Part-DB grundsätzlich ja nicht mit und macht dann beim nächsten
Update-Versuch wieder dort weiter, wo beim letzten Mal der Fehler
auftrat. Das ist natürlich falsch, das Update müsste dann wieder von
Vorne beginnen.
Vermutlich kommt daher dann das Problem mit der Spalte
footprints.filename.
Wenn du die Datenbank wieder auf den älteren Stand zurücksetzt, müsstest
du in der config.php die folgenden zwei Werte auf "0" zurücksetzen:
1
$config['db']['update_error']['version'] = 0;
2
$config['db']['update_error']['next_step'] = 0;
Ich muss mal schauen ob man das noch irgendwie verbessern kann, so dass
Part-DB merkt dass ein Backup eingespielt wurde und dann entsprechend
das Update wieder von Vorne beginnt. Ich denke das sollte möglich
sein...
Ich fürchte fast dass ich da noch mehr Probleme bekommen werde.
Nach der Aufforderung eine Zeitzone/Sprache erhalte ich die Meldung:
Die gewählte Sprache "de_DE.UTF-8" wird vom Server nicht unterstützt!
Bitte installieren Sie diese Sprache oder wählen Sie eine andere.
Möglicherweiße liegt das daran dass es auf einem Windowssystem
installiert ist?
Danke
Juergen F schrieb:> Die gewählte Sprache "de_DE.UTF-8" wird vom Server nicht unterstützt!> Bitte installieren Sie diese Sprache oder wählen Sie eine andere.
Dieses Problem (bei Windows Servern) wurde bereits gemeldet und sollte
inzwischen behoben sein. Am besten wartest du noch auf die RC2, da ist
dieser Bugfix dann drin.
mfg
Kleiner Verbesserungsvorschlag:
Die Vorschaubilder der Artikel werden derzeit teilweise sehr stark
verzogen, da immer nur in eine Richtung runter skaliert wird.
Könnte man nicht Höhe und Breite zusammen so lange verringern bis es die
entsprechenden Größe haben?
Ich hätte noch eine Idee für die zukünftigen Versionen:
Die Artikel noch um eine Gewichtsfeld zu erweitern. Sowie bei den
Lagerorten ein max. zulässiges Gesamtgewicht definieren. Dabei lässt
sich pro Fach ein Gewicht definieren, sowie den übergeordneten Regal bzw
Sortimentkasten ein Gesamtgewicht eingeben.
Grüße Gerald
Dazu müsste ein max-width oder max-height im entsprechenden Thema schon
reichen. Bei großen Bildern macht man das jedoch nicht, da skaliert man
die Bilder schon vorher, um die Datenmenge zu verringern. Besser wäre es
aber, wenn die Bilder im Vektor(SVG)-Format wären, aber leider können
nur wenige Browser sowas direkt verarbeiten.
Wenn das gewünscht wird, kann ich eine passende Funktion besteuern.
Gerald *. schrieb:> Die Vorschaubilder der Artikel werden derzeit teilweise sehr stark> verzogen, da immer nur in eine Richtung runter skaliert wird.
Stimmt, das wollte ich eigentlich auch schon lange mal verbessern. Ich
habe jetzt die CSS-Datei entsprechend angepasst, wird nachher noch ins
SVN hochgeladen ist dann in der RC2 drin.
Für grosse Bilder sollen später mal automatisch Thumbnails verwendet
werden, da sonst die Performance stark leiden kann. Aber das muss noch
ein bisschen warten...
> Die Artikel noch um eine Gewichtsfeld zu erweitern.
Ich füge das mal unserer ToDo-Liste hinzu.
Hallo Zusammen,
Ich bin echt begeistert von der Lager-Verwaltung Datenbank und habe
schon fleissig -> Artikel in die Datenbank abgelegt.
Da ich teils ein bisschen grössere Artikel einlagere, wie Kompressoren,
habe ich nun das Problem , dass sich zum Beispiel einer in der
Lagerhalle, einer auf der Baustelle und einer in Reparatur befindet ...
Aktuell habe ich mir denselben Artikel 3x erstellt um ihn an 3
verschiedenen Orten "lagern" zu können ... Die Lagerbewegungen habe ich
in die Notizen geschrieben. Was natürlich nicht so tolle ist.
Frage: Habt Ihr mir eine Idee wie ich das besser handhaben könnte ...
Oder gibt es die Möglichkeit mehrere Lagerorte für ein und denselben
Artikel in dieses Programm zu implementieren ?
Gruss Peter
Hallo Peter,
Momentan gibt es keine "saubere" Variante, um den selben Artikel an
mehreren Orten gleichzeitig zu lagern. In unserer ToDo-Liste ist aber
schon ein Punkt aufgeführt, der diese Thematik anspricht. Das kann aber
noch dauern bis das eingebaut wird.
So eine Funktion ist aber auch nicht ganz trivial. Es gibt mehrere
Probleme, die mit dem Einbauen dieser Funktion auftreten werden. Diese
beginnen schon bei den "+" und "-" Buttons in den Artikellisten. Aus
welchem Lagerort sollen die Artikel nun abgebucht/eingebucht werden wenn
so ein Button geklickt wird? Dasselbe beim Abfassen einer ganzen
Baugruppe, welche Artikel sollen von welchem Lagerort abgebucht werden?
Fragen über Fragen... ;-)
Momentan muss man halt irgendwie improvisieren wenn man den selben
Artikel an verschiedenen Orten lagert. Sei es mit Kommentaren, oder mit
dem Erstellen von mehreren, gleichnamigen Artikeln (für jeden Lagerort
einen).
mfg
Bei der "Version 0.3.0 RC1 (unstable)" hat sich ein Vertipper
eingeschlichen. Bei "Bearbeiten - Footprints" steht im Hinweis-Text:
"Dateinaben" statt "Dateinamen".
Bitte nicht gleich steinigen, dass ich hier solche Banalitäten poste,
aber ich weiß nicht wo ich das sonst "melden" könnte.
Christian R. schrieb:> "Dateinaben" statt "Dateinamen".
Danke, wird korrigiert.
Christian R. schrieb:> Bitte nicht gleich steinigen, dass ich hier solche Banalitäten poste,> aber ich weiß nicht wo ich das sonst "melden" könnte.
Passt schon :-)
Hmmm, irgendwie bekomme ich es nicht hin den Link zu meinem Datenblatt
anzugeben.
Ich kann nur eine Datei auswählen, welche ich hochladen will, aber ich
kann kein Link eintragen.
Und dann ist mir noch aufgefallen dass der Titel ("Part-DB 0.3.0") nicht
geändert werden kann. Man kann zwar einen Titel eingeben, dieser wird
jedoch ignoriert.
Christian R. schrieb:> Ich kann nur eine Datei auswählen, welche ich hochladen will, aber ich> kann kein Link eintragen.
Stimmt...Wird korrigiert.
Christian R. schrieb:> Und dann ist mir noch aufgefallen dass der Titel ("Part-DB 0.3.0") nicht> geändert werden kann. Man kann zwar einen Titel eingeben, dieser wird> jedoch ignoriert.
Ist bereits behoben, kommt dann in die 0.3.0 RC2.
Bei "Verwaltung/Tools" sollte unter "Konfiguration - Datenbank" ein
Button "Jetzt Datenbank Updaten" vorhanden sein. Da drauf klicken ;-)
Mal was anderes...
Wenn ich eine Datei (Datenblatt) hoch laden möchte bekomme ich die
Fehlermeldung "Es gab ein Fehler beim Hochladen der Datei!". Ich nehme
an dass der Ordner nicht genügend Rechte hat. Welchen Ordner muss ich
denn welche Rechte (CHMOD) geben?
Christian R. schrieb:> Wenn ich eine Datei (Datenblatt) hoch laden möchte bekomme ich die> Fehlermeldung "Es gab ein Fehler beim Hochladen der Datei!". Ich nehme> an dass der Ordner nicht genügend Rechte hat. Welchen Ordner muss ich> denn welche Rechte (CHMOD) geben?
Da muss ich noch eine gescheitere Fehlermeldung einbauen. Es gibt
grundsätzlich zwei mögliche Fehlerquellen:
- fehlende Schreibrechte im Ordner data/media/
- maximale Dateigrösse für Uploads überschritten (php.ini)
Für letzteren Punkt siehe auch "PHP konfigurieren":
http://www.partdb.grautier.com/svn/documentation/dokuwiki/doku.php?id=anforderungen
Christian R. schrieb:> Bei "Verwaltung/Tools" sollte unter "Konfiguration - Datenbank" ein> Button "Jetzt Datenbank Updaten" vorhanden sein. Da drauf klicken ;-)
Bei Verwaltunng/Tools ist garnichts. Wer noch mal gucken möchte:
http://peter-partdb.comze.com , Benutzer: gast, Passwort: gast
Peter K. schrieb:> Bei Verwaltunng/Tools ist garnichts. Wer noch mal gucken möchte:> http://peter-partdb.comze.com , Benutzer: gast, Passwort: gast
Auf deinem Server läuft PHP 5.2.17, benötigt wird aber mindestens 5.3.0.
Du musst also entweder erstmal deine PHP Version aktualisieren oder
einen anderen Host suchen.
Bist du sicher dass du Part-DB auf einem öffentlichen Server
installieren möchtest? In den meisten Fällen reicht ein Server im
eigenen LAN. Siehe Doku:
http://www.partdb.grautier.com/svn/documentation/dokuwiki/index.php
Das ganze ist eigentlich Passwortgeschützt durch htaccess, ich habs
gerade nur mal rausgehauen. Kann man das mit den PHP nicht irgendwie
umgehen, mein Hoster will nicht updaten. Villeicht versuch ichs mal bei
Kilu.
Ich will das auf einen Hoster packen, weil mein Server-PC nicht immer an
ist. Ich könnte den Server zwar auf den Werkstatt-PC laufen lassen, aber
wenn ich dann nur mal schnell auf den Laptop gucken will, ob ich
genügend xxx hab ist es blöd, ihn jedesmall anzuschalten
PS: Hab gerade vergessen mich anzumelden
Für genau diese Fälle habe ich ja myparts.info registriert. Leider ist
das bisher noch nicht nutzbar.
Nochmal zur Erinnerung, wie das gedacht ist (wer das noch weiß kann den
folgenden Text einfach überspringen) :
-Eine Große Datenbank, in der die Bauteile angelegt sind (samt Preise
diverser Verkäufer, Links zu Datenblättern, Footprints, usw.)
-Jeder User bekommt eigene Lagerplätze
Nun hätte jeder User die Möglichkeit kostenlos (ohne extra einen eigenen
Webspace mieten zu müssen) seine eigenen Lagerplätze anzulegen und
braucht nur noch die Bauteile auswählen und die Stückzahl eintragen.
Man braucht keine Footprints raus suchen (sind schon beim Bauteil
verknüpft), keine Datenblätter raus suchen (sind ebenfalls schon
Verknüpft), die Preise sind auch schon eingetragen, usw.
Man kann also sehr schnell sein eigenes Lager eintragen.
Wenn ein User nun ein Bauteil hat, welches noch nicht existiert müsste
er es zwar genauso anlegen wie derzeit auch, aber das muss er halt nur
für dieses eine Bauteil und nicht für alle.
Wenn ich z.B. ein 74ALS30 anlege, dann muss ich alle Daten (Footprints,
Datenblatt, Preise) damit verknüpfen. Wenn nun ein anderer User das
gleiche Bauteil benötigt, dann erspart er sich die Arbeit, da das
Bauteil schon vorhanden ist. Einfach auswählen, einem (eigenen)
Lagerplatz zuordnen und die Stückzahl eintragen. Fertig.
Die Vorteile:
-Viel weniger Arbeit beim Anlegen des eigenen Lagers
-Aktuelle Daten (wenn sich der Preis bei Reichelt ändert profitieren
andere User direkt von der Aktualisierung des anderen Users)
-Relativ kleine Datenmengen auf dem Server. Ein
Datenblatt/Footprint/usw. muss nur einmal vorhanden sein, wodurch die
Datenmenge von 1000 User nur unerheblich größer ist als von einem User
(sofern der eine User über ein riesiges Bauteilspektrum verfügt).
Der Nachteil:
-Ein User kann Daten zerstören, welche von einem anderen User mit
genutzt werden (z.B. den Preis bei Conrad & Co. verfälschen).
Der Nachteil ist gravierend und muss unbedingt vermieden werden.
Dazu fällt mir die folgende Möglichkeit ein:
Wenn ein User ein neues Bauteil anlegt oder einen Preis ändert dann
müsste das "lokal" sein, also nur für ihn selber. Gleichzeitig müsste
der Eintrag in einer Liste auftauchen, welche von Moderatoren "geprüft"
wird. Sobald die Daten geprüft wurden müssten diese von lokal auf global
geändert werden.
Beispiel: Ich ändere den Preis eines Bauteils. Dieser neue Preis
erscheint nun sofort bei mir, aber alle anderen sehen noch den alten
Preis. Meine Preisänderung taucht nun in einer Liste auf. Sobald ein
Moderator diese Änderung bestätigt wird der Preis in die "normale große
Datenbank" übernommen und ist ab nun für alle User sichtbar.
Diese Methode benötigt freiwillige Moderatoren.
Um das zu realisieren fehlt Part-DB folgendes:
-Eine Benutzerverwaltung (nötig, da viele User eine gemeinsame Datenbank
nutzen)
-Eine Funktion welche neben den globalen Daten auch lokale Daten nutzt,
welche dann nach einer Prüfung global werden
Was irgendwann vielleicht auch mal interessant sein könnte
(Zukunftsmusik):
Wenn man ein Bauteil braucht welches bei normalen Händlern nicht mehr zu
bekommen ist, dann wäre "Suche Bauteil"-Funktion nützlich. Dies könnte
man so realisieren dass man dieses Bauteil als "gesucht" markiert (am
besten mit einem Preis dem man dafür bietet) und andere User (welches
dieses Bauteil besitzen) eine Benachrichtigung bekommen. Die
Benachrichtigung kann entweder per Mail/PN erfolgen, oder ganz dezent
indem irgendwo ein Symbol erscheint wenn jemand ein Bauteil sucht was
man selber im Bestand hat. Per Klick auf das Symbol könnte man dann im
PopUp-Fenster genaueres erfahren. Auf dieser Weise könnte so mancher
noch zu einem Bauteil kommen, welches er sonst nirgendwo anders bekommen
kann und dementsprechend kann so mancher User alte Restbestände die
irgendwann in der Tonne landen würden sogar noch verkaufen/verschenken.
So, genug gespamt ;-)
Peter K. schrieb:> Kann man das mit den PHP nicht irgendwie umgehen
Ich weiss jetzt grad nicht auswendig welche für Part-DB relevanten
Neuerungen nach PHP 5.2.17 kamen, aber ich glaube es sind schon einige.
Es hat schon einen Grund, warum wir PHP 5.3 voraussetzen ;-)
Um herauszufinden, was genau die Probleme verursacht bei PHP 5.2.17
könntest du mal das Debugging aktivieren
(http://peter-partdb.comze.com/partdb/system_debug.php) und schauen ob
irgendwelche gescheiten Fehlermeldungen auftreten beim Aufrufen der
Startseite.
> mein Hoster will nicht updaten.
Das kann man von einem free Hoster ja auch nicht erwarten ;-) Ich
persönlich bin der Meinung, wer Webspace braucht soll ihn auch bezahlen.
Man bekommt für sehr wenig Geld gescheite Server mit aktueller Software
(PHP, MySQL, ...). Die sind dann auch zuverlässiger (nur so nebenbei:
dein Server meldete vorher mal "Server überlastet") und es gibt einen
kompetenten Support, häufig sogar Sonntags (eigene Erfahrung) :-)
mfg
Auf der Hauptseite kommt jetzt:
Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM, expecting
T_VARIABLE in /home/aXXXXXXX/public_html/partdb/lib/class.DBElement.php
on line 250
Es gibt im Grunde mehrere Wege um den Multiuser Support ins naechste
DB-Layout einzubauen:
. Man aendert das Schema fuer 'part' und fuegt ein zusaetzliches Feld
owner hinzu. Ist fuer Workgroups nicht geeignet
. Fuer ein modernes Usermanagement mit ACLs braucht es einfach fuer die
'parts' eine zusaetzliche Table 'acl_parts'. Dort traegt man den
Fremdschluessel fuer das Part auf das sich der ACL-Eintrag bezieht, den
User sowie Rechte (Lesen,Schreiben etc.) ein. Fertig!
Loesung Zwei hat den Vorteil, dass man das parts Layout nicht antasten
muss. Wenn man mittels SELECT eine Kategorie listet, dann kann man den
Rechtecheck z.B. mittels Join an die ACL Tabelle loesen.
Das ganze koennte man ja auch als vorbereitende Massnahme machen, ohne
den Code dafuer schon haben. Die Felder sind dann auf jeden Fall da.
Klingt als wenn sich der Aufwand in Grenzen halten würde.
Die Daten für myparts.info habe ich ja schon an manche Entwickler weiter
gegeben. Wenn die "untergegangen" sind kann ich die gerne noch mal
zusenden.
@Christian R.:
Vor allem wuerde Multiuser-Support dem Projekt einen gewaltigen Schub
geben. Schliesslich hat nicht jeder potentielle User das Know How
und/oder die Resourcen, die Installation vorzunehmen.
Wichtig waere auch weitere Sprachversion 'English'. Das Aufwand bei
part-db ist aesserst niedrig verglichen mit vielen anderen Programmen.
Oft sind es nur einzelne Woerter, die man in mehreren Sprachen vorhalten
muss.
Diese zwei Schritte wuerden den Nutzerkreis potenzieren! Und damit auch
neue Entwickler auf dieses Projekt aufmerksam machen.
Peter K. schrieb:> Auf der Hauptseite kommt jetzt:> Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM, expecting> T_VARIABLE in /home/aXXXXXXX/public_html/partdb/lib/class.DBElement.php> on line 250
Genau das habe ich befürchtet. Vergiss deinen aktuellen Hoster, mit PHP
5.2 läuft Part-DB nicht.
@Christoph & Christian
In der Softwareentwicklung hört sich eine Änderung schnell mal "einfach"
an. Geht es dann an die Umsetzung, merkt man dann aber meistens dass es
eben doch "etwas" umfangreicher ist ;-)
Seit Part-DB 0.2.2 haben wir ja auch "nur" auf Templates und OOP
umgestellt. Hat aber trotzdem über ein halbes Jahr und rund 10'000
Codezeilen gedauert ;-)
Eine Benutzerverwaltung, die schlussendlich für Firmen, aber auch für
myparts.info geeignet ist, wird sehr aufwändig. Für Firmen ist wichtig,
dass man jedem Benutzer verschiedene Rechte zuweisen kann, damit z.B.
der Monteur die Preise nicht sehen kann. Ausserdem greifen dort alle
Benutzer auf den selben Lagerbestand zu. Für myparts.info sind ganz
andere Sachen wichtig. Jeder Benutzer braucht seinen eigenen
Lagerbestand und es braucht ein Moderatoren-Feature. Dafür braucht man
keine Möglichkeit, einem Benutzer das Leserecht für Preise zu entziehen.
Urban B. schrieb:> @Christoph & Christian> In der Softwareentwicklung hört sich eine Änderung schnell mal "einfach"> an. Geht es dann an die Umsetzung, merkt man dann aber meistens dass es> eben doch "etwas" umfangreicher ist ;-)
Ist schon klar, dass das etliche Aenderungen am Code erfordert und nicht
mal so schnell gecoded ist. Hab auch Erfahrung mit Softwareentwicklung
und den Requests der User :-)
Zum Thema Rechtevergabe:
IMHO sollte auch es nicht der Zweck der part-db sein, mit
professionellen ERP Systemen zu konkurrieren ;-) Also Spalten ausblenden
waere wohl mit Sicherheit Overkill.
Die Lokalisierung ist aber wohl einfacher als die Rechtevergabe. Und
aktiviert mit Sicherheit neues Entwicklerpotential!
Es gibt ja nicht so viele Strings, die der User im Browser am Ende
sieht. Und statt "Neues Teil in dieser Kategorie" koennte man im Sinne
von
i18n("catview_invoke_newpart")
eine Funktion aufrufen. Dann braucht es noch eine Tabelle fuer die
jeweilige Sprache und fertich.
Kinds regards
Christoph schrieb:> IMHO sollte auch es nicht der Zweck der part-db sein, mit> professionellen ERP Systemen zu konkurrieren ;-)
Also ich habe selbst auch schon ein paar ERP Systeme angeschaut, und
musste feststellen, dass diese für einen kleinen Betrieb einfach masslos
überdimensioniert und dadurch viel zu kompliziert sind. Ich konnte kein
(günstiges oder freies) einfaches Lagerverwaltungssystem finden, das für
kleinere Betriebe wirklich geeignet ist. Ich finde, hier könnte Part-DB
eine Lücke schliessen. Mit den professionellen ERP-Systemen soll Part-DB
natürlich nicht konkurrenzieren.
Aber erstens ist die Benutzerverwaltung derzeit grad noch kein Thema,
und zweitens sollten wir uns dazu auch mal die Meinung von K.J. anhören,
er ist schliesslich der Chef hier :-)
Bezüglich Lokalisierung: Das sehe ich ähnlich. Früher oder später
sollten zusätzliche Sprachen verfügbar sein. Aber momentan haben andere
Sachen eine höhere Priorität...
Peter K. schrieb:> Ich habs jetzt bei Kilu installiert. Es zeigt mir aber nichts an, auch> nicht bei Verwaltung/Tools> http://peter-partdb.kilu.de/partdb/
Da scheint JavaScript einfach nicht zu laufen. Sind die Dateirechte für
alle Dateien im "javascript" Ordner korrekt?
Irgendwas stimmt aber sowieso nicht bei deiner Installation, weil die
Umlaute nicht korrekt dargestellt werden. Wie lädst du die Dateien auf
den Webserver hoch? Es scheint als würden die PHP Dateien nicht als
UTF-8 interpretiert werden.
mfg
Normalerweise erkennt ein FTP-Client automatisch ob Text- oder
Binarytransfermode genutzt werden soll. Wenn man unsicher ist, dann
nimmt man Binary für den gesamten Upload.
Grüße
Udo
Bei der Version "0.3.0 RC1 (unstable)" ist die Sortierung etwas
"merkwürdig"
Hier ist mal ein Screenshot:
http://abload.de/img/sortierungtsain.png
Hier ist ein Screenshot von meiner alten Version:
http://abload.de/img/sortierung6xxsh.png
Ich erkenne nicht nach was da sortiert wird.
Edit: Ich hatte aus Versehen den Screenshot meiner alten Version statt
der 0.3.0 hochgeladen ...habe ich hiermit korrigiert
Peter K. schrieb:> Ich habs jetzt bei Kilu installiert. Es zeigt mir aber nichts an, auch> nicht bei Verwaltung/Tools> http://peter-partdb.kilu.de/partdb/
Ja, so hat es bei mir auch ausgesehen wie ich es mit Filezilla auf
meinen Webserver hochgeladen hatte ... mit dem ws-ftp95 hat es dann auf
Anhieb geklappt...
Versuch's mal einem anderen File-uploader
Peter K. schrieb:> das Javascript Verzeichnis ist jetzt auf 777
das ist unklug. da koennen schlimme dinge passieren.
ausserdem hast Du ein Problem mit den Umlauten, da ist wahrscheinlich
der falsche Zeichensatz eingestellt.
Peter K. schrieb:> Auf was soll ich dann Stellen? Kann man den Zeichensatz Nachher> noch> ändern
Der Webserver liefert als Encoding iso-8859-1 aus, aber die Part-DB ist
in utf-8. Dann wird aus den Umlauten, dass was man auf der Startseite
sieht.
Wie man das jetzt umstellt, das koennen die Experten besser beantworten.
Ist unter Umstaenden eine Sache der Webserver-Konfig, hatte ich mal nach
einer Neuinstallation mit Apache.
Noch eine Sache zur Version "0.3.0 RC1 (unstable)".
Wenn ich einen Preis eingebe wird nur der Punkt akzeptiert, aber ich
kann kein Komma eingeben (obwohl der Preis nachher per Komma angezeigt
wird).
Noch eine Frage:
Was muss ich nochmal machen um den Bestand ohne Mindestbestand angezeigt
zu bekommen (siehe Vergleich der beiden Screenshots ein paar Beiträge
weiter oben)?
Christian R. schrieb:> Bei der Version "0.3.0 RC1 (unstable)" ist die Sortierung etwas> "merkwürdig"
Uups, ich dachte das hätte ich behoben (habe nämlich vor langer Zeit
auch schon bemerkt dass falsch sortiert wird) schämPeter K. schrieb:> Auf was soll ich dann Stellen?
Beim Verzeichnis "javascript" sollte 555 für das Verzeichnis, und 444
für die Dateien passen. Steht alles in der Doku:
http://www.partdb.grautier.com/svn/documentation/dokuwiki/doku.php?id=installation> Kann man den Zeichensatz Nachher noch ändern
Der Zeichensatz der PHP Dateien muss man nicht ändern. Alle Dateien von
uns sind UTF-8 codiert und sollen auch genau so verwendet werden. Man
muss einfach beim Hochladen aufpassen, dass die Dateien nicht mit einem
falschen Zeichensatz interpretiert und dann irgendwie umgewandelt
werden. Wie Udo schon erwähnte, sollte man hier einfach "binary"
verwenden wenn man sich nicht sicher ist. In Filezilla gibts dazu die
Einstellung "Standard-Transfertyp: Binär" unter "Übertragungen ->
Dateitypen".
Christian R. schrieb:> Wenn ich einen Preis eingebe wird nur der Punkt akzeptiert, aber ich> kann kein Komma eingeben (obwohl der Preis nachher per Komma angezeigt> wird).
Das Komma wird halt nicht immer gerne als Dezimalpunkt gesehen, weil es
im englischsprachingen Raum als Tausendertrenner verwendet wird wenn ich
micht jetzt nicht irre. Der Punkt hingegen wird eigentlich immer als
Dezimalpunkt interpretiert, was zu keinen Verwechslungen führen kann.
Deshalb wird halt in Part-DB das Komma nicht angenommen...
Christian R. schrieb:> Was muss ich nochmal machen um den Bestand ohne Mindestbestand angezeigt> zu bekommen
In der config.php diese Zeile einfügen:
Urban B. schrieb:>> Kann man den Zeichensatz Nachher noch ändern>> Der Zeichensatz der PHP Dateien muss man nicht ändern. Alle Dateien von> uns sind UTF-8 codiert und sollen auch genau so verwendet werden. Man> muss einfach beim Hochladen aufpassen, dass die Dateien nicht mit einem> falschen Zeichensatz interpretiert und dann irgendwie umgewandelt> werden. Wie Udo schon erwähnte, sollte man hier einfach "binary"> verwenden wenn man sich nicht sicher ist. In Filezilla gibts dazu die> Einstellung "Standard-Transfertyp: Binär" unter "Übertragungen ->> Dateitypen".
Das ist so nicht ganz korrekt. Sein Webserver (Apache) liefert als
Content Type
"Content-Type: text/html; charset=iso-8859-1"
das sorgt fuer die defekten Zeichen. Selbst dann wenn die Dateien
korrekt hochgeladen wurden. Unicode Zeichen sind schließlich Multibyte
und iso-8859 sind SingleByte
Kann man aber umstellen, z.B. mit AddDefaultCharset und Co., manches
geht auch in .htaccess Dateien.
Christoph schrieb:> Das ist so nicht ganz korrekt. Sein Webserver (Apache) liefert als> Content Type> "Content-Type: text/html; charset=iso-8859-1"
Ach so, das habe ich gar nicht gesehen. Aber dazu steht doch die Zeile
im Header jeder (durch PHP generierten) HTML-Datei, die dann dem Client
gesendet wird? Oder habe ich da etwas falsch verstanden?
Christoph schrieb:> Kann man aber umstellen, z.B. mit AddDefaultCharset und Co., manches> geht auch in .htaccess Dateien.
Das habe ich grad unseren .htaccess Dateien noch hinzugefügt. Nach etwas
Recherche im Internet bin ich aber verwirrt was das "AddDefaultCharset"
genau bewirkt. Grundsätzlich teilt es doch dem Client mit, wie eine
Datei codiert ist, die dem Benutzer geschickt wird. Bei HTML ist das
aber doch irgendwie nicht relevant wenn im Header der Zeichensatz
angegeben ist?!
Was ich auch noch nicht in Erfahrung bringen konnte:
Wie interpretiert Apache bzw. der PHP Interpreter eigentlich eine *.php
Datei, also welcher Zeichensatz wird verwendet? Der Interpreter muss ja
wissen, wie die Datei codiert ist, und in der Datei ist dies nicht
direkt ersichtlich. Ermittelt der Interpreter den Zeichensatz einfach
anhand des Inhaltes, also z.B. am Vorhandensein von gängigen
Multibyte-Zeichen?
Urban B. schrieb:>> Das ist so nicht ganz korrekt. Sein Webserver (Apache) liefert als>> Content Type>> "Content-Type: text/html; charset=iso-8859-1">> Ach so, das habe ich gar nicht gesehen. Aber dazu steht doch die> Zeile<meta http-equiv="content-type" content="text/html; charset=utf-8">> im Header jeder (durch PHP generierten) HTML-Datei, die dann dem Client> gesendet wird? Oder habe ich da etwas falsch verstanden?
Aber das was der Webserver von sich aus sendet, kommt zuerst. Dannach
erst die Ausgabe des Skriptes. Mein Firefox hatte bei der Seite von
Peter K. iso-8859-1 aktiv. Kann man unter "Page Info" ansehen.
Vielleicht gilt einfach das erste, was der Browser sieht. Oder noch
schlimmer, jeder Browser macht es anders ==> Chaos.
>> Christoph schrieb:>> Kann man aber umstellen, z.B. mit AddDefaultCharset und Co., manches>> geht auch in .htaccess Dateien.>> Das habe ich grad unseren .htaccess Dateien noch hinzugefügt. Nach etwas> Recherche im Internet bin ich aber verwirrt was das "AddDefaultCharset"> genau bewirkt.
In die .htaccess wuerde ich das nicht von Haus aus reinschreiben. Denn
bei manchen Direktiven kommt es zu einem 500 Internal Server Error, wenn
man diese in der zentralen Apache Config (global oder fuer den Virtual
Hosts) fuer die Verwendung in .htaccess geblockt hat.
> Grundsätzlich teilt es doch dem Client mit, wie eine> Datei codiert ist, die dem Benutzer geschickt wird. Bei HTML ist das> aber doch irgendwie nicht relevant wenn im Header der Zeichensatz> angegeben ist?!
s.o.
>> Was ich auch noch nicht in Erfahrung bringen konnte:> Wie interpretiert Apache bzw. der PHP Interpreter eigentlich eine *.php> Datei, also welcher Zeichensatz wird verwendet? Der Interpreter muss ja> wissen, wie die Datei codiert ist, und in der Datei ist dies nicht> direkt ersichtlich. Ermittelt der Interpreter den Zeichensatz einfach> anhand des Inhaltes, also z.B. am Vorhandensein von gängigen> Multibyte-Zeichen?
Gute Frage. In Variablennamen duerfen diese Zeichen ja nicht vorkommen,
nur in Strings. Und die interpretiert ja erst der Browser. Unklar ist
was bei Stringbearbeitung bearbeitung, da muss php dann doch wissen dass
es UTF-8 ist.....
mmh jedesmal wenn ich denke, jetzt habe ich das mit den Zeichensätzen
richtig begriffen, werde ich wieder eines besseren belehrt, das fängt
langsam an zu nerven ;-)
OK nach einem kurzen Test scheint die Zeichensatz-Angabe im HTML-Header
tatsächlich wirkungslos, wenn ich im PHP Skript ganz am Anfang den
Zeichensatz per header() auf was anderes als UTF-8 setze.
Spontan würde ich dann also einfach sagen, wir bauen in
start_session.php ganz am Anfang diese Zeile ein:
1
header('Content-type: text/html; charset=utf-8');
Damit sollte dann der HTTP Header ja bei jeder Seite von Part-DB auf
UTF-8 gesetzt werden.
Christoph schrieb:> In die .htaccess wuerde ich das nicht von Haus aus reinschreiben. Denn> bei manchen Direktiven kommt es zu einem 500 Internal Server Error, wenn> man diese in der zentralen Apache Config (global oder fuer den Virtual> Hosts) fuer die Verwendung in .htaccess geblockt hat.
Das ist blöd...dann kommt das halt wieder raus.
Christoph schrieb:> Gute Frage. In Variablennamen duerfen diese Zeichen ja nicht vorkommen,> nur in Strings. Und die interpretiert ja erst der Browser. Unklar ist> was bei Stringbearbeitung bearbeitung, da muss php dann doch wissen dass> es UTF-8 ist.....
Stimmt... Dazu habe ich grad folgendes gefunden:
http://www.gerd-riesselmann.de/softwareentwicklung/php-und-utf-8-eine-anleitung-teil-3-php-string-funktionen
Das wird ja immer besser... Dann ersetze ich jetzt halt alle strlen()
noch durch mb_strlen() usw. ;-)
mfg
Erstmal vielen Dank für die schnelle Hilfe, der mit dem Mindestbestand
ausblenden hat geklappt.
Nun habe ich aber immer noch das Problem dass ich kein Datenblatt
hochladen kann (das mit der URL ist ja ein anderes Thema). Es kommt
immer noch die Fehlermeldung "Es gab ein Fehler beim Hochladen der
Datei!".
Nun habe ich mir nochmal die Installationanleitung angesehen. Alle
Dateien haben nun die Rechte 444, alle Ordner haben die Rechte 555.
Der Ordner "Data" hat die Rechte 755 (sowie alle Unterorder) und die
Dateien da drin (und in den Unterordnern) haben die Rechte 644.
Nun komme ich aber mit folgendem Satz nicht klar:
"Ausserdem sollten alle Dateien dem Besitzer „www-data“ gehören: "
Wie kann ich das denn einstellen? Ich verwende FireFTP, aber ich habe
kein Plan wie ich die Benutzerrechte damit ändern kann :-/
Außerdem bin ich mir nicht sicher ob sich das auf "alle" Dateien bezieht
oder nur auf die Dateien im "Data"-Ordner.
Christian R. schrieb:> Nun habe ich aber immer noch das Problem dass ich kein Datenblatt> hochladen kann (das mit der URL ist ja ein anderes Thema). Es kommt> immer noch die Fehlermeldung "Es gab ein Fehler beim Hochladen der> Datei!".
Also die Fehlermeldung habe ich mittlerweile aussagekräftiger gestaltet,
du kannst es mal probieren mit der aktuellsten Version der lib/lib.php:
https://part-db.googlecode.com/svn/trunk/lib/lib.php
Ausserdem gibts jetzt in der Doku einen Hinweis auf mögliche Probleme
beim Upload. Das Problem ist nämlich hauptsächlich, dass in der
Standardeinstellung von PHP nur Dateien bis 2MB hochgeladen werden
können.
Ab morgen sollte der entsprechende Abschnitt in der Doku der Online Demo
verfügbar sein, aber es ist nicht viel, daher kann ichs gleich hier
posten:
> Die Standardeinstellungen von PHP sind in der Regel ganz in Ordnung.> Möchte man aber auch etwas grössere Dateien hochladen können (z.B.> Dateianhänge in Part-DB), muss man eventuell das Dateigrössen-Limit für> Uploads anpassen. Dies macht man in der Datei "php.ini", welche sich bei> Debian-basierten Betriebssystemen im Verzeichnis "/etc/php5/apache2/"> befindet.>> sudo gedit /etc/php5/apache2/php.ini>> In dieser Datei nach dem Stickwort "upload_max_filesize" suchen und den> Wert entsprechend anpassen. Ausserdem müssen die Werte "post_max_size"> und "memory_limit" mindestens gleich gross sein wie> "upload_max_filesize".Christian R. schrieb:> "Ausserdem sollten alle Dateien dem Besitzer „www-data“ gehören: "
Auch diesbezüglich habe ich die Doku um einen Kommentar erweitert:
> Bei gemieteten Webservern, bei denen man die Dateien per FTP hochlädt,> ist der Besitzer der Dateien häufig ein FTP-Benutzer, und nicht der> Benutzer von Apache. In diesem Fall müssen die Rechte für „data“ 775> bzw. 664, oder sogar 777 bzw. 666 lauten, damit Apache auch> Schreibrechte in diesem Verzeichnis erhält.
Vielen Dank für deine Hilfe.
An der Dateigröße kann es in dem Fall nicht liegen, da die Datei gerade
mal 129kb klein ist. Dank deiner verbesserten lib.php bekomme ich nun
folgende Fehlermeldung:
Sie haben keine Schreibrechte im Verzeichnis
"/www/htdocs/xxxxxxxx/xxxxxxxx/holle/data/media/"!
Das war schon ein Kampf die lib.php hochzuladen (ich hatte keine
Schreibrechte mehr, weil ich ja alle Ordner auf 555 gestellt hatte) ;-)
Nun habe ich dem Ordner "Data" und alle Unterordner CHMOD 775 gegeben
...gleiches Ergebnis.
Mit CHMOD 777 klappt es nun, aber ist das nicht etwas gefährlich?
Gibt es da keine andere Möglichkeit, z.B. dass PHP sich als Benutzer
ausgibt und somit 755 reicht?
Nun gibt es da noch ein Problem:
Ich habe das Datenblatt nun hoch laden können (mit CHMOD 777). Wenn ich
es nun lösche und wieder neu hoch laden möchte bekomme ich folgende
Fehlermeldung:
Die Datei "/www/htdocs/xxxxxxxx/xxxxxxxx/holle/data/media/24C08.pdf"
existiert bereits!
Das Problem wird sein dass die Datei nur aus der Datenbank gelöscht wird
(also der Link), aber die Datei auf dem Server verbleibt, weil die
Rechte zum löschen der Datei nicht ausreichen, denn diese wird mit 644
angelegt.
Christian R. schrieb:> Mit CHMOD 777 klappt es nun, aber ist das nicht etwas gefährlich?> Gibt es da keine andere Möglichkeit, z.B. dass PHP sich als Benutzer> ausgibt und somit 755 reicht?
777 ist natuerlich nicht ideal. JEDER auf diesem System (also
insbesondere andere Hosting-Kunden), kann in das Verzeichnis
reinschreiben.
Christian R. schrieb:> Das Problem wird sein dass die Datei nur aus der Datenbank gelöscht wird> (also der Link), aber die Datei auf dem Server verbleibt, weil die> Rechte zum löschen der Datei nicht ausreichen, denn diese wird mit 644> angelegt.
Um eine Datei zu loeschen, sind auf Unix die Zugriffsrechte am
Verzeichnis relevant. D.h. solange Du Files im Verzeichnis ablegen
kannst, kannst Du sie auch loeschen.
Ideal waere es, wenn das Datenverzeichnis vom part-db Installer erzeugt
wuerde (z.B. in einem Skript). Dann gehoert das Verzeichnis dem
Webserver-Nutzer und man kann 755 einstellen. Waehrend der Installation
muesste das uebergeordnete Verzeichnis per FTP auf 777 gestellt werden
und nachher wieder auf 755 zurueck.
Ich hatte ja den Installer benutzt, aber irgendwas ist da falsch
gelaufen. Ich erinnere mich noch daran dass ich einige Ordner von Hand
anlegen musste, da das automatische Anlegen fehlgeschlagen ist.
Muss mich da mal durchwuseln, vielleicht finde ich ja noch einen Weg um
per FireFTP (FTP-Programm vom Firefox) den Owner zu ändern.
Christian R. schrieb:> Ich hatte ja den Installer benutzt, aber irgendwas ist da falsch> gelaufen. Ich erinnere mich noch daran dass ich einige Ordner von Hand> anlegen musste, da das automatische Anlegen fehlgeschlagen ist.
Ah, wusste nicht, dass der Installer die Ordner anlegen kann.
Vielleicht sollte ich mal eine neue Version der part-db installieren ;-)
> Muss mich da mal durchwuseln, vielleicht finde ich ja noch einen Weg um> per FireFTP (FTP-Programm vom Firefox) den Owner zu ändern.
Aendern des Eigentuemers: nur root darf das :-(
Ich weiß nicht mehr genau ob der Installer auch Ordner angelegt hat, ich
weiß nur noch dass ich selber Ordner anlegen musste.
So, habe nun über das eingebettete FTP-Programm meines Hosters den Owner
ändern können (hatte die Auswahl zwischen meinem Benutzeraccount und
PHP-User. Nun hat der Ordner "Data" und alles da drin (Unterordner,
Dateien) den neuen Benutzer www-data.
Der Ordner Data/Media hat immer noch 777 und als Owner www-data und
trotzdem klappt das mit dem Löschen nicht (aus der Datenbank wird die
Verknüpfung gelöscht, aber auf dem Server bleibt die Datei vorhanden).
Edit: Habe die Rechte von Data/Media nun auf 755 gesetzt, das hochladen
des Datenblatts klappt nun auch mit 775.
Warum das mit dem löschen nicht klappt ist mir ein Rätsel.
Ich werde nun erst einmal alles wieder auf 755 setzen, da das mit dem
neuen Owner ja ausreichend ist.
Christian R. schrieb:> Das Problem wird sein dass die Datei nur aus der Datenbank gelöscht wird> (also der Link), aber die Datei auf dem Server verbleibt, weil die> Rechte zum löschen der Datei nicht ausreichen, denn diese wird mit 644> angelegt.
Das Problem ist eher, dass Part-DB gar nicht erst versucht, die Datei zu
löschen ;-) Werde ich noch korrigieren...
Christoph schrieb:> Ideal waere es, wenn das Datenverzeichnis vom part-db Installer erzeugt> wuerde (z.B. in einem Skript). Dann gehoert das Verzeichnis dem> Webserver-Nutzer und man kann 755 einstellen.
Das ist aber auch irgendwie blöd, weil das funktioniert dann ja nur wenn
man eine Neuinstallation macht. Hat man bereits ein Data-Verzeichnis mit
Daten aus einer bestehenden Installation, muss man das ja z.B. per FTP
hochladen und man hat wieder das gleiche Problem wie vorher...
Um dies zu umgehen müsste man z.B. eine Import/Export Funktion anbieten,
damit man die Daten aus einer bestehenden Installation exportieren, und
dann bei einer Neuinstallation wieder Importieren (per Dateiupload)
kann. Wäre sicher eine elegante Lösung, aber nicht mehr für die Version
0.3.0 :-)
Christoph schrieb:> Ah, wusste nicht, dass der Installer die Ordner anlegen kann.
Der Installer legt auch keine Ordner an, der "data" Ordner ist bereits
im Archiv enthalten (inkl. ein paar Dateien, z.B. .htaccess). Nur die
config.php wird vom Installer angelegt.
Urban B. schrieb:> Der Installer legt auch keine Ordner an, der "data" Ordner ist bereits> im Archiv enthalten (inkl. ein paar Dateien, z.B. .htaccess). Nur die> config.php wird vom Installer angelegt.
Hmmm, dann verwechsle ich da anscheinend was mit mysqldumper.
Zum Thema Installer:
Wäre es nicht machbar eine PHP-Datei in den Ordner zu legen, dieser die
Rechte 777 zu geben und die benennt dann die Ordner um, erstellt diese
neu (somit ist www-data der Owner) und kopiert dann die Dateien und
Order aus den umbenannten Ordnern in die neu erstellen Ordner. Danach
einfach die umbenannten Ordner löschen.
...nicht gleich steinigen, ist nur so ein Gedanke (habe keinen Plan von
PHP und Unix) ;-)
Christian R. schrieb:> Gibt es schon etwas neues bezüglich "URL für Datenblatt eintragen"> (Version 0.3.0) ?
Ist bereits im SVN, kommt dann in die 0.3.0 RC2 die ich wahrscheinlich
bald veröffentlichen werde. Alle wichtigen Bugfixes und sonstige
Verbesserungen, die seit der RC1 gemeldet wurden, sind dann in der RC2
drin.
Testen kann man die RC2 in dieser Demo:
http://www.partdb.grautier.com/svn/
So, ich denke es ist an der Zeit, die RC2 zu veröffentlichen. Ich warte
aber noch bis morgen, damit die Doku in der Online-Demo noch
aktualisiert wird (habe heute noch Änderungen ins SVN hochgeladen).
Das Archiv kann man jetzt übrigens per tools.sh, oder noch einfacher
direkt in Part-DB mit den Entwickler-Tools erstellen lassen. Das
garantiert korrekte Dateirechte, Besitzer und Gruppen aller Dateien und
Verzeichnisse. Auch werden benutzerspezifische Dateien wie die
config.php automatisch ausgeschlossen usw.
Ich würde mich übrigens freuen wenn sich jemand am Erweitern der Doku
beteiligen würde, hier gibts noch viel zu tun :-)
Einerseits ist die FAQ-Seite noch ziemlich leer, andererseits könnte man
vielleicht die Installationsanleitung zweiteilen. Einmal für die
Installation auf einem Server mit "direktem Zugang" (auch SSH), und
einmal für die Installation auf einem Webspace per FTP. Da könnte man ja
auch Screenshots von FileZilla o.ä. mit einbauen usw.
Damit man Schreibrechte im DokuWiki erhält, muss man im Part-DB Ordner
"data" einfach eine (leere) Datei mit dem Namen
"ENABLE-DOKUWIKI-WRITE-PERMS.txt" erstellen.
mfg
Hallo Maximilian,
Es hat sich vieles an der Datenbank verändert und damit ist dieses
Skript leider nicht mehr kompatibel.
Vielleicht gibt es ja einen Freiwilligen, der es aktualisiert? :-)
mfg
Hallo an die Experten,
ich nutze die part-db seit Jahren in der Ursprungsversion von C. Lechner
mit einigen selbstgemachten Änderungen.
Kann ich problemlos die bisher aufgebaute Datenbank in der aktuellen
Version nutzen?
Grüße
Hallo thirdgotti,
Das sollte prinzipiell möglich sein. Wichtig ist einfach, dass du zuerst
ein Backup der Datenbank anlegst damit nichts kaputtgehen kann.
Es kann allerdings sein, dass das Update auf die Version 0.3.0 Probleme
verursacht, dann solltest du mal versuchen zuerst auf die 0.2.2, und
danach auf die 0.3.0 zu aktualisieren. So stehen die Changen sehr gut
dass alles klappt.
mfg
Habe es hinbekommen.
Allderdings muss man da etwas tiefer in die Datenbank. Es haben sich
seit meiner "Uralt-Version" einige Tabellennamen und Spaltennamen
geändert. Diese muss man von dem Import ändern. PHPMyAdmin machts
möglich...
Aber sonst scheint das jetzt zu laufen.
thirdgotti schrieb:> Allderdings muss man da etwas tiefer in die Datenbank. Es haben sich> seit meiner "Uralt-Version" einige Tabellennamen und Spaltennamen> geändert. Diese muss man von dem Import ändern.
Das Ändern der Tabellennamen usw. sollte Part-DB selbst übernehmen. Es
sei denn, in deiner alten Version gibts noch keine Tabelle "internal"
mit dem Eintrag keyName="dbVersion". War der bei dir noch nicht
vorhanden?
Wenn du unsicher bist, kannst du mir deine uralt-DB auch per Mail
schicken, dann kann ich mir das mal anschauen und ggf. das Update auf
die neuste Version durchführen.
Urban B. schrieb:> Gerald *. schrieb:>> Die Vorschaubilder der Artikel werden derzeit teilweise sehr stark>> verzogen, da immer nur in eine Richtung runter skaliert wird.>> Stimmt, das wollte ich eigentlich auch schon lange mal verbessern. Ich> habe jetzt die CSS-Datei entsprechend angepasst, wird nachher noch ins> SVN hochgeladen ist dann in der RC2 drin.
Die Lösung gefällt mir. Danke!
Hi,
ich würde gerne die Lagerverwaltung starten, aber es wird mir verwehrt.
Es kommt immer die Fehlermeldung:
Die gewählte Sprache "de_DE" wird vom Server nicht unterstützt!
Bitte installieren Sie diese Sprache oder wählen Sie eine andere.
Ich habe sämtliche Vorgaben ausprobiert, aber bei jeder gibts die
Fehlermeldung.
Ich habe als Server den XAMPP installiert.
Wie kann ich Sprache "de_DE" installieren?
Mit besten Grüßen
Waldemar
Hallo,
vielen Dank, hat wirklich geklappt.
Nur schlage ich mich jetzt ersteinmal damit rum, eine Datenbank
anzulegen, da die ja vorausgesetzt wird. Darauf war ich nicht
vorbereitet.
Beste Grüße
Waldemar
Hallo,
habe mich heute mal rüber gemacht meine 0.2.2 SVN 512 mit der neuen RC2
upzudaten.
allerdings habe ich jetzt auch das Problem mit der fehlenden Sprache.
Geht es da um die Sprache von der Datenbank?
Gruß
Urban B. schrieb:> So, ich denke es ist an der Zeit, die RC2 zu veröffentlichen. Ich> warte> aber noch bis morgen, damit die Doku in der Online-Demo noch> aktualisiert wird (habe heute noch Änderungen ins SVN hochgeladen).>> Das Archiv kann man jetzt übrigens per tools.sh, oder noch einfacher> direkt in Part-DB mit den Entwickler-Tools erstellen lassen. Das> garantiert korrekte Dateirechte, Besitzer und Gruppen aller Dateien und> Verzeichnisse. Auch werden benutzerspezifische Dateien wie die> config.php automatisch ausgeschlossen usw.>> Ich würde mich übrigens freuen wenn sich jemand am Erweitern der Doku> beteiligen würde, hier gibts noch viel zu tun :-)> Einerseits ist die FAQ-Seite noch ziemlich leer, andererseits könnte man> vielleicht die Installationsanleitung zweiteilen. Einmal für die> Installation auf einem Server mit "direktem Zugang" (auch SSH), und> einmal für die Installation auf einem Webspace per FTP. Da könnte man ja> auch Screenshots von FileZilla o.ä. mit einbauen usw.>> Damit man Schreibrechte im DokuWiki erhält, muss man im Part-DB Ordner> "data" einfach eine (leere) Datei mit dem Namen> "ENABLE-DOKUWIKI-WRITE-PERMS.txt" erstellen.>> mfg
Hallo Kami,
ich würde mich bereit erklären die Grundfunktionen unserer Part-DB zu
Beschreiben für alle Neulinge. Habe die alte Version schon auf Herz und
Nieren getestet und seit fast 1,5Jahren im täglichen
Produktionseinsatz...
Jetzt muss ich meine 0.3.0 erstmal fertig updaten. kann mir keiner
weiterhelfen? ich hänge aktuell immernoch im Installscript fest bei der
Sprach- und Ländereinstellung. Ich denke die Datenbank ist bei diesem
Schritt schon geupdatet und ich habe die Befürchtung wenn ich die alte
Version wieder zurückspiele mir da noch mehr Probleme entstehen.
abcdef schrieb:> @kirkdis:> Ich glaube, Du musst auf Deinem Webserver das Locale de_DE installieren.
das ist ne Synology DS107. Ich vermute jetzt auf der Kommandozeile von
dem Linux. Wobei das dann etwas frickelig wird. Kann man das nicht
umgehen? Bei den alten Versionen gabs das Problem nicht.
Den UTF-8 Zeichensatz kann ich leider nicht so einfach integrieren.
Erstmal ist die Box offline und ich habe auch nicht so einfach die
Möglichkeit mit dieser online zu gehen. Auf einem anderen Rechner
herunterladen ist nicht so einfach möglich zumal ich nicht ganz firm mit
der Kommandozeile unter Linux bin. Warum wird das nun in der neuesten
Version abgefragt. Die Datenbank läuft und lief bis jetzt mit
UTF8_gerneral_ci Einstellungen.
Hallo,
Sorry bin grad in den Ferien und komme nur schlecht ins Internet...
Kannst du noch bis nächsten Donnerstag warten? :-)
Weiter oben hier im Thread hatte schonmal jemand das gleiche Problem,
schau mal was ich ihm geschrieben habe, war ein Eintrag in der
config_defaults.php um das Problem vorübergehend zu beheben.
tut mir leid, muss jetzt wieder weiter :-)
Grüsse Urban
Also ich hab mir jetzt mal den Post von dir rausgesucht:
Beitrag "Re: Lagerverwaltung Part-DB V0.2.2"
allerdings unterscheiden sich diese Zeilen von der RC1 zur RC2. ich habe
jetzt ein wenig rumgespielt aber leider keine Lösung bekommen um durch
die Sprachabfrage durchzukommen.
falls mir niemand anderes weiterhelfen kann werde ich wohl bis
Donnerstag warten müssen.
Schönes Wochenende allen..
Gruß
Daniel
Hi, bin nun auf rev 674 mit debian und läuft super. Nur zur Info. ;)
Meine Wünsch wäre es herausfinden zu können welches das letzte
veränderte Bauteil ist, bzw das letzt hinzugefügte.
Ist sowas vielleicht schon irgendwo mit eingebaut?
Danke viiielmals für das tolle Skript.
Grüße Christopher
Welches das jüngste Bauteil ist kann man anhand der ArtikelID sehen.
aber eine suche direkt gibts soweit ich weiss nicht.
Wenn das nicht allzuoft benötigt wird kann man den Umweg über die
Datenbank gehen. Die ID sollte da in einer separaten Spalte aufgelistet
sein ich denke sogar dass ein Änderungsdatum dort hinterlegt ist aber
100% sicher bin ich mir beim Datum nicht.
Gruß Daniel
Datum ist nicht vorhanden, aber das geht über die ID da die Fortlaufend
sind, könte man der Statistik nochmal hinzufügen leider komme ich immer
noch nicht mit dem Template System klar aber, ich schaue mal ob ich das
hinbekomme.
Man könnte ein Log einbauen, dass Einfügen und Änderung von Einträgen
mitschreibt. So könnte man auch nicht mehr verwendete Bestände aufspüren
und eventuell aus dem Lager entfernen/entsorgen. Platz hat man ja
bekanntlich fast so wenig wie Geld ;-)
Edit: Ich kann mir das ja mal anschauen, ob ich so eine Funktion
hinbekomme.
Hi, Es ist ja das "added date" und "modified date" in der Datenbank
vorhanden bei den parts. Soweit war ich schon. ;)... Leider hab ich die
functionen nicht finden können welche so ähnlich sind. Hätte mich selbst
dran versucht. Ist aber fast schon zu hoch für mich.
Es geht mit "mir" darum... Wir befüllen zu dritt die partdb. Und es gibt
zb bei einem Stecker eine Änderung des Datenblattes oder des
Bestellnummer. Nun würde ich gerne am Freitag wissen was sich über die
Woche verändert hat.
Hoffe ihr könnt euch vorstellen was ich in etwa damit bezwecken will.
Dankeschön, Grüße aus Wien
Chris
So, bin wieder zurück :-)
kirkdis schrieb:> habe mich heute mal rüber gemacht meine 0.2.2 SVN 512 mit der neuen RC2> upzudaten.> allerdings habe ich jetzt auch das Problem mit der fehlenden Sprache.> Geht es da um die Sprache von der Datenbank?
Nein, das hat nichts mit der Datenbank zu tun. Man stellt das Land und
die Sprache ein, damit z.B. automatisch die richtige Währung in der
richtigen Formatierung angezeigt wird. Part-DB muss dazu dem
Server-Betriebssystem mitteilen, welche Sprache man verwenden möchte.
Stellt das Betriebssystem die gewünschte Sprache nicht zur Verfügung,
kommt es zu einer Fehlermeldung.
Laut diversen Berichten im Internet haben die Synology NAS anscheinend
standardmässig kein UTF-8 Zeichensatz installiert. Ob das wirklich ein
Problem darstellt, bin ich mir aber grad nicht sicher, muss mir das
erstmal genauer anschauen.
Mach doch bitte mal den folgenden Test:
In der Datei lib/lib.start_session.php die gesamte Funktion
own_setlocale() ausklammern und durch diese hier ersetzen:
1
function own_setlocale($category, $locale)
2
{
3
return (setlocale($category, "de_DE") !== false);
4
}
kommt so die Fehlermeldung immernoch?
Bezüglich dem Log:
Also erstens habe ich bei der Tabelle "parts" die Spalten
"datetime_added" und "last_modified" hinzugefügt. Es gibt aber in
Part-DB noch keine Möglichkeit, diese Angaben irgendwie zu nutzen.
Und zweitens ist es schon lange geplant, ein Log mit einzubauen, der
jede Änderung aufzeichnet. Dazu existiert bereits die Klasse "Log", die
auch schon in alle anderen Klassen mit eingebaut wurde. Es ist also
alles schon vorbereitet.
@Christopher
Also wenn du auch Änderungen an Datenblättern usw. sehen willst, geht
das (noch) nicht mit der Tabellenspalte "last_modified", weil dieses
Feld nicht aktualisiert wird wenn du ein Datenblatt hinzufügst o.ä.
Das wird aber noch geändert, so dass wirklich jede Änderung an einem
Bauteil das "last_modified" aktualisiert.
Würde es dir genügen, wenn du nur sehen würdest, welche Bauteile sich
verändert haben, oder musst du auch wissen was sich daran verändert
hat?
Ersteres wäre keine grosse Sache, das könnte man relativ einfach
realisieren. Zweiteres ist dann aber ein Fall für die Log-Klasse, das
gibt noch sehr sehr viel Arbeit.
mfg
Hi Urban.
Hab ich mir doch gedacht das sowas kommen wird. Seit ja erst bei v.0.3.0
- Nun also... mir persönlich würde es ausreichen das Bauteil zu sehen
welches sich verändert hat. (Inhaltlich muss "Ich" es dann mit meinen
Cad-Zeichnungen abgleichen und zb die Bestellnummer in der Zeichnung
gegen die neue ersetzen.)
Ich denke vorerst ist nicht relevant was sich verändert hat. So viele
Variablen sind es dann auch nicht. Das würde ich dann schon
herausfinden. Hatte ich auch so bei meiner alten db. Also "einfach" eine
normale Sortierfunktion....sozusagen. (Verändertes oder Neues Bauteil
von oben nach unten sortiert.)
- Natürlich wäre es genial auf einen Blick sehen zu können wer was und
wann verändert hat. Aber soweit mag ich noch nicht denken, weil das
wer gibts es ja noch nicht.. ;)
- Das "last_modified" noch nicht bei Dateblätter aktualisiert wird ist
mir noch gar nicht aufgefallen. Gut zu wissen. g
DANKE
Grüße aus Wien
Also ich habe den Code jetzt noch so angepasst, dass das "last_modified"
auch bei Änderungen an Einkaufsinformationen, Preisinformationen und
Dateianhängen aktualisiert wird. Ist dann im nächsten Release also mit
drin.
@Christopher
Damit du die letzten Änderungen möglichst schnell in phpMyAdmin anzeigen
kannst, gibt es folgende Möglichkeit:
Datenbank wählen --> Tabelle "parts" wählen --> Reiter "SQL" wählen.
Dort als Befehl folgendes eingeben:
1
SELECT id, name, description, last_modified
2
FROM `parts`
3
WHERE last_modified >= '/*[VARIABLE]*/'
4
ORDER BY last_modified DESC
Dann bei "SQL-Abfrage speichern:" irgend einen Namen eingeben und auf
"OK" klicken. Die Abfrage ist jetzt gespeichert, mit einem Platzhalter
für das Datum, und kann jederzeit wieder abgerufen werden.
Zum Abrufen gehst du so vor:
Wieder den Reiter "SQL" wählen und dann unten bei "Gespeicherte
SQL-Abfrage" die eben erstellte Abfrage wählen. Dann bei "Variable" das
Datum/Uhrzeit in dieser Form eingeben: "2013-07-01 00:00:00" (ohne "").
Auf "OK" klicken und es werden alle Bauteile aufgelistet, die nach dem
eingegebenen Datum verändert wurden.
mfg
Hallo Urban,
also habe den setlocale code wie beschrieben eingefügt. Der Fehler ist
aber nach wie vor aktuell.
hmm gibts dafür einen Workaround und warum ist das jetzt mit der neuen
Version plötzlich nötig. Die alte 021 hat es anscheinend nicht
interessiert welche Spracheinstellung verwendet werden.
kirk disen schrieb:> also habe den setlocale code wie beschrieben eingefügt. Der Fehler ist> aber nach wie vor aktuell.
hmm okay dein NAS hat wohl keine Sprachen installiert, die man mit
setlocale() nutzen kann.
aus http://forum.synology.com/enu/viewtopic.php?t=4232:
> There are no locales on the DS' system, so only the default "C" locale works.kirk disen schrieb:> hmm gibts dafür einen Workaround und warum ist das jetzt mit der neuen> Version plötzlich nötig. Die alte 021 hat es anscheinend nicht> interessiert welche Spracheinstellung verwendet werden.
Vorher war Part-DB eigentlich auch nur für die Verwendung in Deutschland
vorgesehen. Mit der Funktion setlocale() ist Part-DB aber auch in
anderen Ländern nutzbar, weil alle länderspezifischen Parameter direkt
vom Betriebssystem geholt werden können.
Zum Beispiel gibt es Länder, bei denen die Währung vor dem Betrag steht,
und Länder, bei denen zuerst der Betrag und dann die Währung geschrieben
wird. Dann gibt es Länder, bei denen der Punkt als Dezimalpunkt genommen
wird, bei anderen Ländern ist es das Komma. Oder auch das Datumsformat
ist je nach Land sehr unterschiedlich.
Dank der setlocale() Funktion müssen wir Entwickler uns nicht um solche
Sachen kümmern. Wir teilen einfach dem Betriebssystem mit, dass wir z.B.
"Deutsch (Deutschland)" oder "Englisch (USA)" nutzen möchten, und das
Betriebssystem liefert uns die Währungen und Datumsangaben direkt in der
jeweils lokalen Schreibweise.
Dass es aber so häufig zu Problemen kommt wegen dem setlocale() habe ich
natürlich nicht geahnt. Bei "normalen" Linux-Servern sollte es
eigentlich immer funktionieren. Bei Windows weiss man nicht so recht
welche Länderbezeichnung man nehmen muss, das ist sehr mühsam. Und jetzt
erfahre ich von dir, dass es wohl auf den Synology NAS gar keine locales
gibt...
Man könnte sich natürlich schon überlegen, all die Länderspezifischen
Parameter in Part-DB zu hinterlegen, z.B. für jedes Land eine Datei in
dem die Parameter aufgelistet sind. Das gibt zwar Arbeit, allerdings ist
man diesbezüglich nicht mehr vom Betriebssystem abhängig.
Vielleicht hat ja irgendwer bereits Erfahrung mit diesem Thema und kann
uns ein paar Tipps geben?
@ kirk disen
Da anscheinend der Ländercode "C" auf deinem NAS vorhanden sein sollte,
versuch doch mal diese own_setlocale():
ok Danke erstmal, mit dem letzten script der set locale hat es jetzt
geklappt die Setuproutine zu beenden. Allerdings kommt jetzt danach
nichts mehr, der Browser bleibt weiss ohne Fehlermeldung.
Zum glück kann ich das neben der alten 512er SVN betreiben, so ist das
System noch zugänglich auch wenn die neue 0.3.0 RC2 noch nicht
funktioniert.
kirk disen schrieb:> Allerdings kommt jetzt danach> nichts mehr, der Browser bleibt weiss ohne Fehlermeldung.
PHP >= 5.3 ist vorhanden, oder?
Dann könntest du mal die Seite http://server/part-db/system_debug.php
aufrufen um das Debugging zu aktivieren. Danach nochmal die Startseite
von Part-DB aufrufen und schauen was kommt. Durch das Debuggen sollten
die PHP Fehlermeldungen angezeigt werden, vorher wurden die unterdrückt,
deshalb die weisse Seite.
er fragt mich nun nach dem administrator passwort. Ich glaube das hatte
ich beim setup wohl vergessen einzugeben, kann ich das setup nochmals
aufrufen um dieses erneut einzugeben?
Das Administratorpasswort kann man eigentlich gar nicht vergessen
einzugeben, ohne dieses kann die Installation nicht fortgesetzt werden
;-)
Du kannst aber einfach die Datei "config.php" im Verzeichnis "data"
löschen, dann kommt der Installer wieder.
also habe gerade die config erneut ausgeführt, Admin pass neu gesetzt
Datenbank aktualisiert.
Danach aufs part-db und erneut White Screen.
Anschliessend das debugging aktiviert und in nem neuen Tab wieder die
Seite aufgerufen.
Debugging zeigt mir nichts an. Sehr komisch das ganze...
Irgendetwas läuft da schief.
Bei aktiviertem Debugging ist die Hauptseite immernoch weiss?
Keine PHP Fehlermeldungen zu sehen?
Dass im Debug-Log keine Fehler auftauchen, ist klar. Dort tauchen nur
Part-DB interne Fehler auf, keine PHP Fehler.
Vielleicht musst du bei deinem NAS erst irgendwas konfigurieren, damit
PHP die Fehlermeldungen ausgibt. Ich kenne die Synology NAS überhaupt
nicht, gibts da ein Webinterface bei dem man PHP konfigurieren, und
evtl. auch gleich die PHP Logs anschauen kann?
Normalerweise sollte das eigentlich nicht notwendig sein, da Part-DB
versucht, die PHP Fehlermeldungen selber zu aktivieren. Nur vielleicht
klappt das ja auf dem NAS nicht, keine Ahnung...
Übrigens, schonmal das NAS neu gestartet? Als ich noch intensiv an
Part-DB 0.3.0 programmiert habe, hat mein Server manchmal auch ganz
komische Sachen gemacht, ein Neustart (mindestens von Apache) hat ihn
dann jeweils wieder zur Vernunft gebracht ;-)
@kirk disen
Gibts Neuigkeiten bezüglich deinem Problem?
Wäre schon nicht schlecht wenn wird das Problem beheben könnten, es gibt
sicher noch andere Leute die Part-DB auf einem NAS installieren möchten.
@Alle
Da hier im Forum seit der RC2 praktisch keine Bugs mehr gemeldet wurden,
könnte man daher schon bald mal daran denken, die finale 0.3.0
rauszubringen. Ich habe in letzter Zeit noch ein paar kleinere Bugs
behoben die ich beim "rumspielen" gefunden habe. Leider brauche ich
persönlich Part-DB zur Zeit aber praktisch nicht, da ich grad keine
Elektronikprojekte am laufen habe.
Gibt es schon jemand der die RC2 im produktiven Einsatz hat und
berichten kann wie es läuft?
mfg
Hallo zusammen,
ich hab mir heute Part-db Version 0.3.0 RC2 auf einem Windows Server2008
(IIS 6) installiert und musste dabei folgendes anpassen:
Fehler auf jeder Seite:
1
PHP Notice: Undefined index: DOCUMENT_ROOT in C:\Inetpub\vhosts\orange-showtechnik.de\partdb\start_session.php on line 143 PHP Warning: mb_strpos(): Empty delimiter in C:\Inetpub\vhosts\orange-showtechnik.de\partdb\start_session.php on line 150
Lösung:
Unter Windows / IIS gibt es wohl die Variable DOCUMENT_ROOT nicht und
muss händisch nachgepflegt werden. In die start_session.php muss man
folgendes einfügen:
PHP Warning: implode(): Invalid arguments passed in C:\Inetpub\vhosts\orange-showtechnik.de\partdb\lib\lib.functions.php on line 129 PHP Warning: implode(): Invalid arguments passed in C:\Inetpub\vhosts\orange-showtechnik.de\partdb\lib\lib.functions.php on line 129 PHP Warning: implode(): Invalid arguments passed in C:\Inetpub\vhosts\orange-showtechnik.de\partdb\lib\lib.functions.php on line 129
Lösung:
Der Rückgabewert $value in der lib.functions.php muss als Array
deklariert werden:
Außerdem funktioniert bei mir die Anzeige des Artikelpreises nicht
korrekt, der Wert wird zwar gespeichert aber in der Übersicht und beim
Bestellen wird er nicht angezeigt.
Gruß Bernhard
Kurze Anmerkung noch für Mouser Besteller:
Beim abscannen der Mousertütchen tritt das Problem auf dass Bindestriche
gefolgt von Leerzeichen (also "- ") durch ein ß ersetzt werden.
Sprich aus 863- LM317MBDTRKG wird 863ßLM317MBDTRKG.
Dazu hab ich in der "edit_part_info.php" in Zeile 234 und 250 folgendes
eingefügt:
$new_supplierpartnr = str_replace("ß", "- ", $new_supplierpartnr);
Nun können Mousertütchen munter abgescannt werden :)
Gruß
Bernhard
Es sieht mir eher danach aus, als ob der Barcodescanner falsch
eingestellt ist. Einige der Codes sind verwandt, manche Codes oder
Varianten kennen kein Leerzeichen. Da ich nur im Büro auf einen
Barcodescanner zurückgreifen kann, kann ich leider dir nicht sagen,
welchen Code Mouser selbst verwendet.
Udo Neist schrieb:> Es sieht mir eher danach aus, als ob der Barcodescanner falsch> eingestellt ist. Einige der Codes sind verwandt, manche Codes oder> Varianten kennen kein Leerzeichen. Da ich nur im Büro auf einen> Barcodescanner zurückgreifen kann, kann ich leider dir nicht sagen,> welchen Code Mouser selbst verwendet.
Leider ist es ein ganz einfacher Scanner (CipherLAB 1000) zu dem es auch
keine Software oder Konfigurationseinstellungen gibt. Von dem her war
das jetzt für mich der einfachste Weg zum Ziel zu kommen. Eventuell
stehen andere User vor einem ähnlichen Problem und können sich durch die
zwei Zeilen Code einiges an Arbeit ersparen.
Deine zwei obrigen Codeschnipsel funktionieren bei mir übrigens leider
nicht :(
Eventuell müsste man für die Barcodescanner eine Korrekturfunktion
einbauen, die fehlerhafte Scans korrigiert. Vielleicht eine
produktbezogene Library, die eine entsprechende Funktion enthält.
Immer die leidigen Windows-Probleme... ;-)
@Borsty Bürste
Kannst du mal die angehängte start_session.php ausprobieren?
Bezüglich Barcode:
Momentan werden Barcodes ja noch gar nicht offiziell unterstützt von
Part-DB. Aber das kommt natürlich noch, K.J. hat ja schon damit
begonnen.
Was ich eigentlich sagen möchte: Das Feld für die Bestellnummer ist
dafür vermutlich nicht ideal - ich denke mal, es kann durchaus mal
Barcodes geben, die nicht mit der Bestellnummer übereinstimmen (?)
Ein zusätzliches Feld, extra für den Barcode, würde die ganze Sache
flexibler machen. Theoretisch ist dann auch das Problem mit fehlerhaften
Zeichen kein wirkliches Problem mehr, ob der Barcode nun ein falsches
Zeichen enthält ist völlig irrelevant, da es für den Menschen gar nicht
lesbar sein muss.
Diesen Barcode müsste man dann natürlich so wie die Bestellnummern, für
jede Einkaufsinformation (Klasse "Orderdetails") separat zuweisen
können.
Ausserdem wäre vermutlich ein zusätzliches Feld für einen Barcode
sinnvoll, welcher für ein ganzes Bauteil gültig ist. Damit kann man dann
persönliche Beschriftungen realisieren, also die Bauteile im eigenen
Lager mit eigenen Barcodes versehen.
mfg
Urban B. schrieb:> Ausserdem wäre vermutlich ein zusätzliches Feld für einen Barcode> sinnvoll, welcher für ein ganzes Bauteil gültig ist.
Man kann auch einen Artikel bei mehren Händlern bestellen, von daher
müsste es bei den Preisen oder zumindest Händlerabhängig gespeichert
sein.
Gerald *. schrieb:> Urban B. schrieb:>> Ausserdem wäre vermutlich ein zusätzliches Feld für einen Barcode>> sinnvoll, welcher für ein ganzes Bauteil gültig ist.>> Man kann auch einen Artikel bei mehren Händlern bestellen, von daher> müsste es bei den Preisen oder zumindest Händlerabhängig gespeichert> sein.
Ja, man beachte das Wort "zusätzlich" in meinem Satz :-)
Also für jede Einkaufsinformation einen Barcode, und zusätzlich für den
Artikel an sich einen Barcode.
Erstere(r) wird/werden verwendet um ein geliefertes Bauteil zu
identifizieren/einzubuchen. Zweiteres wird verwendet, um ein Bauteil aus
dem Lager zu identifizieren/abzubuchen (sofern man die eigenen Bauteile
mit eigenen Barcodes versehen möchte).
Aber alles zu seiner Zeit :-)
Urban B. schrieb:> Immer die leidigen Windows-Probleme... ;-)
Ja echt furchtbar, ich fands ja schon schrecklich im IIS PHP zum laufen
zu bekommen... als würde man das nicht brauchen... oO Naja aber der
Webserver ist nun mal da und somit verwend ich ihn auch.
> @Borsty Bürste> Kannst du mal die angehängte start_session.php ausprobieren?
Jop soeben probiert und funktioniert :)
Was ich übrigens etwas (furchtbar) umständlich finde ist die Zuweisung
der Footprints, sonst scheint das Tool echt einen ganz brauchbaren
Eindruck zu machen. Weiter so!
Vorallem ist es schön dass man auch mal selbst was anpassen kann. Bei
welchem Tool geht das denn heute noch so einfach?
Ist es eigentlich möglich die Bauteile je Kategorie unterschiedlich zu
sortieren?
Ich finde es vorallem bei den Widerständen etwas umständlich dass diese
nicht nach Zahlenwerten sortiert werden. Bei IC's mag das ja sinn machen
aber bei vielen Widerständen wird das schnell sehr unübersichtlich.
Sprich 220 Ohm sollte z.b. nach 39 Ohm kommen, da größer. Ich habs auch
schon probiert das Ohm wegzulassen und in der Spalte Name nur mit
Zahlenwerten zu arbeiten. Funktioniert leider auch nicht.
Wie lösen das andere?
abcdef schrieb:> Wann kommt endlich die Version 0.3.0?
Wenn sie fertig ist :-)
Aber du kannst ja die RC2 davon schonmal benutzen...
Borsty Bürste schrieb:>> @Borsty Bürste>> Kannst du mal die angehängte start_session.php ausprobieren?>> Jop soeben probiert und funktioniert :)
OK ich lads dann noch ins SVN, ebenso wie die Änderung in
money_format().
Borsty Bürste schrieb:> Was ich übrigens etwas (furchtbar) umständlich finde ist die Zuweisung> der Footprints
Jup, da stimme ich dir zu, das ist im Moment leider relativ mühsam.
Geplant ist halt, dass man die Bilddatei mit dem neuen Dateimanager von
Udo wählen kann, doch der ist noch nicht fertig.
> sonst scheint das Tool echt einen ganz brauchbaren> Eindruck zu machen. Weiter so!
Danke :-)
Borsty Bürste schrieb:> Ist es eigentlich möglich die Bauteile je Kategorie unterschiedlich zu> sortieren?
Nein, das ist zur Zeit nicht möglich.
Borsty Bürste schrieb:> Sprich 220 Ohm sollte z.b. nach 39 Ohm kommen, da größer. Ich habs auch> schon probiert das Ohm wegzulassen und in der Spalte Name nur mit> Zahlenwerten zu arbeiten. Funktioniert leider auch nicht.
Naja, das System erkennt natürlich nicht dass alle Bauteile in der
angezeigten Kategorie Zahlen als Namen haben. Und dass "1 MOhm" grösser
als "100 Ohm" ist, das merkt das System natürlich erst recht nicht ;-)
Urban B. schrieb:> Borsty Bürste schrieb:>> Was ich übrigens etwas (furchtbar) umständlich finde ist die Zuweisung>> der Footprints> Jup, da stimme ich dir zu, das ist im Moment leider relativ mühsam.> Geplant ist halt, dass man die Bilddatei mit dem neuen Dateimanager von> Udo wählen kann, doch der ist noch nicht fertig.
Das hängt immer noch an dem blöden Uploader für einige Browser :( Flash
will ich ja nicht einsetzen, so wird das für IE bis 10 und ein paar
andere bei Einzeluploads bleiben. FF und Chrome sind da deutlich besser.
Ansonsten ist der (Web-)Dateimanager nutzbar.
Leider muss ich nochmal mit einer "Kleinigkeit" kommen.
Ich bin grad am einpflegen meiner ganzen Artikel und jetzt ist mir
aufgefallen dass wenn ich ein Tütchen mit 5 x Widerstand 33 Ohm 0603
samt Einkaufsinformationen einpflege und darauf hin ein weiteres Tütchen
mit den selben Widerständen und den selben Einkaufsinformationen
eintrage mir part-db die Einkaufsinformationen vom ersten verwirft.
Sprich ich hab dann zwei mal Widerstand 33 Ohm 0603 mit je 5 Stück aber
nur einen Eintrag mit den Einkaufsinformationen.
Hier wäre es verdammt wichtig dass part-db die Einkaufsinformationen
prüft und bei dem selben Lieferanten die Stückzahl addiert und bei
unterschiedlichen Lieferanten den neuen mit der neuen Stückzahl
hinzufügt.
Beispiel:
Ich trage 4 x Attiny23 von Conrad mit Bestellnummer 423452 ein und eine
Woche später entscheid ich mich die Teile bei Mouser zu bestellen also
trag ich 6 x Attiny23 mit Bestellnummer von Mouser ein. Jetzt müsste es
einen einzigen Eintrag Attiny23 geben Stückzahl 10 und unter
Einkaufsinformationen stehen Conrad und Mouser.
So wie es jetzt ist kann es zu einem Katastrophalen Durcheinander führen
(siehe Anhang)... Ich muss jetzt nämlich nochmal alle Teile durchsehen
und prüfen wieviele 33 Ohm von welchen Lieferanten kamen und welche
davon obsolete sind.
Wie auf dem Screenshot zu sehen funktioniert wohl auch die Sortierung
nicht so wie sie sollte.
Borsty Bürste schrieb:> Ich bin grad am einpflegen meiner ganzen Artikel und jetzt ist mir> aufgefallen dass wenn ich ein Tütchen mit 5 x Widerstand 33 Ohm 0603> samt Einkaufsinformationen einpflege und darauf hin ein weiteres Tütchen> mit den selben Widerständen und den selben Einkaufsinformationen> eintrage mir part-db die Einkaufsinformationen vom ersten verwirft.>> Sprich ich hab dann zwei mal Widerstand 33 Ohm 0603 mit je 5 Stück aber> nur einen Eintrag mit den Einkaufsinformationen.>> Hier wäre es verdammt wichtig dass part-db die Einkaufsinformationen> prüft und bei dem selben Lieferanten die Stückzahl addiert und bei> unterschiedlichen Lieferanten den neuen mit der neuen Stückzahl> hinzufügt.
Moment mal - Ich bin mir nicht sicher ob ich das richtig verstanden
habe.
Also Schritt für Schritt:
Borsty Bürste schrieb:> wenn ich ein Tütchen mit 5 x Widerstand 33 Ohm 0603> samt Einkaufsinformationen einpflege und darauf hin ein weiteres Tütchen> mit den selben Widerständen und den selben Einkaufsinformationen> eintrage
Du legst also für jedes Tütchen einen separaten Artikel an? Wozu das?
Alle 10 Widerstände sind doch genau die selben, also brauchts dafür nur
einen Artikel in der Datenbank, mit der Menge 10Stk.
Borsty Bürste schrieb:> mir part-db die Einkaufsinformationen vom ersten verwirft.
Das kann ich nicht nachvollziehen. Kannst du das reproduzieren und mir
eine Schritt-für-Schritt Anleitung dazu geben?
Borsty Bürste schrieb:> Hier wäre es verdammt wichtig dass part-db die Einkaufsinformationen> prüft und bei dem selben Lieferanten die Stückzahl addiert und bei> unterschiedlichen Lieferanten den neuen mit der neuen Stückzahl> hinzufügt.
Auch hier verstehe ich dich nicht. Stückzahl und Lieferant sind zwei
völlig verschiedene Dinge. Ob in deinem Lager der selbe Widerstand von
sieben verschiedenen Herstellern stammt, ist völlig irrelevant. Wichtig
ist nur zu wissen, wieviel Stück du insgesamt an Lager hast. Woher die
kommen ist egal, schliesslich sind alle Widerstände identisch, auch wenn
sie von verschiedenen Lieferanten kommen.
Die Angabe der Lieferanten und Bestellnummern und Preise dient nur dazu,
dass man sich merkt wo man das Bauteil zu welchem Preis bekommt.
Borsty Bürste schrieb:> Ich trage 4 x Attiny23 von Conrad mit Bestellnummer 423452 ein und eine> Woche später entscheid ich mich die Teile bei Mouser zu bestellen also> trag ich 6 x Attiny23 mit Bestellnummer von Mouser ein.
Nein, du fügst dem alten Bauteil einfach eine neue Einkaufsinformation
für die Bestellung bei Mouser hinzu, und erhöhst den Lagerbestand des
ATTiny's um 6. Ergebnis: Einen Artikel "ATTiny" mit Lagerbestand "6" und
den zwei Einkaufsinformationen für Conrad und Mouser.
Borsty Bürste schrieb:> Wie auf dem Screenshot zu sehen funktioniert wohl auch die Sortierung> nicht so wie sie sollte.
Naja...er sortiert nach Name, und das ist ja korrekt :-) Aber ich füge
noch hinzu dass bei identischem Namen auch die Beschreibung zur
Sortierung benutzt wird.
Also:
Wenn ich dich richtig verstanden habe, hast du Part-DB falsch
verstanden ;-)
Oh ok anscheinend hab ich mich tatsächlich etwas wirr ausgedrückt -
bitte entschuldige!
Ich möchte natürlich nicht für jedes Tütchen einen eigenen Artikel
anlegen. Selbstverständlich soll part-db alle gleichen Artikel des
selben Herstellers zusammenwürfeln, ganz egal wo ich die gekauft habe.
Soweit schon klar :)
ABER: Wenn ich dussel nicht merk dass es diesen Artikel ja schon gibt
(was bei so vielen durchaus mal vorkommen kann) und ich leg den Artikel
nochmal an, mit den selben Einkaufsinformationen und dem selben
Hersteller wäre es schön wenn part-db meckern würde "Vorsicht den selben
Artikel von dem selben Hersteller hab ich doch schon!".
Aktuell ist es so dass er den Artikel nochmal anlegt und ich dann zwei
gleiche Artikel mit den gleichen Daten in der Datenbank habe. Genau das
soll ja nicht passieren ;-)
Entweder part-db merkt dass es den Artikel gibt und fügt die zwei gleich
zusammen oder es kommt einfach eine Fehlermeldung und lässt die Aktion
nicht zu. Bei letzterem hab ich dann die Möglichkeit den schon
vorhandenen Artikel zu finden und zu aktualisieren.
Ich denke das ist nun etwas verständlicher :)
Ach so, ja jetzt verstehe ich dich :-)
Grundsätzlich würde ich ja sagen, es ist Sache des Anwenders erstmal zu
schauen obs den entsprechenden Artikel schon gibt. Aber einen dezenten
Hinweis, dass es bereits einen Artikel mit dem selben Namen, selben
Hersteller und selben Footprint gibt, wäre sicher machbar und sinnvoll.
Aber wirklich nur wenn Name, Hersteller und Footprint exakt identisch
sind, sonst gibts ständig Fehlalarme wenn man ein ähnliches Bauteil wie
ein bereits existierendes anlegt, das nervt dann nur.
Ich nehme das einfach mal in die ToDo-Liste auf.
So langsam nimmt Part-DB richtig gute Konturen an :-) Auf solche
Kleinigkeiten kommen wir Entwickler auch nicht immer. Da ist es gut,
dass es auch engagierte Tester gibt, die uns ein Feedback geben.
Daumen hoch
Ich arbeite ja nun seit einigen Tagen mit Part-DB und mittlerweile 247
verschiedene Bauteile (laut Statistik, hihi) eingepflegt.
Was noch schön wäre:
- EDIT Funktion für mehrere Bauteile gleichzeitig (auch wäre es sinnvoll
mehrere Bauteile gleichzeitig in eine andere Kategorie/Unterkategorie
verschieben zu können) Aktuell mach ich das direkt in der Datenbank mit
SQL Phrasen, im Tool selbst ist das fast nicht möglich.
- Für jedes Bauteil sollte eine Art "Zustand" auswählbar sein der frei
definiert werden kann (z.b. Neuware, ausgelötet, Pins verbogen, zum
basteln, ...). Ich stell mir das über ein DropDown Menü vor.
- Was ich persönlich etwas nervig finde ist die Tatsache dass man beim
anlegen eines neuen Bauteiles (oder beim bearbeiten) keinen weiteren
Browsertab öffnen kann. Sehr umständlich um mal eben den Preis zu
checken oder die technischen Daten.... Ich verwende dazu aktuell einen
zweiten Browser, nervt aber.
- Export Funktion aller Bauteile für die Weiterverarbeitung in
(ex-)bom.ulp. (das werde ich aber vermutlich die kommenden Tage selbst
schreiben). Somit kann man dann die Eagle Projekte direkt mit Part-db
Verknüpfen. Einfache zu realisierendes Features was part-db richtig
"mächtig" macht.
- In der Listenansicht der Bauteile wäre es schön den Hersteller zu
sehen, eventuell als neue Spalte oder dafür z.b. die Spalte Dateianhänge
weglassen.
Wie werden die Bauteile eigentlich aus der Datenbank geholt? Ich wollte
mir die Sortierung der Teile selbst noch anpassen, hab aber in der
show_categorie_parts.php nur die dazugehörigen $REQUESTS gefunden,
jedoch nirgends einen Select aus der DB.
Ich hoffe das war nicht zuviel auf einmal xD
Gruß
Bernhard
@K.J.
Ich habe mal den RSS-Feed Parser auf der Startseite umgeschrieben, weil
vorher ja die Links nicht funktioniert haben. Allerdings funktioniert
das in der Online Demo nicht, es kommt nur eine weisse Seite. Könntest
du mal das Debugging aktivieren, damit hoffentlich ein paar nützliche
Fehlermeldungen angezeigt werden?
Borsty Bürste schrieb:> - EDIT Funktion für mehrere Bauteile gleichzeitig (auch wäre es sinnvoll> mehrere Bauteile gleichzeitig in eine andere Kategorie/Unterkategorie> verschieben zu können) Aktuell mach ich das direkt in der Datenbank mit> SQL Phrasen, im Tool selbst ist das fast nicht möglich.
Jo das wäre sicherlich nützlich, gibt aber sehr viel Arbeit ;-)
Wird also sicher noch länger dauern bis so eine Funktion kommt...
Borsty Bürste schrieb:> - Für jedes Bauteil sollte eine Art "Zustand" auswählbar sein der frei> definiert werden kann (z.b. Neuware, ausgelötet, Pins verbogen, zum> basteln, ...). Ich stell mir das über ein DropDown Menü vor.
Sowas ist schon geplant:
https://code.google.com/p/part-db/issues/detail?id=30Borsty Bürste schrieb:> - Was ich persönlich etwas nervig finde ist die Tatsache dass man beim> anlegen eines neuen Bauteiles (oder beim bearbeiten) keinen weiteren> Browsertab öffnen kann. Sehr umständlich um mal eben den Preis zu> checken oder die technischen Daten.... Ich verwende dazu aktuell einen> zweiten Browser, nervt aber.
Also erstens könntest du in der Konfiguration die Popups auf "nicht
modal" einstellen, dann kannst du den Browser weiterhin für andere
Sachen benutzen (das Popup geht dann einfach in den Hintergrund).
Und zweitens werden die Popups irgendwann vermutlich durch eine
JavaScript Lösung abgelöst, so dass gar kein neues Browserfenster mehr
geöffnet wird.
Borsty Bürste schrieb:> - Export Funktion aller Bauteile für die Weiterverarbeitung in> (ex-)bom.ulp. (das werde ich aber vermutlich die kommenden Tage selbst> schreiben). Somit kann man dann die Eagle Projekte direkt mit Part-db> Verknüpfen. Einfache zu realisierendes Features was part-db richtig> "mächtig" macht.
Hmm ich habe noch nie mit dem bom.ulp gearbeitet, könntest du mal kurz
erklären wie das genau abläuft? Wozu brauchst du dazu die gesamte
Datenbank zu exportieren, und in welchem Format?
Das wäre eine Sache, die man sicherlich mit relativ wenig Aufwand noch
einbauen könnte. Wobei ich mich frage, wie lange so ein Export dauert
wenn man mehrere (zehn)tausend Bauteile in der DB hat...
Dass man den Output vom bom.ulp (wenn ich das richtig verstanden habe)
direkt in eine Baugruppe importieren kann, hast du gesehen oder?
Borsty Bürste schrieb:> - In der Listenansicht der Bauteile wäre es schön den Hersteller zu> sehen, eventuell als neue Spalte oder dafür z.b. die Spalte Dateianhänge> weglassen.
Füge mal die folgende Zeile in deine config.php ein und staune :-)
Borsty Bürste schrieb:> Wie werden die Bauteile eigentlich aus der Datenbank geholt? Ich wollte> mir die Sortierung der Teile selbst noch anpassen, hab aber in der> show_categorie_parts.php nur die dazugehörigen $REQUESTS gefunden,> jedoch nirgends einen Select aus der DB.
Das ist alles nicht so ganz einfach, da Part-DB jetzt objektorientiert
programmiert ist. Die Datenbankabfragen sind also hauptsächlich in den
lib/class.*.php Dateien. In der Klasse "PartsContainingDBElement" werden
für jede anzuzeigende Kategorie die darin enthaltenen Teile aus der
Datenbank geholt (Funktion "get_parts()"). Da kannst du die Sortierung
anpassen. Doch wenn die Beiteile mehrerer Kategorien geholt werden
müssen, holt wieder jede Kategorie ihre eigenen Teile, und nachher wird
per PHP alles noch sortiert (Funktion "usort_compare()"). An diesen
beiden Stellen müsstest du also die Sortierung anpassen.
Dass die Artikelbeschreibung auch zur Sortierung herangezogen wird, ist
übrigens im nächsten Release mit drin, falls du dies haben wolltest ;-)
mfg
@Urban B. mach ich zeitlich ist das immernoch etwas knap bei mir aber
spätestens am we solte ich das machen können.
Übrigens nebenbei ist zu vermelden das mittlerweile 5 große Firmen (>1k
Mitarbeiter) die Part-db nutzen, Respekt an die momentanen Entwickler
ich mach den Support für die grade nebenbei mit.
> Übrigens nebenbei ist zu vermelden das mittlerweile 5 große Firmen (>1k> Mitarbeiter) die Part-db nutzen, Respekt an die momentanen Entwickler> ich mach den Support für die grade nebenbei mit.
Um es mit FB zu sagen: Gefällt mir :-)
Wenn es mir zeitlich möglich ist, werde ich am Wochenende mal das
Problem des Uploads für ältere Browser angehen. Damit das auch endlich
mal aus meiner ToDo-Liste raus ist.
K. J. schrieb:> @Urban B. mach ich zeitlich ist das immernoch etwas knap bei mir aber> spätestens am we solte ich das machen können.
OK kein Problem, nur kein Stress :-)
Also es geht übrigens nur darum, dass du hier das Administratorpasswort
eintippst: http://www.partdb.grautier.com/svn/system_debug.php
Danach sollte man hoffentlich die Fehlermeldungen auf der Startseite
sehen.
Ich kann den Fehler bei mir (leider?) nicht nachvollziehen, hier
funktioniert es tadellos...
K. J. schrieb:> Übrigens nebenbei ist zu vermelden das mittlerweile 5 große Firmen (>1k> Mitarbeiter) die Part-db nutzen, Respekt an die momentanen Entwickler> ich mach den Support für die grade nebenbei mit.
Wow, das ist doch mal eine gute Nachricht! Vielleicht kommt dadurch ja
auch mal die ein oder andere Spende zustande ;-)
@K.J. ich habe soeben den Fehler auf der Startseite gefunden, auf dem
Webspace meines Hosters wird nämlich eine Fehlermeldung angezeigt weil
ich direkt beim Funktionsaufruf auf ein Array-Element zugegriffen habe,
also sowas wie funktion()[0]. Auf meinem Ubuntu Server frisst er das
allerdings, drum habe ich es hier nicht gemerkt... naja, brauchst jetzt
das Debugging nicht mehr zu aktivieren :-)
Hallo, bin gerade auf dieses Projekt gestossen, ich muss zugeben ich
habe nicht alle 550 Kommentare gelesen, nur mal nach grratis und Hoster
gesucht, aber nichts brauchbares gefunden. Darum meine Frage ob es bei
irgendeinen freehoster laeuft? Habe bei Tripido mal einen Account
angelegt, und die part-DB hochgeladen, dort laeuft PHP 5.3 zum laufen
habe ich es allerding nicht bekommen. Geht das bei irgendeinen free
hoster?
@Arne M.
Ob Part-DB auf einem gratis Webspace läuft, kann ich dir nicht sagen.
Aber beschreib doch, was denn bei deinem aktuellen Hoster für Probleme
auftreten (Fehlermeldungen?). (wer/was ist eigentlich "Tripido"?)
Ausserdem würde ich dir sowieso empfehlen, einen richtigen Hoster zu
benutzen. Früher habe ich meine ersten Gehversuche auch mit freehostern
gemacht, aber glaub mir, das ist es nicht wert. Die paar Kröten, die ein
Webspace mit Domain kosten, sind gut investiert. Eigene Domain, keine
Werbung, kein Spam an deine E-Mail Adresse, >99,9% Uptime, kompetenter
Support, und, und, und.
Gratis Hoster brauchen immer wieder starke Nerven und sind nicht selten
mal für ein paar Stunden offline (selbst schon mehrfach erlebt).
Manche Hoster bieten auch z.B. 30 Tage kostenloses Ausprobieren an, so
kannst du auch prüfen ob der Hoster deine Ansprüche erfüllt, ohne dass
du Geld dafür ausgibst.
mfg
EDIT: Und falls du Part-DB nur von zu Hause aus erreichen musst,
brauchst du sowieso nicht zwingend einen Hoster sondern kannst deinen
eigenen Webserver aufsetzen.
@Urban B
Danke fuer deine Antwort hatte einfach nach free hostern geschaut, die
die benoetigte PHP Version haben. Dieser hat PHP 5.3
Auf lange sicht, wenn das gut laufen sollte sollte das auf meinen
Raspberry Pi laufen. Der hat wie der Zufall es will php und mysql, aber
bis es soweit ist,(momentan fehlendes Internet zuhause) wollte ich das
mal antesten und schonmal Bauteile anlegen und dann einfach nur
umsteigen.
Vorgegangen bin ich nach der Installationsanweisung.
1 eine Datenbank erstellt
2 den part-db in den www ordner kopiert und testweise alle rechte fuer
jeden gesetzt
Beim Aufrufen der Seite MEINNAME.tipido.net/part-db kommt dann :
Internal Server Error
The server encountered an internal error or misconfiguration and was
unable to complete your request.
Andere Fehlermeldungen seh ich gerade nicht. Ansonsten kann man mit
phpMyAdmin verwalten, kann man dort noch etwas tun? Vor einen
kostenpflichtigen schreck ich immer zurueck grad weil der was kostet und
ich erstmal das fur lau hinzubekommen.
Gruss
Arne
Arne M. schrieb:> Beim Aufrufen der Seite MEINNAME.tipido.net/part-db kommt dann :> Internal Server Error
Lösche testweise mal die .htaccess Datei im Hauptverzeichnis (oder
alle). Könnte sein, dass der Server irgendwas an diesen Dateien nicht
mag.
Ausserdem hat eine kurze Recherche im Internet ergeben, dass dein
Anbieter wohl die ini_set() Funktion verboten hat. Diese wird allerdings
in der start_session.php einmal aufgerufen. Entferne diese Codezeile
einfach mal. Wobei, eigentlich sollte das kein Problem darstellen, weil
bei gesperrter ini_set() die Funktion einfach "false" zurückliefern
müsste...
Arne M. schrieb:> Vor einen kostenpflichtigen schreck ich immer zurueck grad weil der> was kostet und ich erstmal das fur lau hinzubekommen.
Jo klar kostet das was, aber für was ganz einfaches bezahlt man
schätzungsweise so um die 2 Euro im Monat, mit eigener Domain noch ~1
Euro mehr. Das kann man sogar als Schüler noch problemlos verkraften :-)
Naja, musst selber wissen, wollte nur sagen dass (meiner Meinung nach)
die paar Euros gut investiert sind... ;-)
Ich könnte dir natürlich auch free-speicher.de anbieten. Bei dem Projekt
gehöre ich zu den technischen Admins. Du musst dich allerdings beim
Betreiber melden, denn wir nehmen nicht jeden. Für Fragen steht auch ein
Forum zur Verfügung. Allerdings steht da nur PHP 5.2 zur Verfügung. Ein
Update ist derzeit nicht geplant.
Urban B.
Danke hae die .htaccess entfernt und schon lief es! Danke dir als
Sprache konnte man putzigerweise nur us englisch angeben, aber denonch
alles auf deutsch :) Scheint alles zu gehen, grad updates gemacht!
Udo Neist
Danke dir fuer das Angebot ist sehr nett, doch die Voraussetzung ist
doch PHP 5.3 :) Andererseits einen Server im Netz zu haben kann ja auch
nie verkehrt sein!
Arne M. schrieb:> Danke hae die .htaccess entfernt und schon lief es!
Wenn bei deinem Server aber das Directory Listing aktiviert ist,
solltest du es nicht so sein lassen, sonst kann jeder all deine Dateien,
die auf dem Server liegen, anschauen. Überprüfen kannst du das indem du
versuchst z.B. das Verzeichnis img im Browser aufzurufen. Wenn dort
der Zugriff verweigert wird (also eine Fehlerseite kommt) ist alles OK.
Dir ist aber schon bewusst dass jetzt jeder an deiner Datenbank
rumpfuschen kann, oder? Mit einer .htaccess lässt sich dies vermeiden,
such einfach im Internet mal nach ".htaccess Zugriffsschutz" o.ä.
(allerdings ist fraglich ob das dein Hoster überhaupt zulässt, da
anscheinend ja schon das deaktivieren des Directory Listing zu einer
Fehlermeldung führt...Ausprobieren hilft!)
> Danke dir als Sprache konnte man putzigerweise nur us englisch angeben
Das liegt daran, dass dein Server wohl keine deutschen Sprachdateien
installiert hat. Somit hast du jetzt die Preise in GBP statt in Euro. Ab
dem nächsten Release kann man dann eine neutrale Sprache auswählen (für
den Fall dass der Server die gewünschte Sprache nicht zur Verfügung
stellt), dann muss man die Währung von Hand in die config.php eintragen.
Urban B. schrieb:> z.B. das Verzeichnis img im Browser aufzurufen. Wenn dort> der Zugriff verweigert wird (also eine Fehlerseite kommt) ist alles OK.
Kam eine Fehlermeldung.
Das jeder drin rumpfuschen kann ist mir schon klar. Ein kleiner Schutz
ist ja dass man den Seitennamen kennen muss und dann auch noch den
Ordnernamen. Ob das allein schon einer findet? Aber ist ja eh dort
wahrscheinlich nur temporaer. Bei meinen eigenen sollte es schon so
sein, dass nur ich rankann! Was .htaccess macht find ich deswegen noch
raus.
Hab Dollar da stehen, aber zum nachbestellen brauch ich das glaube ich
(noch) nicht dazu bin ich zu hobbymaessig.
Auf alle Faelle ein aufwendiges Programm, bei dem man sieht das sehr
viel Arbeit drin steckt, verdient meinen Respekt. Hab keine Ahnung was
meine normalen bedrahteten Widerstaende fuer eine Bauform haben :)
Urban B. schrieb:> Somit hast du jetzt die Preise in GBP statt in Euro.Arne M. schrieb:> Hab Dollar da stehen,
Ups, ich dachte ich hätte "England" gelesen (da wo "Englisch" steht),
USA hat natürlich Dollar xD (mein Allgemeinwissen ist zwar bescheiden,
aber das weiss ich gerade noch so...)
Arne M. schrieb:> Ein kleiner Schutz ist ja dass man den Seitennamen kennen muss und> dann auch noch den Ordnernamen.
Joah wenns nicht für ewig ist, kann man das natürlich so machen... ;-)
Die robots.txt sollte auch verhindern dass die Seite mit Suchmaschinen
gefunden werden kann.
Arne M. schrieb:> Hab keine Ahnung was> meine normalen bedrahteten Widerstaende fuer eine Bauform haben :)
Die "normalgrossen" haben die Bauform "0207", die etwas kleineren
"0204".
Ich habe mich heute mal mit dem Problem des Uploads per IFrame
auseinander gesetzt. Es funktioniert schon, aber leider nur Datei für
Datei. Wählt man mehrere aus und will diese dann in einem Rutsch
übergeben, gibt Firefox ein Security Alarm auf der Javascript-Konsole
aus. Ich kann keine Duplikate für input type="file" erstellen :(. Bevor
Fragen zu jQuery oder ähnliche Frameworks kommen: der Filemanager kommt
komplett ohne externe JS-Lib aus und das soll auch so bleiben. Die
meisten dieser Frameworks sind einfach zu groß für ein kleines Projekt
mit wenig Javascript.
Ich werde die IFrame-Lösung in den Filemanager als Fallback einbauen,
falls der Browser kein FormData-Objekt kennt.
Ich habe den Popup-Modus des Filemanagers überarbeitet. Anstatt den
eingebauten Viewer zu starten, wird in diesem Modus nur die zuvor
ausgewählte und im Infobereich angezeigte Datei dem aufrufenden Fenster
übergeben.
http://phpbookworm.singollo.de/project/part-db/
Auf der Testseite ist die Navigation im Hauptverzeichnis abgeschaltet
und erlaubt es nur in bestimmten Unterverzeichnissen im Popup. Die
Angabe der erlaubten Verzeichnisse im Hauptscript wird der nächste
Schritt sein, dann kommt die Integration des Fallbacks (siehe oben).
Hallo Udo,
keine Ahnung, ob das so beabsichtigt ist: Ich kann kein Verzeichnis
auswaehlen... Siehe Anhang. Der Screenshot wurde mit Kubuntu und dem
alten Firefox 11 gemacht, ich seh das gleiche aber auch mit Windows und
dem aktuellen Firefox.
Mach ich irgendwas falsch?
Viele Gruesse
Christoph
Das Phänomen sehe ich auch. Irgendein Bug schaltet die
Verzeichnisanzeige ab. Da es gestern lief, tippe ich auf einen Fehler
bei der Initialisierung. Mach mich gleich dran, damit dieser Fehler
behoben ist.
Fehler beseitigt. Beim Start soll in der nächsten Version eine Liste von
Verzeichnissen geladen werden. Die zugehörige Ajax-Funktion war bereits
aktiv, aber konnte vom PHP-Script nicht beantwortet werden. Daher wurde
die im Template vorgebene Liste überschrieben. Ich lager das erstmal
aus, so dass diese Funktion nur per Klick auf einen Link aktiv wird.
Hi,
in der "Gleiche Seite"-Version sehe ich drei Verzeichnisse:
Hauptverzeichnis/Grafik/Import. In der Popup-Version sieht man diese
nicht.
Bei zwei der Verzeichnissen kommt "Ein Fehler ist aufgetreten:
[Funktion: file_explorer::xhrGet]" wenn man sie anklickt, und die
Dateiauswahl geht noch nicht (getestet mit Firefox11).
Viele Gruesse
Christoph
Ist auch kein Wunder. Ich hab derzeit ein Problem mit der
Tokengenerierung für die Absicherung der Aktionen. Ich geb Bescheid,
wenn das Problem beseitigt ist und der Filemanager wieder läuft.
Ich habe die Tokenproblematik gelöst. Durch das asynchrone Nachladen des
Tokens (ist eine Sessionvariable) muss ich die Anzeige des Filemanagers
um einige Millisekunden verzögern. In beiden Modi sollten jetzt zwei
Verzeichnisse angezeigt werden.
Edit: Upload kann wieder verwendet werden.
habs grade erfolgreich getestet und als File mal den Screenshot von oben
hochgeladen. Sieht echt gut aus.
Was allerdings etwas irritierend ist, ist das Upload Fenster: Man waehlt
eine Datei aus, aber der Dateiname erscheint nicht im Auswahlfeld
(stattdessen geht der Zaehler hoch). Es waere gut, wenn zusaetzlich zum
Zaehler noch eine Liste aller ausgewaehlten Filenames erscheinen wuerde.
Viele Gruesse
Das mit dem Uploader ist mir bekannt. Es ist noch ein Überbleibsel der
Tests mit den verschiedenen Browser und daher noch nicht komplett. Die
Liste kann ich wieder einbauen.
@Udo
Sieht schonmal gut aus soweit!
Funktioniert das ganze auch schon wenn die angezeigten Ordner auch noch
Unterordner haben? Wäre interessant, wenn du mal z.B. den Ordner
"img/footprints" von Part-DB zu deinem Filemanager hinzufügen würdest
:-)
@ Alle Tester von der 0.3.0 RC2
Na, wie siehts aus, kann man das finale Release der 0.3.0 rausgeben? :-)
Ich glaube, eine RC3 ist nicht unbedingt nötig. So viel hat sich seit
der RC2 nicht mehr getan...
(zumindest keine "kritischen" Sachen. Die meisten Bugfixes bezüglich
Windows Server sind bereits in die RC2 reingeflossen. Der aktuelle Stand
der Part-DB sollte nun wirklich auf den allermeisten Servern, die die
Anforderungen erfüllen, laufen, und das ist ja das wichtigste. Kleine
Bugs kanns natürlich immer haben.)
Urban B. schrieb:> @Udo> Sieht schonmal gut aus soweit!> Funktioniert das ganze auch schon wenn die angezeigten Ordner auch noch> Unterordner haben? Wäre interessant, wenn du mal z.B. den Ordner> "img/footprints" von Part-DB zu deinem Filemanager hinzufügen würdest> :-)
Unterordner werden angezeigt und sind nutzbar, bis auf die Auswahl im
Dialog. Um ins übergeordnete Verzeichnis zu kommen, muss man sich
derzeit noch über die Verzeichnisauswahl links bemühen und kann nicht
direkt zurück.
Vorläufige ToDo-Liste:
- Wechsel in das übergeordnete Verzeichnis in der Fileliste ermöglichen
- Unterordner in der Verzeichnisliste des Dialogs aufnehmen
- Fallback für den Upload integrieren
Kleine Anmerkung: Da die Verzeichnisse in der config.php des
Filemanagers definiert werden können, kann man zu jeder Aktion die
mögliche Auswahl der Verzeichnisse vorgeben. Vom aktuellen Design her
sind 5 Verzeichnisangaben sinnvoll, wobei die Klartextnamen nicht zu
lange sein sollten.
Udo Neist schrieb:> Vorläufige ToDo-Liste:> - Wechsel in das übergeordnete Verzeichnis in der Fileliste ermöglichen
Sollte jetzt einwandfrei funktionieren. Läuft im Hauptverzeichnismodus
(gedacht für Admins) genauso wie bei definierten Verzeichnissen
(Normalfall).
> - Unterordner in der Verzeichnisliste des Dialogs aufnehmen
Unterverzeichnisse werden angezeigt, allerdings fehlt noch die
Einschränkung für definierte Verzeichnisse. Aktuell wird das
Hauptverzeichnis an oberster Stelle und alle weiteren mit
vorrangestellten "../" aufgelistet. Manchmal kommt es vor, dass die
Verzeichnisliste nicht gleich zur Verfügung steht. Diese Liste wird
immer (!) neu geladen, wenn ein entsprechender Dialog aufpoppt.
Nachteilig nur bei großen Verzeichnistiefen und vielen Einträgen.
So, ich habe jetzt grad nochmal den aktuellen Stand der Part-DB auf
verschiedenen Systemen (Apache [Ubuntu], XAMPP [Win7], FF8 [Win7], FF22
[Ubuntu], IE10 [Win7], Chromium 28 [Ubuntu]) ausprobiert. Sah soweit
ganz gut aus, nur ein ganz kleiner Bugfix bezüglich dem IE habe ich noch
ins SVN hochgeladen (r686).
Von meiner Seite würde ich jetzt das OK für das Release der 0.3.0 geben.
Wenn niemand was dagegen hat, würde ich das dann vielleicht morgen oder
übermorgen hochladen.
Wenn also jetzt noch jemand die RC2 NICHT auf seinem System getestet
hat, auf dem er nachher die 0.3.0 laufen lassen möchte, wäre jetzt der
letzte Zeitpunkt um dies zu tun. Nachher kanns wieder dauern bis das
nächste Release kommt ;-)
mfg
Hallo!
Ich warte immer noch, dass mal irgendwo eine Instanz installiert wird,
die ich benutzen kann. Aber dazu müsste man mehrere Nutzer anlegen
können.
Natürlich kann ich auch selbst eine anlegen, aber für mich allein lohnt
sich das m.E. nicht.
http://code.google.com/p/part-db/issues/detail?id=8 steht seit einem
Jahr im "Status: Started". Wie sieht's denn damit aus?
VG Torsten
Hallo Torsten,
Torsten C. schrieb:> Ich warte immer noch, dass mal irgendwo eine Instanz installiert wird,> die ich benutzen kann. Aber dazu müsste man mehrere Nutzer anlegen> können.
Da muss ich dich leider enttäuschen, das wird noch sehr lange dauern bis
das wirklich fertig ist... Bis jetzt lag der Schwerpunkt halt auf der
Version 0.3.0, und da war eigentlich schon lange klar dass hier noch
keine Benutzerverwaltung reinkommt, somit hätte es keinen Sinn gemacht
jetzt schon voll an der Benutzerverwaltung zu arbeiten.
Torsten C. schrieb:> http://code.google.com/p/part-db/issues/detail?id=8 steht seit einem> Jahr im "Status: Started". Wie sieht's denn damit aus?
Als ich die Part-DB auf objektorientierte Programmierung umgeschrieben
habe, habe ich mir natürlich schonmal ein paar Gedanken über die
Benutzerverwaltung gemacht. Es gibt in Part-DB bereits jetzt die Klassen
"User" und "Group", welche fest im OOP Design verankert sind. Heisst
konkret, alle möglichen Klassen und Funktionen haben bereits eine
Referenz zum angemeldeten Benutzer zur Verfügung. Damit ist quasi der
Grundstein gelegt, jetzt müssen "nur noch" die Klassen "User" und
"Group" ausgestattet werden, und alle anderen Funktionen müssen Gebrauch
davon machen indem Sie die Rechte vom angemeldeten Benutzer abfragen und
berücksichtigen.
Der Aufwand für eine "normale" Benutzerverwaltung (Lese-/Schreibrechte)
ist ja noch einigermassen überschaubar (gibt schon sehr viel Arbeit,
vieles ist aber nicht wahnsinnig kompliziert sondern eher Fleissarbeit).
Die Benutzerverwaltung für eine öffentliche Part-DB Installation, in der
alle Benutzer zwar auf die selben Teile zugreifen, aber unterschiedliche
Lagerbestände, Lagerorte, Baugruppen usw. haben, macht die ganze
Geschichte aber extrem kompliziert. Das wird echt nicht einfach, und
wird daher auch viel Zeit benötigen...
Ausserdem sollte es mMn schlussendlich möglichst nicht zweiverschiedene Benutzerverwaltungen geben, sondern eine
Benutzerverwaltung, die halt beides kann. Heisst dann also, wenn man
einen neuen Benutzer anlegt, muss man halt wählen ob dieser Benutzer
z.B. seine eigenen Lagerorte haben sollte, oder ob es die "allgemeinen"
Lagerorte verwenden soll. Ersteres wäre für die "Online-Part-DB für
jedermann", Zweiteres wäre z.B. für eine Firma.
Ich muss Urban beipflichten, denn der Code der 0.2.x war für die
Integration einer Benutzerverwaltung einfach nicht nutzbar. Ursprünglich
war die Part-DB ja nur ein kleines Hilfsmittel für zu Hause und nicht
für größere Gruppen oder sogar Firmen gedacht. Diese Möglichkeiten kamen
dann mit der Übernahme der Entwicklung durch ein neues Team und der
0.2er Version. Hier war der Code allerdings weiterhin ein wirres
Durcheinander und nur für Insider irgendwie wart- und erweiterbar. Die
Diskussion hatten wir ja auch schon geführt, wie die Weiterentwicklung
laufen sollte. Ich bin ja mit dem Ziel der Integration der
Benutzerverwaltung dazu gekommen, habe aber schnell gemeckert, dass ich
mit dem Code so nichts anfangen kann. Ich habe testweise einige der
Templates in meinen eigenen Branch erstellt und Urban hat den Code auf
OOP umgestellt. Bei der Zusammenführung der beiden Zweige wurde dann als
Ziel die funktionsgleiche Umschreibung von Part-DB ausgegeben. Ein paar
Neuerungen kamen mittlerweile auch dazu, die allerdings nur
"geringfügige" Änderungen im Code waren. Eine Benutzerverwaltung wäre
für dieses Umschreiben ein zu großer Eingriff gewesen. Daher steht das
für die nächste Version an. Wie genau diese dann implementiert wird, das
werden wir hier sicher in der nächsten Zeit diskutieren. Zudem wird das
alte Frame-Konzept dann durch moderne Ajax-Technik abgelöst. Die
Vorarbeiten dazu habe ich mit dem neuen Filemanager bereits gestartet.
Urban B. schrieb:> Da muss ich dich leider enttäuschen, das wird noch sehr lange dauern bis> das wirklich fertig ist...
Hallo Udo, hallo Urban,
danke für die ausführliche und verständliche Antwort. Ich muss mir nun
überlegen, wie ich kurzfristig damit umgehe. Ich habe heute z.B. gerade
festgestellt, dass ich auf die Lieferung von drei ICs gar nicht warten
muss, weil ich fünf pinkompatible noch auf dem Dachboden habe. Ich hätte
die drei gar nicht bestellen müssen. :-(
VG Torsten
So, habe soeben die finale Version 0.3.0 hochgeladen:
https://code.google.com/p/part-db/downloads/detail?name=Part-DB_0.3.0.tar.gz
Viel Spass damit! ;-)
Übrigens kann ich die nächsten 4 Wochen nicht viel an der Part-DB
arbeiten, da wiedermal Semesterprüfungen sind... Hier im Forum bin ich
aber immer für Fragen erreichbar, das ist kein Problem.
mfg
Der Filemanager dürfte jetzt weitgehends fertig sein. Der Upload wird
jetzt bei allen Browsern ohne FormData-Support durch ein IFrame
bewerkstelligt. Zumindest lief der Test mit dem IE8 unter WinXP
erfolgreich. Bitte testet es aus. Bei Auftreten eines Fehlers bitte ein
Screenshot (Bildformate beachten!) anfügen, eine Kurzbeschreibung der
Aktion und Infos zum Browser angeben.
http://phpbookworm.singollo.de/project/part-db/
Grüße
Udo
Edit: Beim Upload kann die Funktion "Zum Zielverzeichnis wechseln"
zusätzliche Files anzeigen, die nicht den erlaubten Typen des
Elternverzeichnisses entsprechen. Im Moment ist die durchgängige
Weitergabe von Typen noch nicht gegeben.
Folgende Fehler konnte ich entdecken:
Opera + FF:
Nutzt man "Nach Upload ins Zielverzeichnis wechseln" so wird nach dem
Upload bei keinem Bild ein Vorschaubild geladen oder auch Dateiinfos
angezeigt(siehe Opera).
Wechselt man jedoch direkt mittels "Filemanager (gleiche Seite)" in das
Verzeichnis werden die entsprechenden Daten jedoch angezeigt(siehe
Opera2)
IE:
"Filemanager (gleiche Seite)" führt zu einer "undefined" Meldung im
rechten Anzeigebereich (siehe IE_seite)
"Filemanager (per Popup)" führt zu einem leeren PopUp (siehe IE_popup)
"Inhalt löschen" zeigt nur einen leeren rechten Anzeigebereich (siehe
IE_loeschen)
Testumgebung:
Windows Vista 32 Bit
Opera 12.15
Firefox 22.0
Internet Explorer 9
Ich hatte heute endlich mal Zeit, die neue Version der part-db zu
installieren, nachdem die Alte doch etwas in die Jahre gekommen ist.
Leider ist die Installation auf Debian einfach nur zusammengewürfelter
Mist. Nach nun 3 Stunden und unendlichen
rm -rf part-db
su root
tar xfv Part.tar.gz
ist es mir nicht gelungen, die Abfrage der Dateirechte zu überwinden.
Bei mir läuft ein Confixx, so dass der Benutzer nicht zwangsläufig
www-data ist. Die Gruppe auf www-data zu belassen und den Benutzer
-nicht rekursiv- auf web0 zu setzen hat zumindest die Pfade der
Dokumentation aus der roten Liste verschwinden lassen, aber die Parts
sind hartnäckig.
Ich habe im Laufe der Zeit sicher mehr als 100 verschiedene
Web-Applikationen zum Laufen gebracht, aber so ein widerspenstiges Zeug
ist mir noch nicht untergekommen ...
Schade - hatte mich sehr darauf gefreut !
Gerald *. schrieb:> Folgende Fehler konnte ich entdecken:>> Opera + FF:> Nutzt man "Nach Upload ins Zielverzeichnis wechseln" so wird nach dem> Upload bei keinem Bild ein Vorschaubild geladen oder auch Dateiinfos> angezeigt(siehe Opera).> Wechselt man jedoch direkt mittels "Filemanager (gleiche Seite)" in das> Verzeichnis werden die entsprechenden Daten jedoch angezeigt(siehe> Opera2)
Das schaue ich mir mal an. Das diese Funktion nicht ganz sauber
funktioniert, hatte ich ja schon angedeutet. Vielleicht spinnt hier die
Tokenabsicherung.
> IE:> "Filemanager (gleiche Seite)" führt zu einer "undefined" Meldung im> rechten Anzeigebereich (siehe IE_seite)> "Filemanager (per Popup)" führt zu einem leeren PopUp (siehe IE_popup)> "Inhalt löschen" zeigt nur einen leeren rechten Anzeigebereich (siehe> IE_loeschen)>> Testumgebung:> Windows Vista 32 Bit> Opera 12.15> Firefox 22.0> Internet Explorer 9
Ich werde dann doch mal Win7 in Virtualbox installieren müssen. Ich
hatte mit IE8 getestet und es lief. Ist wohl wieder mal eine
JS-Inkompatibilität zu Javascript.
> Opera + FF:> Nutzt man "Nach Upload ins Zielverzeichnis wechseln" so wird nach dem> Upload bei keinem Bild ein Vorschaubild geladen oder auch Dateiinfos> angezeigt(siehe Opera).> Wechselt man jedoch direkt mittels "Filemanager (gleiche Seite)" in das> Verzeichnis werden die entsprechenden Daten jedoch angezeigt(siehe> Opera2)
Den Fehler konnte ich beheben. Es war ein Folgefehler der Umstellung der
Verzeichnisdarstellung in der Liste. Das übergebene Verzeichnis wurde
falsch zusammengebaut und daher versuchte das Script eine nicht
vorhandene Datei darzustellen. In diesem Zuge habe ich den dafür
ursprünglich angedachten 404-Fehler durch eine andere Meldung ersetzt.
Stefan --- schrieb:> Leider ist die Installation auf Debian einfach nur zusammengewürfelter> Mist. Nach nun 3 Stunden und unendlichen> rm -rf part-db> su root> tar xfv Part.tar.gz> ist es mir nicht gelungen, die Abfrage der Dateirechte zu überwinden.
Na na, also ich hab extra mal ein Debian in einer VM installiert und die
Installation streng nach der Doku durchgeführt. Bei mir klappte das
alles ohne Probleme ;-) Auch auf meinem gemieteten Webserver, auf dem
anscheinend Confixx läuft (was ich nicht kenne) läuft die Part-DB
einwandfrei (Dateien per FTP hochgeladen).
Mit "Abfrage der Dateirechte" meinst du die Meldung von Part-DB, oder?
1
Das Verzeichnis bzw. die Datei "xyz" hat nicht die richtigen Dateirechte! Benötigt werden "rw". Bitte manuell korrigieren.
Stefan --- schrieb:> Bei mir läuft ein Confixx, so dass der Benutzer nicht zwangsläufig> www-data ist. Die Gruppe auf www-data zu belassen und den Benutzer> -nicht rekursiv- auf web0 zu setzen hat zumindest die Pfade der> Dokumentation aus der roten Liste verschwinden lassen, aber die Parts> sind hartnäckig.
Es müsste eigentlich ganz einfach sein. Alle Dateien müssen demjenigen
Benutzer gehören, unter dem der Webserver läuft. Bei dir anscheinend
"web0" wenn ich dich richtig verstehe. Da muss nichts auf "www-data"
belassen werden, das ist im Archiv einfach so voreingestellt weil das
bei vielen Linux Distributionen halt der Benutzer ist, unter dem der
Webserver läuft.
Wenn du das Archiv mit dem Befehl aus der Doku extrahiert hast, müssten
jetzt auch schon die Dateirechte stimmen, da die im Archiv bereits
richtig gesetzt waren. Somit müsste Part-DB jetzt problemlos laufen.
Falls du die Dateirechte selber setzt (aus irgend einem Grund...) musst
du natürlich darauf achten, dass die immer rekursiv gesetzt werden. In
den Verzeichnissen "data" müssen alle Dateien auf 644, und alle
Verzeichnisse auf 755 gesetzt sein.
Du hast die Doku schon gelesen, oder?
http://www.partdb.grautier.com/svn/documentation/dokuwiki/doku.php
Da gibts sogar extra alle Befehle die man braucht, um die
Dateirechte/Besitzer manuell einzustellen. In deinem Fall müsstest du
nur noch das "www-data" durch "web0" ersetzen.
entpackt wird, ist das Ändern der Dateirechte überflüssig (es sei denn,
du entpackt die Dateien irgendwo hin, wo keine UNIX Dateirechte
unterstützt werden - das wäre auf einem Linux/UNIX aber sowieso nicht
sehr geschickt).
Stefan --- schrieb:> Ich habe im Laufe der Zeit sicher mehr als 100 verschiedene> Web-Applikationen zum Laufen gebracht, aber so ein widerspenstiges Zeug> ist mir noch nicht untergekommen ...
Das liegt vielleicht auch daran, dass viele Web-Applikationen sich nicht
für Dateirechte interessieren. Erst wenn dann wirklich mal das
Schreibrecht gebraucht wird, aber nicht vorhanden ist, wird eine Meldung
ausgegeben. Part-DB prüft halt bei jedem Aufruf schon ganz am Anfang, ob
die benötigten Rechte vorhanden sind. Ist aber ja kein Problem, wenn die
Rechte einmal eingestellt sind kommt diese Meldung nie wieder.
Ausserdem sind bei anderen Applikationen häufig die Dateirechte im
Archiv noch gar nicht richtig gesetzt - keine Ahnung warum, Ich dachte,
so ists doch einfacher und sicherer, wenn nach dem Entpacken schon alles
(Besitzer und Rechte) stimmt. So kann ein Laie nicht viel falsch
machen... Die Doku lesen ist bei Webapplikationen sowieso (mMn) immer
Pflicht (zumindest überfliegen), da jede Applikation wieder ganz anders
installiert werden möchte. Bei einigen steht in der Doku sogar, dass man
die Dateirechte noch auf XY einstellen muss, überprüft wird es nachher
aber nicht (OK mittlerweile ist das nicht mehr so schlimm wie früher).
So ist doch schon vorprogrammiert dass viele Leute die Dateirechte nicht
entsprechend setzen. Ist alles im Archiv schon richtig gesetzt, kann das
nicht passieren.
Ansonsten wüsste ich nicht, was an Part-DB widerspenstig sein
sollte...Ich habe die Installation von Part-DB jetzt schon über ein
Dutzend Mal und auf verschiedenen Servern installiert, und hatte nie
Probleme ;-)
Wenn du es immernoch nicht hinkriegst, erkläre Schritt für Schritt was
du machst (Terminal Befehle!), und was für Fehler auftreten
(Fehlermeldungen!). Bisher konnte ich nur raten, was dein Problem ist,
da die Informationen in deinem Beitrag leider etwas spärlich sind...
mfg
Vielen Dank für die Ausführlichen Infos und Kommentare.
Ich mache also Folgendes:
- Lade die letzte Version
https://code.google.com/p/part-db/downloads/detail?name=Part-DB_0.3.0.tar.gz
- benenne das Archiv um in part.tar.gz um und schiebe es via FTP in das
Verzeichnis www/web0/html/
- mit putty melde ich mich als web0 an, gehe in das html/ Verzeichnis
und entpacke das Archiv mit tar xfv part.tar.gz
- dann lösche ich die part-db/.htaccess, da ich sonst einen Servererror
500 bekomme. Erstelle den Verzeichnisschutz später selbst
- beim Aufruf von domain.de/part-db/ wird dann gequengelt, dass data/...
und dokumentation/... nicht die richtigen Rechte haben.
Alle Dateien haben als Besitzer www-data erhalten.
Ändere ich nun für 'Dokumentation' rekursiv den Besitzer auf web0, dann
verschwindet zumindest dieser Zweig aus der Liste.
Mache ich das Gleiche auch für 'data' verschwindet auch hier alles, bis
auf data selbst.
Nun lösche ich das ganze Verzeichnis und entpacke das Archiv noch einmal
als root. Wieder werden die gleichen Verzeichnisse angemahnt. Wieder das
gleiche Verhalten.
Der Aufruf der Dokumentation dauert eine ganze Weile und wirft dann
massenhaft Fehlermeldungen:
Creating directory
/var/www/web0/html/part-db/documentation/dokuwiki/data/cache/9 failed
Writing
/var/www/web0/html/part-db/documentation/dokuwiki/data/cache/9/9a18521c4
60d062d1e019fd5077a490b.i failed
Unable to save cache file. Hint: disk full; file permissions; safe_mode
setting.
Writing
/var/www/web0/html/part-db/documentation/dokuwiki/data/cache/9/9a18521c4
60d062d1e019fd5077a490b.metadata failed
Creating directory
/var/www/web0/html/part-db/documentation/dokuwiki/data/cache/c failed
installation
Creating directory
/var/www/web0/html/part-db/documentation/dokuwiki/data/cache/9 failed
Creating directory
/var/www/web0/html/part-db/documentation/dokuwiki/data/cache/9 failed
Creating directory
/var/www/web0/html/part-db/documentation/dokuwiki/data/cache/9 failed
Writing
/var/www/web0/html/part-db/documentation/dokuwiki/data/cache/9/9a18521c4
60d062d1e019fd5077a490b.i failed
Unable to save cache file. Hint: disk full; file permissions; safe_mode
setting.
Creating directory
/var/www/web0/html/part-db/documentation/dokuwiki/data/cache/c failed
Creating directory
/var/www/web0/html/part-db/documentation/dokuwiki/data/cache/c failed
Writing
/var/www/web0/html/part-db/documentation/dokuwiki/data/cache/c/c12087918
8ac7f402d954ad156659fe7.code failed
Creating directory
/var/www/web0/html/part-db/documentation/dokuwiki/data/cache/6 failed
Creating directory
/var/www/web0/html/part-db/documentation/dokuwiki/data/cache/6 failed
Writing
/var/www/web0/html/part-db/documentation/dokuwiki/data/cache/6/6099c0c3e
fb701c24e30c06a09512dd0.code failed
Creating directory
/var/www/web0/html/part-db/documentation/dokuwiki/data/cache/7 failed
Creating directory
/var/www/web0/html/part-db/documentation/dokuwiki/data/cache/7 failed
Writing
/var/www/web0/html/part-db/documentation/dokuwiki/data/cache/7/7d38b86b4
5418b4ce60728dcba6ed6ef.code failed
Creating directory
/var/www/web0/html/part-db/documentation/dokuwiki/data/cache/9 failed
Writing
/var/www/web0/html/part-db/documentation/dokuwiki/data/cache/9/9a18521c4
60d062d1e019fd5077a490b.xhtml failed
Setze ich den Besitzer nun als web0 für alle Dateien und Verzeichnisse,
sind data... und dokumentation... wieder rot !
Ich denke nicht, dass man eine solchen Installation Daten anvertrauen,
bzw. erst langwierig Daten einpflegen sollte. Was, wenn ein Update
erforderlich ist oder was läuft hier noch alles unrund, was evtl.
Anfangs nicht bemerkt wird !?
Okay also irgendwas geht da nicht auf. Hast du auch wirklich mal die
Terminal Befehle für das Setzen der Besiter/Gruppen/Rechte genau so
ausgeführt wie in der Doku beschrieben (einfach "www-data" vorher durch
"web0" ersetzt)?
Etwas verstehe ich aber nicht:
Bei deinem zweiten Versuch hat also Part-DB nicht mehr wegen
"/documentation/dokuwiki/data/cache/" gemeckert? Heisst dann also, dass
die Funktion is_writable() bei diesem Verzeichnis "true" lieferte.
Trotzdem meckerte nachher das DokuWiki, dass dort keine Schreibrechte
vorhanden sind?!
Vielleicht hilft folgender kleiner Test weiter:
Du erstellst eine Datei "test.php" auf dem Server, mit folgendem Inhalt:
Dann Besitzer/Gruppe auf "web0" und die Dateirechte auf "644" stellen:
1
chown web0:web0 test.php
2
chmod 644 test.php
Nun die Seite im Browser aufrufen und die Ausgabe hier posten.
Vielleicht sieht man da ja was auffälliges.
Ausserdem könntest du noch folgendes ausprobieren:
Zuerst ALLE Dateien/Verzeichnisse dem Besitzer und Gruppe "web0"
zuordnen und alle Rechte gemäss Doku korrekt setzen! Dann in der
start_session.php mal die Zeile
1
$messages = check_file_permissions();
durch diese hier ersetzen:
1
$messages = array();
Damit wird einfach die Überprüfung der Rechte abgeschaltet. Und dann
schau mal, ob du die Installation fortsetzen kannst (der Installer
reklamiert dann einfach wenn er zu wenig Schreibrechte hat um die
data/config.php zu erstellen).
Stefan --- schrieb:> Ich denke nicht, dass man eine solchen Installation Daten anvertrauen,> bzw. erst langwierig Daten einpflegen sollte. Was, wenn ein Update> erforderlich ist oder was läuft hier noch alles unrund, was evtl.> Anfangs nicht bemerkt wird !?
Es ist alleine dir überlassen, ob du Part-DB verwenden willst oder nicht
;-) Ausserdem ist keine Software auf dieser Welt fehlerfrei, deshalb
sollte man auch bei der besten Software regelmässig die Daten sichern.
Ich habe mir beim programmieren wirklich Mühe gegeben und habe sehr
viele Stunden investiert, um alle möglichen Konstellationen einmal
durchzutesten. Auf der von mir eingesetzten Infrastruktur konnte ich in
der Part-DB keine Fehler mehr finden, mehr kann ich auch nicht machen.
Ausserdem wurde die 0.3.0 RC2 laut Google Code insgesamt 57 Mal
runtergeladen, und keiner hat sich hier über solche
Installationsprobleme beschwert...
Scheint also bei den meisten Anwendern zu funktionieren ;-)
Nachtrag:
Da wir Entwickler nur eine beschränkte Infrastruktur zum Testen zur
Verfügung haben (wir können nicht alle auf der Welt erhältlichen
Webserver testen!), sind wir auch auf die Mithilfe von freiwilligen
Testern angewiesen. Deshalb gibt es ja auch die Release Kandidaten. Dank
den Rückmeldungen der Tester konnten wir seit der RC1 noch viele Fehler
beseitigen. Vielleicht gibt es in Part-DB tatsächlich ein Fehler, der
sich nur bei Installationen in Confixx (das ich nicht kenne) bemerkbar
macht. Wenn wir einen solchen Fehler finden können, fliesst der
natürlich direkt in das nächste Update von Part-DB, damit das Problem in
Zukunft nicht mehr auftritt.
Moment mal - Ich habe gerade deinen Beitrag nochmal gelesen und bin
jetzt noch verwirrter als vorher.
Urban B. schrieb:> Bei deinem zweiten Versuch hat also Part-DB nicht mehr wegen> "/documentation/dokuwiki/data/cache/" gemeckert?
Das hast du so ja gar nicht geschrieben, allerdings kam ich wohl wegen
diesem Satz auf diese Annahme:
Stefan --- schrieb:> Setze ich den Besitzer nun als web0 für alle Dateien und Verzeichnisse,> sind data... und dokumentation... wieder rot !
Das "wieder" würde ja bedeuten, dass diese Verzeichnisse vorher nicht
"rot" waren. Doch eigentlich hast du genau das Gegenteil geschrieben:
Stefan --- schrieb:> Nun lösche ich das ganze Verzeichnis und entpacke das Archiv noch einmal> als root. Wieder werden die gleichen Verzeichnisse angemahnt.
Wenn ich nicht schon wieder was falsch verstanden habe, sind das
widersprüchliche Aussagen deinerseits. Erst sagst du, der Rechte-Check
meckert, dann sagst du, wenn du den Besitzer der Dateien auf "web0"
änderst, fängt der Rechte-Check wieder an zu meckern (obwohl er nie
aufgehört hat damit). So ist die Fehlersuche nicht leicht für mich...
;-)
ist blöd und verwirrend - ich bin aus dem Verhalten auch nicht schlau
geworden. Ich ändere data/ rekursiv auf web0 und alle data/subs
verschwinden aus der Liste. Ändere ich dokumentation/ rekursiv auf web0
und dokumentation verschwindet komplett. Setze ich das komplette
Verzeichnis part-db auf web0, sind wieder alle, also data und
dokumentation rot.
Hier die Ausgabe nachdem ich die test.php über FTP geschoben habe:
Prozess-Benutzer: 133 (www-data)
Besitzer: 647 (web0)
Leserechte : true
Schreibrechte: false
Dateirechte: 0644
Du magst nicht mal auf den Server schauen ?
Stefan --- schrieb:> Hier die Ausgabe nachdem ich die test.php über FTP geschoben habe:> Prozess-Benutzer: 133 (www-data)
Das ist interessant. Dein Webserver läuft also NICHT unter dem Benutzer
"web0", sondern unter "www-data"! Daher kommt dann das hier:
Stefan --- schrieb:> Schreibrechte: false
Jetzt könntest du natürlich mal versuchen, den Besitzer der test.php
nach "www-data" zu ändern:
1
sudo chown www-data:www-data test.php
Danach sollte der Webserver theoretisch Schreibrechte an dieser Datei
haben. Genau so sollte es sich eigentlich auch bei Part-DB verhalten.
Stefan --- schrieb:> Du magst nicht mal auf den Server schauen ?
Doch kann ich machen, schick mir einfach mal eine PN dann können wir per
Mail weiter kommunizieren, statt hier den Thread zu "belästigen".
Leider kenne ich die Infrastruktur von Hostern nicht wirklich, ich weiss
nicht wie die sich das vorstellen wie das funktionieren soll. Wenn der
Webserver unter dem gleichen Benutzer läuft wie der FTP-Upload (so ist
es bei meinem Hoster), ist alles klar, dann genügen die Dateirechte 644
damit ein PHP Skript eine andere Datei beschreiben kann. Läuft jedoch
beides auf unterschiedlichen Benutzern, genügen 644 ja nicht mehr, dann
brauchts je nachdem entweder 664 oder sogar 666, damit der Webserver
Schreibrechte erhält. Anscheinend soll es ja Hoster geben, bei denen das
so ist (?). Allerdings müsste man dann ja alle "data" Verzeichnisse
(egal ob von Part-DB, irgendeinem CMS oder sonstwas) auf 777 stellen
damit die Applikation richtig läuft, doch sicherheitstechnisch ist das
doch alles andere als ideal...Naja, vielleicht taucht hier ja mal jemand
auf der sich damit auskennt und uns aufklären kann :-)
Manchmal reicht es auch, anstelle des Users www-data die entsprechende
Gruppe und dementsprechende Rechte zu vergeben. Da ich selbst kein
Debian verwende - ich nutze openSUSE - kann ich leider nicht sagen, wie
die Gruppe heißt. Steht das nicht irgendwo in der Hilfe für den
Webspace? Aber eigentlich müsste das auch im FTP angezeigt werden.
PS: Der Upload im Filemanager läuft auch im IE10. Der hatte sich noch
über overrideMimeType beschwert.
OK also wir konnten die Ursache finden. Und zwar war das Problem, dass
die PHP Funktion is_executable() anscheinend bei Verzeichnissen immer
"false" lieferte, auch wenn das executable bit gesetzt war.
In der offiziellen Doku wird davon leider nichts erwähnt. Leider habe
ich aber nicht gesehen, dass dort ein User einen interessanten Kommentar
geschrieben hat:
> The change doesn't appear to be documented, so I thought I would mention> it. In php5, as opposed to php4, you can no longer rely on is_executable> to check the executable bit on a directory in 'nix. You can still use> the first note's method to check if a directory is traversable:> @file_exists("adirectory/.");
sieht zwar irgendwie mehr nach einem Workaround aus, aber wenns
funktioniert^^
Ich frage mich allerdings, ob es sich lohnt dafür eine neue Version
0.3.1 rauszugeben. Bisher hat sich ja noch niemand über dieses Problem
beschwert, bei den meisten PHP Installationen scheint is_executable()
also nach wie vor auch mit Verzeichnissen zu funktionieren...
Ich würde jetzt keine neue Version herausbringen, sondern eine passende
Lösung z.B. mit is_dir() oder is_file() in den 0.3er Zweig einbauen und
als neue Revision freigeben. Es ist bleibt wohl ein Sonderfall und ist
meiner Meinung nach nicht wichtig genug für ein Bugfix. Am besten
sammeln wir bis Ende August alle Meldungen und entscheiden dann, ob eine
neue Revision notwendig wird. Dann könnten wir die weitere Entwicklung
starten und die aktuelle Version als 0.3er Branch weiter führen. Das
käme mir auch zu Gute, denn ich hab diesen Monat eine andere Webseite
umzustellen und könnte da zumindest den Ajax- und DOM-Teil des
Javascript-Framework des Filemanagers ausgiebig testen :)
Edit: is_writable() zum Prüfen, ob das Verzeichnis beschreibbar ist, ist
auch sinnvoll ;) Allerdings scheinen die Datei-/Verzeichnisoperationen
teilweise völlig unterschiedliche Ergebnisse unter *nix und Windows zu
bringen, obwohl das nicht wirklich sinnig ist.
http://stackoverflow.com/questions/109188/how-do-i-check-if-a-directory-is-writeable-in-php
Udo Neist schrieb:> Ich würde jetzt keine neue Version herausbringen, sondern eine passende> Lösung z.B. mit is_dir() oder is_file() in den 0.3er Zweig einbauen und> als neue Revision freigeben. Es ist bleibt wohl ein Sonderfall und ist> meiner Meinung nach nicht wichtig genug für ein Bugfix.
Jo, sehe ich momentan auch so. Falls sich noch mehr Leute mit dem selben
Problem melden, können wir immernoch ein offizielles Update rausgeben.
Udo Neist schrieb:> Edit: is_writable() zum Prüfen, ob das Verzeichnis beschreibbar ist, ist> auch sinnvoll ;)
Schreibrechte alleine genügen aber nicht, um Dateien in einem
Verzeichnis zu erstellen/bearbeiten. Dazu ist immer auch das "executable
bit" nötig, also die Ausführrechte (die bei Verzeichnissen eine andere
Funktion haben als bei Dateien). Es macht also schon Sinn, die
Ausführrechte zu prüfen. Was hingegen keinen Sinn macht, ist das
kastrieren der is_executable() Funktion, so dass diese nur noch mit
Dateien funktioniert... ;-) Was die sich dabei wohl überlegt haben?!
Übrigens bezüglich Branches hätte ich das folgendermassen gedacht:
- Die finale 0.3.0 liegt als Kopie in tags/ und bleibt dort unangetastet
- Die weitere Entwicklung an der 0.3.0 findet wie gewohnt im trunk statt
- Es kommen grundsätzlich erstmal KEINE grossen Neuerungen (z.B.
Benutzerverwaltung, Barcode-Tools, Filemanager) in den trunk. Jedes
dieser Features soll seinen eigenen Branch kriegen, der vom trunk
abgeleitet wird. Erst wenn ein solches Feature bereit zum testen ist
(funktionierend, kann aber ruhig noch Fehler enthalten) wird es in den
trunk übernommen. Sobald im trunk dann die neuen Features als stabil
betrachtet werden können, kann ein neues Release herausgegeben werden.
- Ich werde gleich noch einen Branch für den Zweig "0.3.x" erstellen.
Wenn es später mal Updates für die 0.3.0 geben soll (nur Bugfixes!),
sollen die Bugfixes erst in den trunk aufgenommen, und vom trunk dann in
den "0.3.x" Branch übernommen werden. So ist immer ein Branch bereit, um
ein Update für die 0.3er Versionen zu erstellen (der trunk ist dafür ja
nicht brauchbar, da dieser nicht immer stabil ist).
mfg