Forum: Projekte & Code Lagerverwaltung Part-DB V0.2.2


von Gelöscht (kami89)


Lesenswert?

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

von Udo N. (weinbauer73)


Lesenswert?

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.

von Peter M. (pc-baerli)


Lesenswert?

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:
>
1
> print 'LC_ALL      = '.var_export(setlocale(LC_ALL,
2
> 'de_CH.utf8', 'de_CH'), true).'<br>';
3
> print 'LC_COLLATE  = '.var_export(setlocale(LC_COLLATE,
4
> 'de_CH.utf8', 'de_CH'), true).'<br>';
5
> print 'LC_CTYPE    = '.var_export(setlocale(LC_CTYPE,
6
> 'de_CH.utf8', 'de_CH'), true).'<br>';
7
> print 'LC_MONETARY = '.var_export(setlocale(LC_MONETARY,
8
> 'de_CH.utf8', 'de_CH'), true).'<br>';
9
> print 'LC_NUMERIC  = '.var_export(setlocale(LC_NUMERIC,
10
> 'de_CH.utf8', 'de_CH'), true).'<br>';
11
> print 'LC_TIME     = '.var_export(setlocale(LC_TIME,
12
> 'de_CH.utf8', 'de_CH'), true).'<br>';
13
> print 'LC_MESSAGES = '.var_export(setlocale(LC_MESSAGES,
14
> 'de_CH.utf8', 'de_CH'), true).'<br>';
15
> die();
16
>
>
> 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

von Gelöscht (kami89)


Lesenswert?

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 SVN NICHT 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?

von Gelöscht (kami89)


Lesenswert?

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 :-)

von Udo N. (weinbauer73)


Lesenswert?

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 :-)

von Gelöscht (kami89)


Lesenswert?

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? :-)

von Udo N. (weinbauer73)


Lesenswert?

Ich würde es so machen, damit hätten wir ein Problem weniger. Eine 
elegantere Methode können wir ja immer noch in spätere Releases einbauen 
:-)

von Gelöscht (kami89)


Lesenswert?

Okay, habe die Änderungen mal hochgeladen (r643).
Falls es Probleme gibt, bitte melden :-)

von Peter M. (pc-baerli)


Lesenswert?

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 ?

von Christian (Gast)


Lesenswert?

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?

von K. J. (Gast)


Lesenswert?

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.

von Thorsten O. (Firma: mechapro GmbH) (ostermann) Benutzerseite


Lesenswert?

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

von Gelöscht (kami89)


Lesenswert?

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
1
$config['languages']['de_CH.utf8']                      = 'de_CH (UTF-8)';
durch diese hier ersetzen:
1
$config['languages']['de_CH.UTF-8']                      = 'de_CH (UTF-8)';
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.php

K. 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

von Christian (Gast)


Lesenswert?

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?

von Gelöscht (kami89)


Lesenswert?

Ups, nicht richtig gelesen, sorry ;-)
Das mit dem String "id" hatte ich in der RC1 noch vergessen, ist 
mittlerweile aber schon eingebaut in dieser Datei: 
https://code.google.com/p/part-db/source/browse/trunk/lib/class.Part.php

Ist dann also ab der 0.3.0 RC2 mit drin.

von Peter M. (pc-baerli)


Lesenswert?

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

von Gelöscht (kami89)


Lesenswert?

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.

von Peter M. (pc-baerli)


Lesenswert?

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

von Peter M. (pc-baerli)


Lesenswert?

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

von Gelöscht (kami89)


Lesenswert?

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:
1
$manual_config['page_title'] = 'Irgendwas';

von Dirk B. (garag)


Lesenswert?

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 ?

von Udo N. (weinbauer73)


Lesenswert?

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.

von Gelöscht (kami89)


Lesenswert?

Okay dann baue ich noch eine Konstante in start_session.php ein:
1
define('SERVER_OS_IS_WINDOWS', (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN'));

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...

von Udo N. (weinbauer73)


Lesenswert?

Nimm doch einfach DIRECTORY_SEPARATOR. Ist zwar eigentlich nicht 
wirklich sinnvoll nutzbar, da PHP mit dem "/" auch unter Windows zurecht 
kommt, aber bei einigen Funktionen muss das wohl genutzt werden.

http://stackoverflow.com/questions/6654157/how-to-get-a-platform-independent-directory-separator-in-php

von Dirk B. (garag)


Lesenswert?

Udo Neist schrieb:
> Welche Version hast du installiert?

Die letzte von gestern Abend aus SVN. Sollte also die r645 sein.

von Udo N. (weinbauer73)


Lesenswert?

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.

von Gelöscht (kami89)


Lesenswert?

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.

von Udo N. (weinbauer73)


Lesenswert?

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.

von Gelöscht (kami89)


Lesenswert?

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.

von Gelöscht (kami89)


Lesenswert?

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 ;-)

von Christian (Gast)


Lesenswert?

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.
1
$javascript[] = $tree_name.'.add('. strval($element->get_id()+1) .','.
2
                                strval($element->get_parent_id()+1) .",'". str_replace('\'', '\\\'', $element->get_name() ) . "','".
3
                                $page .'?'. $parameter .'='. $element->get_id() . "','','". $target ."');";

Wieso Funktioniert es auf der Testdatenbank ohne str_replace?
1
$element->get_name()
ersetzt mit
1
str_replace('\'', '\\\'', $element->get_name() )

Danke für eine kleine Rückmeldung.

von Christian (Gast)


Lesenswert?

Hab in den Kategorien eine Kategorie MOSFET's gennant. Dieses Zeichen ' 
darf nicht geschrieben werden. Dann läufts wenn der Name MOSFET 
gebraucht wird.

von Gelöscht (kami89)


Lesenswert?

@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

von Juergen F (Gast)


Lesenswert?

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

von Gelöscht (kami89)


Lesenswert?

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...

von Juergen F (Gast)


Lesenswert?

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

von Gelöscht (kami89)


Lesenswert?

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

von Gerald *. (pyromane)


Lesenswert?

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

von Udo N. (weinbauer73)


Lesenswert?

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.

von Gelöscht (kami89)


Lesenswert?

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.

von Peter M. (pc-baerli)


Lesenswert?

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

von Gelöscht (kami89)


Lesenswert?

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

von Christian R. (holle)


Lesenswert?

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.

von Gelöscht (kami89)


Lesenswert?

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 :-)

von Christian R. (holle)


Lesenswert?

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.

von Gelöscht (kami89)


Lesenswert?

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.

von Peter K. (peterka2000)


Lesenswert?

Ich habe gerade PartDB installiert, jetzt zeigt der mir an
"Datenbank-Update notwendig!"
Was will der von mir bzw. was muss ich machen?

von Christian R. (holle)


Lesenswert?

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?

von Gelöscht (kami89)


Lesenswert?

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

von Peter K. (peterka2000)


Lesenswert?

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

von Gelöscht (kami89)


Lesenswert?

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

von Peter K. (Gast)


Lesenswert?

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

von Christian R. (holle)


Lesenswert?

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 ;-)

von Gelöscht (kami89)


Lesenswert?

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

von Peter K. (peterka2000)


Lesenswert?

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

von Christoph (Gast)


Lesenswert?

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.

von Christian R. (holle)


Lesenswert?

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.

von Christoph (Gast)


Lesenswert?

@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.

von Gelöscht (kami89)


Lesenswert?

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.

von Christoph (Gast)


Lesenswert?

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

von Peter K. (peterka2000)


Lesenswert?

Ich habs jetzt bei Kilu installiert. Es zeigt mir aber nichts an, auch 
nicht bei Verwaltung/Tools
http://peter-partdb.kilu.de/partdb/

von Gelöscht (kami89)


Lesenswert?

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

von Udo N. (weinbauer73)


Lesenswert?

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

von Christian R. (holle)


Lesenswert?

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

von Peter K. (Gast)


Lesenswert?

das Javascript Verzeichnis ist jetzt auf 777

von Peter M. (pc-baerli)


Lesenswert?

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

von Christoph (Gast)


Lesenswert?

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.

von Peter K. (peterka2000)


Lesenswert?

Auf was soll ich dann Stellen? Kann man den Zeichensatz Nachher noch 
ändern

von Christoph (Gast)


Lesenswert?

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.

von Christian R. (holle)


Lesenswert?

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).

von Christian R. (holle)


Lesenswert?

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)?

von Gelöscht (kami89)


Lesenswert?

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äm

Peter 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:
1
$manual_config['table']['category_parts']['columns'] = 'hover_picture;name;description;instock;footprint;storelocation;datasheets;attachements;button_decrement;button_increment';

von Christoph (Gast)


Lesenswert?

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.

von Gelöscht (kami89)


Lesenswert?

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
1
<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?

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?

von Christoph (Gast)


Lesenswert?

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.....

von Gelöscht (kami89)


Lesenswert?

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

von Christian R. (holle)


Lesenswert?

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.

von Gelöscht (kami89)


Lesenswert?

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.

von Christian R. (holle)


Lesenswert?

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.

von Christoph (Gast)


Lesenswert?

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.

von Christian R. (holle)


Lesenswert?

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.

von Christoph (Gast)


Lesenswert?

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 :-(

von Christian R. (holle)


Lesenswert?

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.

von Gelöscht (kami89)


Lesenswert?

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.

von Christian R. (holle)


Lesenswert?

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) ;-)

von Christian R. (holle)


Lesenswert?

Gibt es schon etwas neues bezüglich "URL für Datenblatt eintragen" 
(Version 0.3.0) ?

von Gelöscht (kami89)


Lesenswert?

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/

von Gelöscht (kami89)


Lesenswert?

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

von Gelöscht (kami89)


Lesenswert?

So, die 0.3.0 RC2 ist jetzt online: 
https://code.google.com/p/part-db/downloads/detail?name=Part-DB_0.3.0.RC2.tar.gz

Installationsanleitung: 
http://www.partdb.grautier.com/svn/documentation/dokuwiki/doku.php

Nebst vielen anderen Bugfixes ist jetzt insbesondere auch die 
Kompatibilität mit Windows einiges besser geworden. Also diejenigen, die 
mit der RC1 Probleme unter Windows hatten, sollten es doch bitte mit 
dieser Version nochmal versuchen.

Viel Spass beim testen :-)

von Maximilian M. (haligali)


Lesenswert?

Hallo Leute,

ist das Preissuchscript von 2010 mit der 0.3RC1 kompatibel ?

Gruß

von Gelöscht (kami89)


Lesenswert?

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

von thirdgotti (Gast)


Lesenswert?

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

von Gelöscht (kami89)


Lesenswert?

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

von thirdgotti (Gast)


Lesenswert?

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.

von Gelöscht (kami89)


Lesenswert?

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.

von Gerald *. (pyromane)


Lesenswert?

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!

von Waldemar (Gast)


Angehängte Dateien:

Lesenswert?

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

von Gelöscht (kami89)


Lesenswert?

Hallo,

Waldemar schrieb:
> Die gewählte Sprache "de_DE" wird vom Server nicht unterstützt!
> Bitte installieren Sie diese Sprache oder wählen Sie eine andere.

Nimm mal die neuste Version (0.3.0 RC2), dann sollte das klappen:
https://code.google.com/p/part-db/downloads/detail?name=Part-DB_0.3.0.RC2.tar.gz

mfg

von Waldemar (Gast)


Lesenswert?

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

von Waldemar (Gast)


Lesenswert?

Hi,

aber auch DAS hat geklappt. Alles im grünen Bereich.

Danke schön.

Gruß
Waldemar

von kirkdis (Gast)


Lesenswert?

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ß

von kirkdis (Gast)


Lesenswert?

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.

von abcdef (Gast)


Lesenswert?

@kirkdis:
Ich glaube, Du musst auf Deinem Webserver das Locale de_DE installieren.

von kirk d. (kirkdis)


Lesenswert?

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.

von kirk d. (kirkdis)


Lesenswert?

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.

von Gelöscht (kami89)


Lesenswert?

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

von kirk d. (kirkdis)


Lesenswert?

Ah vielen Dank Urban. Werd ich dann mal ausprobieren. Schönen Urlaub 
noch

von kirk d. (kirkdis)


Lesenswert?

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

von Christopher K. (djmaster_d)


Lesenswert?

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

von kirk d. (kirkdis)


Lesenswert?

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

von K. J. (Gast)


Lesenswert?

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.

von Udo N. (weinbauer73)


Lesenswert?

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.

von Christopher K. (djmaster_d)


Lesenswert?

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

von Gelöscht (kami89)


Lesenswert?

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

von Christopher K. (djmaster_d)


Lesenswert?

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

von Gelöscht (kami89)


Lesenswert?

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

von kirk d. (kirkdis)


Lesenswert?

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.

von Gelöscht (kami89)


Lesenswert?

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():
1
function own_setlocale($category, $locale)
2
    {
3
        $charsets = array('utf8', 'UTF8', 'utf-8', 'UTF-8');
4
        $base_locales = array($locale);
5
6
        // workaround for Windows/XAMPP:
7
        switch ($locale)
8
        {
9
            case 'de_AT':
10
                $base_locales[] = 'german-austrian';
11
                $base_locales[] = 'dea';
12
                break;
13
            case 'de_CH':
14
                $base_locales[] = 'german-swiss';
15
                $base_locales[] = 'swiss';
16
                $base_locales[] = 'des';
17
                break;
18
            case 'de_DE':
19
                $base_locales[] = 'german';
20
                $base_locales[] = 'deu';
21
                break;
22
            case 'de_LU':
23
                $base_locales[] = 'german';
24
                $base_locales[] = 'deu';
25
                break;
26
            case 'en_GB':
27
                $base_locales[] = 'english-uk';
28
                $base_locales[] = 'uk';
29
                $base_locales[] = 'eng';
30
                break;
31
            case 'en_US':
32
                $base_locales[] = 'english-us';
33
                $base_locales[] = 'english-usa';
34
                $base_locales[] = 'english-american';
35
                $base_locales[] = 'american-english';
36
                $base_locales[] = 'american english';
37
                $base_locales[] = 'american';
38
                $base_locales[] = 'usa';
39
                $base_locales[] = 'us';
40
                $base_locales[] = 'enu';
41
                break;
42
            default:
43
                break;
44
        }
45
46
        $base_locales[] = 'C';
47
48
        $locales = array();
49
        foreach ($base_locales as $base_locale)
50
        {
51
            foreach ($charsets as $charset)
52
                $locales[] = $base_locale.'.'.$charset;
53
54
            $locales[] = $base_locale;
55
        }
56
57
        return (setlocale($category, $locales) !== false);
58
    }

von kirk d. (kirkdis)


Lesenswert?

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.

von Gelöscht (kami89)


Lesenswert?

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.

von kirk d. (kirkdis)


Lesenswert?

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?

von Gelöscht (kami89)


Lesenswert?

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.

von kirk d. (kirkdis)


Lesenswert?

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.

von Gelöscht (kami89)


Lesenswert?

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 ;-)

von Gelöscht (kami89)


Lesenswert?

@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

von Borsty B. (mantabernd)



Lesenswert?

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:

1
if(!isset($_SERVER['DOCUMENT_ROOT'])){ if(isset($_SERVER['SCRIPT_FILENAME'])){
2
$_SERVER['DOCUMENT_ROOT'] = str_replace( '\\', '/', substr($_SERVER['SCRIPT_FILENAME'], 0, 0-strlen($_SERVER['PHP_SELF'])));
3
}; };
4
if(!isset($_SERVER['DOCUMENT_ROOT'])){ if(isset($_SERVER['PATH_TRANSLATED'])){
5
$_SERVER['DOCUMENT_ROOT'] = str_replace( '\\', '/', substr(str_replace('\\\\', '\\', $_SERVER['PATH_TRANSLATED']), 0, 0-strlen($_SERVER['PHP_SELF'])));
6
}; };

Fehler beim bearbeiten eines Bauteiles:

1
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:

1
$value = array();
2
$value = implode($locale['mon_decimal_point'], $value);

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

von Udo N. (weinbauer73)


Lesenswert?

Ich würde den Code für DOCUMENT_ROOT kürzer fassen:
1
if (!isset($_SERVER['DOCUMENT_ROOT']) {
2
   if (isset($_SERVER['SCRIPT_FILENAME'])) {
3
      $_SERVER['DOCUMENT_ROOT'] = str_replace( '\\','/',substr($_SERVER['SCRIPT_FILENAME'],0,0-strlen($_SERVER['PHP_SELF'])));
4
   } elseif (isset($_SERVER['PATH_TRANSLATED'])) {
5
      $_SERVER['DOCUMENT_ROOT'] = str_replace( '\\','/',substr(str_replace('\\\\', '\\', $_SERVER['PATH_TRANSLATED']),0,0-strlen($_SERVER['PHP_SELF'])));
6
   }
7
}
Für implode() wäre es besser, vorher auf die Variable zu prüfen.
1
$value = ((is_array($value)?implode($locale['mon_decimal_point'], $value):"");

von Borsty B. (mantabernd)


Lesenswert?

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

von Udo N. (weinbauer73)


Lesenswert?

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.

von Borsty B. (mantabernd)


Lesenswert?

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 :(

von Udo N. (weinbauer73)


Lesenswert?

Zwei Klammern fehlten... Meine Tastatur hat leider ne Macke :(
1
if (!isset($_SERVER['DOCUMENT_ROOT'])) {
2
   if (isset($_SERVER['SCRIPT_FILENAME'])) {
3
      $_SERVER['DOCUMENT_ROOT'] = str_replace('\\','/',substr($_SERVER['SCRIPT_FILENAME'],0,0-strlen($_SERVER['PHP_SELF'])));
4
   } elseif (isset($_SERVER['PATH_TRANSLATED'])) {
5
      $_SERVER['DOCUMENT_ROOT'] = str_replace( 
6
'\\','/',substr(str_replace('\\\\', '\\', 
7
$_SERVER['PATH_TRANSLATED']),0,0-strlen($_SERVER['PHP_SELF'])));
8
   }
9
}
1
$value = ((is_array($value))?implode($locale['mon_decimal_point'],$value):"");

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.

von Udo N. (weinbauer73)


Lesenswert?

Produktblatt CipherLAB 1000: 
http://www.cipherlab.com/livefiles/en/Documents/296/4-CPL10079%201070%20DE.pdf

Unterstützte Codes: Codabar, Code 39, Code 93, Code 128, GS1 DataBar 
(RSS), Industrial 2 of 5, Interleave 2 of 5,
Matrix 2 of 5, MSI, Italian und French Pharmacodes, Plessey, Telepen, 
UPC  EAN  GS1-128, u.v.m.

Handbuch: 
http://www.cipherlab.com/livefiles/en/documents/937/1000_1090+_1100_1105_1200ScannerUserGuide_v3_01.zip

von Gelöscht (kami89)


Angehängte Dateien:

Lesenswert?

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

von Gerald *. (pyromane)


Lesenswert?

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.

von Gelöscht (kami89)


Lesenswert?

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 :-)

von abcdef (Gast)


Lesenswert?

Urban B. schrieb:
> Aber alles zu seiner Zeit :-)

Wann kommt endlich die Version 0.3.0?

von abcdef (Gast)


Lesenswert?

abcdef schrieb:
> Wann kommt endlich die Version 0.3.0?
Kanns kaum mehr erwarten ;-)

von Borsty B. (mantabernd)


Lesenswert?

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?

von Borsty B. (mantabernd)


Angehängte Dateien:

Lesenswert?

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?

von Gelöscht (kami89)


Lesenswert?

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 ;-)

von Udo N. (weinbauer73)


Lesenswert?

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.

von Borsty B. (mantabernd)


Angehängte Dateien:

Lesenswert?

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.

von Gelöscht (kami89)


Lesenswert?

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 ;-)

von Borsty B. (mantabernd)


Lesenswert?

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 :)

von Gelöscht (kami89)


Lesenswert?

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.

von Udo N. (weinbauer73)


Lesenswert?

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

von Borsty B. (mantabernd)


Lesenswert?

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

von Gelöscht (kami89)


Lesenswert?

@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=30

Borsty 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 :-)
1
$manual_config['table']['category_parts']['columns']     = 'hover_picture;name;description;instock_mininstock;footprint;storelocation;manufacturer;datasheets;attachements;button_decrement;button_increment';

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

von K. J. (Gast)


Lesenswert?

@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.

von Udo N. (weinbauer73)


Lesenswert?

> Ü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.

von Gelöscht (kami89)


Lesenswert?

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 ;-)

von Gelöscht (kami89)


Lesenswert?

@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 :-)

von Arne M. (armut)


Lesenswert?

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?

von Gelöscht (kami89)


Lesenswert?

@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.

von Arne M. (armut)


Lesenswert?

@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

von Gelöscht (kami89)


Lesenswert?

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... ;-)

von Udo N. (weinbauer73)


Lesenswert?

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.

von Arne M. (armut)


Lesenswert?

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!

von Gelöscht (kami89)


Lesenswert?

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.

von Arne M. (armut)


Lesenswert?

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 :)

von Gelöscht (kami89)


Lesenswert?

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".

von Udo N. (weinbauer73)


Lesenswert?

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.

von Udo N. (weinbauer73)


Lesenswert?

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).

von Christoph (Gast)


Angehängte Dateien:

Lesenswert?

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

von Udo N. (weinbauer73)


Lesenswert?

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.

von Udo N. (weinbauer73)


Lesenswert?

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.

von Christoph (Gast)


Lesenswert?

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

von Udo N. (weinbauer73)


Lesenswert?

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.

von Udo N. (weinbauer73)


Lesenswert?

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.

von Christoph (Gast)


Lesenswert?

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

von Udo N. (weinbauer73)


Lesenswert?

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.

von Udo N. (weinbauer73)


Lesenswert?

Liste ist vorhanden :-) Allerdings noch ohne Überprüfung von mehrfach 
ausgewählten Dateien.

von Udo N. (weinbauer73)


Lesenswert?

Die aktuelle Version des Filemanagers ist in der Revision 682 enthalten.

von Gelöscht (kami89)


Lesenswert?

@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.)

von Udo N. (weinbauer73)


Lesenswert?

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

von Udo N. (weinbauer73)


Lesenswert?

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.

von Udo N. (weinbauer73)


Lesenswert?

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.

von Gelöscht (kami89)


Lesenswert?

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

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

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

von Gelöscht (kami89)


Lesenswert?

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 zwei 
verschiedene 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.

von Udo N. (weinbauer73)


Lesenswert?

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.

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

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

von Gelöscht (kami89)


Lesenswert?

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

von Udo N. (weinbauer73)


Lesenswert?

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.

von Gerald *. (pyromane)


Angehängte Dateien:

Lesenswert?

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

von Stefan . (xin)


Lesenswert?

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 !

von Udo N. (weinbauer73)


Lesenswert?

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.

von Udo N. (weinbauer73)


Lesenswert?

Nachtrag: "Inhalt löschen" löscht nur den rechten Bereich ("Content") 
der Webseite und hat sonst keine Funktion :)

von Udo N. (weinbauer73)


Lesenswert?

> 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.

von Gelöscht (kami89)


Lesenswert?

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.
1
cd /var/www
2
sudo chown -R www-data:www-data part-db
3
find part-db -type d -print0 | sudo xargs -0 chmod 555
4
find part-db -type f -print0 | sudo xargs -0 chmod 444
5
find part-db/data -type d -print0 | sudo xargs -0 chmod 755
6
find part-db/data -type f -print0 | sudo xargs -0 chmod 644
7
find part-db/documentation/dokuwiki/data -type d -print0 | sudo xargs -0 chmod 755
8
find part-db/documentation/dokuwiki/data -type f -print0 | sudo xargs -0 chmod 644

Aber wie gesagt, wenn das Archiv mit
1
sudo tar xzf part-db.tar.gz -C /var/www
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

von Stefan . (xin)


Lesenswert?

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 !?

von Gelöscht (kami89)


Lesenswert?

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:
1
<?php
2
$process_user = @posix_getpwuid(posix_geteuid());
3
echo 'Prozess-Benutzer: ' . posix_geteuid() . ' ('. (isset($process_user['name']) ? $process_user['name'] : '') . ')<br>';
4
echo 'Besitzer: ' . getmyuid() . ' (' . get_current_user() . ')<br>';
5
echo 'Leserechte : ' . (is_readable('test.php') ? 'true' : 'false') . '<br>';
6
echo 'Schreibrechte: ' . (is_writable('test.php') ? 'true' : 'false') . '<br>';
7
echo 'Dateirechte: ' . substr(sprintf('%o', fileperms('test.php')), -4) . '<br>';
8
?>

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.

von Gelöscht (kami89)


Lesenswert?

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... 
;-)

von Stefan . (xin)


Lesenswert?

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 ?

von Gelöscht (kami89)


Lesenswert?

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 :-)

von Udo N. (weinbauer73)


Lesenswert?

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.

von Gelöscht (kami89)


Lesenswert?

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...

von Udo N. (weinbauer73)


Lesenswert?

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

von Gelöscht (kami89)


Lesenswert?

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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.