mikrocontroller.net

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


Autor: Waldemar (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

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

Danke schön.

Gruß
Waldemar

Autor: kirkdis (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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ß

Autor: kirkdis (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: abcdef (Gast)
Datum:

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

Autor: kirk disen (kirkdis)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
abcdef schrieb im Beitrag #3227345:
> @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.

Autor: kirk disen (kirkdis)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Urban B. (kami89)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: kirk disen (kirkdis)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ah vielen Dank Urban. Werd ich dann mal ausprobieren. Schönen Urlaub 
noch

Autor: kirk disen (kirkdis)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Christopher K. (djmaster_d)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: kirk disen (kirkdis)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: K. J. (theborg0815) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Udo Neist (weinbauer73)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Christopher K. (djmaster_d)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Urban B. (kami89)
Datum:

Bewertung
0 lesenswert
nicht 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:
function own_setlocale($category, $locale)
{
    return (setlocale($category, "de_DE") !== false);
}

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

Autor: Christopher K. (djmaster_d)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Urban B. (kami89)
Datum:

Bewertung
0 lesenswert
nicht 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:
SELECT id, name, description, last_modified
FROM `parts`
WHERE last_modified >= '/*[VARIABLE]*/'
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

Autor: kirk disen (kirkdis)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Urban B. (kami89)
Datum:

Bewertung
0 lesenswert
nicht 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():
function own_setlocale($category, $locale)
    {
        $charsets = array('utf8', 'UTF8', 'utf-8', 'UTF-8');
        $base_locales = array($locale);

        // workaround for Windows/XAMPP:
        switch ($locale)
        {
            case 'de_AT':
                $base_locales[] = 'german-austrian';
                $base_locales[] = 'dea';
                break;
            case 'de_CH':
                $base_locales[] = 'german-swiss';
                $base_locales[] = 'swiss';
                $base_locales[] = 'des';
                break;
            case 'de_DE':
                $base_locales[] = 'german';
                $base_locales[] = 'deu';
                break;
            case 'de_LU':
                $base_locales[] = 'german';
                $base_locales[] = 'deu';
                break;
            case 'en_GB':
                $base_locales[] = 'english-uk';
                $base_locales[] = 'uk';
                $base_locales[] = 'eng';
                break;
            case 'en_US':
                $base_locales[] = 'english-us';
                $base_locales[] = 'english-usa';
                $base_locales[] = 'english-american';
                $base_locales[] = 'american-english';
                $base_locales[] = 'american english';
                $base_locales[] = 'american';
                $base_locales[] = 'usa';
                $base_locales[] = 'us';
                $base_locales[] = 'enu';
                break;
            default:
                break;
        }

        $base_locales[] = 'C';

        $locales = array();
        foreach ($base_locales as $base_locale)
        {
            foreach ($charsets as $charset)
                $locales[] = $base_locale.'.'.$charset;

            $locales[] = $base_locale;
        }

        return (setlocale($category, $locales) !== false);
    }

Autor: kirk disen (kirkdis)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Urban B. (kami89)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: kirk disen (kirkdis)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Urban B. (kami89)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: kirk disen (kirkdis)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Urban B. (kami89)
Datum:

Bewertung
0 lesenswert
nicht 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 ;-)

Autor: Urban B. (kami89)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Borsty Bürste (Firma: www.waechter-bernhard.de) (mantabernd)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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:

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:

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

Fehler beim bearbeiten eines Bauteiles:

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:

$value = array();
$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

Autor: Udo Neist (weinbauer73)
Datum:

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

Autor: Borsty Bürste (Firma: www.waechter-bernhard.de) (mantabernd)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Udo Neist (weinbauer73)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Borsty Bürste (Firma: www.waechter-bernhard.de) (mantabernd)
Datum:

Bewertung
0 lesenswert
nicht 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 :(

Autor: Udo Neist (weinbauer73)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zwei Klammern fehlten... Meine Tastatur hat leider ne Macke :(
if (!isset($_SERVER['DOCUMENT_ROOT'])) {
   if (isset($_SERVER['SCRIPT_FILENAME'])) {
      $_SERVER['DOCUMENT_ROOT'] = str_replace('\\','/',substr($_SERVER['SCRIPT_FILENAME'],0,0-strlen($_SERVER['PHP_SELF'])));
   } elseif (isset($_SERVER['PATH_TRANSLATED'])) {
      $_SERVER['DOCUMENT_ROOT'] = str_replace( 
'\\','/',substr(str_replace('\\\\', '\\', 
$_SERVER['PATH_TRANSLATED']),0,0-strlen($_SERVER['PHP_SELF'])));
   }
}
$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.

Autor: Udo Neist (weinbauer73)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Produktblatt CipherLAB 1000: 
http://www.cipherlab.com/livefiles/en/Documents/29...

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

Autor: Urban B. (kami89)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Gerald *. (pyromane)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Urban B. (kami89)
Datum:

Bewertung
0 lesenswert
nicht 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 :-)

Autor: abcdef (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Urban B. schrieb:
> Aber alles zu seiner Zeit :-)

Wann kommt endlich die Version 0.3.0?

Autor: abcdef (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
abcdef schrieb im Beitrag #3251118:
> Wann kommt endlich die Version 0.3.0?
Kanns kaum mehr erwarten ;-)

Autor: Borsty Bürste (Firma: www.waechter-bernhard.de) (mantabernd)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Borsty Bürste (Firma: www.waechter-bernhard.de) (mantabernd)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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?

Autor: Urban B. (kami89)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
abcdef schrieb im Beitrag #3251118:
> 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 ;-)

Autor: Udo Neist (weinbauer73)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Borsty Bürste (Firma: www.waechter-bernhard.de) (mantabernd)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: Urban B. (kami89)
Datum:

Bewertung
0 lesenswert
nicht 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 ;-)

Autor: Borsty Bürste (Firma: www.waechter-bernhard.de) (mantabernd)
Datum:

Bewertung
0 lesenswert
nicht 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 :)

Autor: Urban B. (kami89)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Udo Neist (weinbauer73)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Borsty Bürste (Firma: www.waechter-bernhard.de) (mantabernd)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Urban B. (kami89)
Datum:

Bewertung
0 lesenswert
nicht 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 :-)
$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

Autor: K. J. (theborg0815) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Udo Neist (weinbauer73)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Urban B. (kami89)
Datum:

Bewertung
0 lesenswert
nicht 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 ;-)

Autor: Urban B. (kami89)
Datum:

Bewertung
0 lesenswert
nicht 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 :-)

Autor: Arne M. (armut)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Urban B. (kami89)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Arne M. (armut)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Urban B. (kami89)
Datum:

Bewertung
0 lesenswert
nicht 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... ;-)

Autor: Udo Neist (weinbauer73)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Arne M. (armut)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Urban B. (kami89)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Arne M. (armut)
Datum:

Bewertung
0 lesenswert
nicht 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 :)

Autor: Urban B. (kami89)
Datum:

Bewertung
0 lesenswert
nicht 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".

Autor: Udo Neist (weinbauer73)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Udo Neist (weinbauer73)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: Christoph (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Udo Neist (weinbauer73)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Udo Neist (weinbauer73)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Christoph (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Udo Neist (weinbauer73)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Udo Neist (weinbauer73)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Christoph (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Udo Neist (weinbauer73)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Udo Neist (weinbauer73)
Datum:

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

Autor: Udo Neist (weinbauer73)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die aktuelle Version des Filemanagers ist in der Revision 682 enthalten.

Autor: Urban B. (kami89)
Datum:

Bewertung
0 lesenswert
nicht 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.)

Autor: Udo Neist (weinbauer73)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Udo Neist (weinbauer73)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Udo Neist (weinbauer73)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Urban B. (kami89)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Torsten C. (torsten_c) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Urban B. (kami89)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Udo Neist (weinbauer73)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Torsten C. (torsten_c) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Urban B. (kami89)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So, habe soeben die finale Version 0.3.0 hochgeladen:
https://code.google.com/p/part-db/downloads/detail...

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

Autor: Udo Neist (weinbauer73)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Gerald *. (pyromane)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Stefan --- (xin)
Datum:

Bewertung
0 lesenswert
nicht 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 !

Autor: Udo Neist (weinbauer73)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Udo Neist (weinbauer73)
Datum:

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

Autor: Udo Neist (weinbauer73)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Urban B. (kami89)
Datum:

Bewertung
0 lesenswert
nicht 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?
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/d...
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.
cd /var/www
sudo chown -R www-data:www-data part-db
find part-db -type d -print0 | sudo xargs -0 chmod 555
find part-db -type f -print0 | sudo xargs -0 chmod 444
find part-db/data -type d -print0 | sudo xargs -0 chmod 755
find part-db/data -type f -print0 | sudo xargs -0 chmod 644
find part-db/documentation/dokuwiki/data -type d -print0 | sudo xargs -0 chmod 755
find part-db/documentation/dokuwiki/data -type f -print0 | sudo xargs -0 chmod 644

Aber wie gesagt, wenn das Archiv mit
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

Autor: Stefan --- (xin)
Datum:

Bewertung
0 lesenswert
nicht 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...
- 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 !?

Autor: Urban B. (kami89)
Datum:

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

Dann Besitzer/Gruppe auf "web0" und die Dateirechte auf "644" stellen:
chown web0:web0 test.php
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
$messages = check_file_permissions();
durch diese hier ersetzen:
$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.

Autor: Urban B. (kami89)
Datum:

Bewertung
0 lesenswert
nicht 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... 
;-)

Autor: Stefan --- (xin)
Datum:

Bewertung
0 lesenswert
nicht 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 ?

Autor: Urban B. (kami89)
Datum:

Bewertung
0 lesenswert
nicht 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:
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 :-)

Autor: Udo Neist (weinbauer73)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Urban B. (kami89)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Udo Neist (weinbauer73)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Urban B. (kami89)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Udo Neist (weinbauer73)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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?!

Obwohl ich Linux seit Jahren benutze, denk ich an sowas manchmal gar 
nicht mehr. Stimmt schon, es muss wenigstens wx gesetzt sein, damit man 
schreiben kann. Also muss man wohl einen Wrapper dafür schreiben.

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

Im Grunde das gleiche wie ich es mir gedacht habe. Ich kopieren mir dann 
den aktuellen Stand in meinen Branch und fange zwischenzeitlich mal an, 
die Frames zu entfernen und auf Ajax/DOM umzustellen.

Autor: Urban B. (kami89)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Verdammt! Ich habe wiedermal Mist gebaut im SVN Repository^^
Anscheinend habe ich die Änderung r689 im falschen Verzeichnis gemacht, 
das hätte eigentlich nicht im trunk sondern im tags geändert werden 
müssen...Vermutlich habe ich den falschen Ordner erwischt beim hochladen 
ins SVN...

Ich versuchs dann mal wieder hinzubiegen ;-) Sorry!

Autor: Udo Neist (weinbauer73)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fehler passieren ;-) SVN wollte den Trunk nicht in mein Branch kopieren, 
also erst einmal meinen alten Branch löschen und einen neuen 
"part-db-uneist" erstellen.

Autor: Urban B. (kami89)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
lol OK ich habe grad den Fehler gefunden, ich habe meine lokale Kopie 
von tag "Part-DB-0.3.0" aus dem trunk gezogen...schon klar landen dann 
die Änderungen nicht dort wo sie sollten -.-
Glücklicherweise habe ich aber das Release-Paket dann auch aus dem Trunk 
erstellt, und nicht aus dem tags/Part-DB-0.3.0 ;-)
Zwei Fehler nacheinander heben sich halt wieder auf xD

Also ich bins grad wieder am korrigieren, es sind nur ein paar Dateien 
die ich damals gelöscht habe, die kann ich aber wieder herstellen.

Autor: Udo Neist (weinbauer73)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hehe... So lösen sich die Probleme langsam auf.

Ich hab mir mal die paar Javascriptdateien angeschaut. Ein paar der 
Funktionen hab ich in meiner dom.js bereits drin bzw. sind sehr ähnlich, 
andere könnte ich übernehmen. Man müsste auch schauen, ob die Funktionen 
überhaupt noch gebraucht werden oder ob sie ersetzt werden könnten. 
Einheitlicher wäre hier auch besser :-)

Autor: Urban B. (kami89)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So, jetzt sollte alles wieder im Butter sein (r696).

Udo Neist schrieb:
> Ich hab mir mal die paar Javascriptdateien angeschaut. Ein paar der
> Funktionen hab ich in meiner dom.js bereits drin bzw. sind sehr ähnlich,
> andere könnte ich übernehmen. Man müsste auch schauen, ob die Funktionen
> überhaupt noch gebraucht werden oder ob sie ersetzt werden könnten.
> Einheitlicher wäre hier auch besser :-)

Ja, das kannst du natürlich machen. Ich habe da übrigens auch nicht so 
der Überblick, das meiste vom JavaScript-Kram stammt unverändert aus der 
0.2.2.

Autor: Arne M. (armut)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eine Tolle Software, nachdem ich in meiner Testbank einiges eingegeben 
habe. Praktisch alle Infos an einen Ort zu haben.

Drei kleine Fragen hab ich noch:
1) Um 3.0 zu installieren einfach ueber RC2 drueberkopieren?
2) Da ich ja irgendwann auf den Heimserver mit der DB ziehen will, kann 
man irgendwo nicht eine export/backup Funktion einbauen, die einen 
direkt eine wieder einlesbare XML aus der DB erzeugt?
3) Auf der Startseite steht etwas mit Reichelt Preissuche. Wie/Wo kann 
man das nutzen?

Danke und Gruss
Arne

Autor: Udo Neist (weinbauer73)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Arne M. schrieb:
> Eine Tolle Software, nachdem ich in meiner Testbank einiges eingegeben
> habe. Praktisch alle Infos an einen Ort zu haben.

Danke :-)

> Drei kleine Fragen hab ich noch:
> 1) Um 3.0 zu installieren einfach ueber RC2 drueberkopieren?

Du meinst sicher 0.3.0? Ja, einfach aktualisieren, da sich in der DB 
nichts mehr geändert hat. Die Konfiguration bleibt.

> 2) Da ich ja irgendwann auf den Heimserver mit der DB ziehen will, kann
> man irgendwo nicht eine export/backup Funktion einbauen, die einen
> direkt eine wieder einlesbare XML aus der DB erzeugt?

Wenn du MySQLDumper installiert hast, könntest du das direkt aus Part-DB 
aufrufen. Sonst bleibt dir nur der Umweg über MySQL-Konsole/mysqldump 
oder phpMyAdmin.

> 3) Auf der Startseite steht etwas mit Reichelt Preissuche. Wie/Wo kann
> man das nutzen?

Soviel ich weiß ist das Preissuchscript selbst in der 0.2er Version von 
Part-DB veraltet, da sich zwischenzeitlich die Homepage von Reichelt 
geändert hat. Wann wir wieder ein passendes Script haben, kann ich nicht 
sagen.

Autor: Udo Neist (weinbauer73)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Urban: Die Meldung "SVN-Revision konnte nicht aus "/.svn/wc.db" gelesen 
werden! $result ist NULL" ist in einem Release sinnlos. Daran hätten wir 
denken sollen ;)

Autor: Urban B. (kami89)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Udo Neist schrieb:
> @Urban: Die Meldung "SVN-Revision konnte nicht aus "/.svn/wc.db" gelesen
> werden! $result ist NULL" ist in einem Release sinnlos. Daran hätten wir
> denken sollen ;)

Diese Fehlermeldung kann aber nur geworfen werden, wenn die Datei
"/.svn/wc.db" existiert (siehe voranstehendes "if file_exists()"). Da 
diese Datei in einem Release aber nicht existiert, kann die 
Fehlermeldung gar nie auftreten. Es wäre also sinnlos, für die Releases 
hier irgendwas zu ändern, da es keinen Unterschied macht ;-)

Autor: Arne (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Udo Neist Danke dir!

Autor: Udo Neist (weinbauer73)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn $result NULL ist, dann braucht man das auch nicht wirklich 
auszugeben, oder?

Autor: Udo Neist (weinbauer73)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Arne: Büdde

Autor: Urban B. (kami89)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Udo Neist schrieb:
> Wenn $result NULL ist, dann braucht man das auch nicht wirklich
> auszugeben, oder?

Ich verstehe dich nicht ganz. Die Funktion "get_svn_revision()" prüft, 
ob die aktuelle Installation per SVN installiert wurde (".svn" 
Verzeichnis vorhanden) oder nicht. Bei einer SVN-Installation gibt die 
Funktion die SVN Revisionsnummer zurück, bei einer 
Nicht-SVN-Installation gibt die Funktion NULL zurück.

Siehst denn du irgendwo die von dir genannte Fehlermeldung, also wird 
die irgendwo ausgespuckt? Das sollte eigentlich nicht der Fall sein.

Autor: Udo Neist (weinbauer73)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich hätte es sicher nicht gemeldet, wenn ich es nicht sehen würde :) Und 
es ist eine Installation aus dem SVN (meine Arbeitskopie).

Autor: Arne M. (armut)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Waere es auch nicht toll zur Feier einen neuen Thread mit 0.3.0 zu 
erstellen? 600 Beitraege werden auf dem Handy doch arg viel :)

Autor: Urban B. (kami89)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach so, jetzt verstehe ich es :-)
Aber ich wüsste nicht, warum man diesen Fehler bei einer stabilen 
Version unterbinden sollte.
Erstens ist das schlussendlich ja ein "normaler" Fehler, wie jeder 
andere auch, und die anderen Fehler bekommen ja auch keine 
Sonderbehandlung.
Und zweitens sind SVN-Installationen nach wie vor grundsätzlich nur für 
Entwickler gedacht. Natürlich darf man seine Part-DB auch als 
Nicht-Entwicker per SVN installieren, allerdings geschieht dies auf 
eigenes Risiko. Für die Endanwender schnüren wir ja extra die Pakete, 
die dann eben auch den ".svn" Ordner nicht enthalten und somit die 
genannte Fehlermeldung gar nicht erst auftauchen kann. Auch der 
"development" Ordner hat beim Endanwender grundsätzlich nichts zu suchen 
und wird daher in den Release-Archiven entfernt. Im SVN ist dieser 
Ordner allerdings vorhanden, da man den als Entwickler halt braucht (vor 
allem um die Archive zu schnüren).

- soweit meine Meinung ;-)

Was den Fehler bei dir verursacht, müsste man mal untersuchen. Kannst du 
das selber übernehmen? Ich kann den Fehler hier nicht nachvollziehen.

Autor: Udo Neist (weinbauer73)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es ist zwar ein Schönheitsfehler und stört die normale Funktionsweise 
nicht, aber sowas müsste nicht sein.

Ich habe get_svn_revision() so umgeschrieben, dass entweder eine 
Revisionsnummer oder false für unbekannte Revision oder NULL 
zurückgegeben wird. Die Fehlermeldung ist weg, stattdessen wird 
"Version: 0.3.0 (stable), SVN-Revision: unbekannt" angezeigt.

lib.php (Zeile 65ff):
    /**
     * @brief Get the SVN Revision number of the installed system
     *
     * @retval integer      The SVN revision number
     * @retval false        No revision number is found
     * @retval NULL         If this is no SVN installation
     */
    function get_svn_revision()
    {
        // New SVN format
        if (file_exists(BASE.'/.svn/wc.db'))
        {
            $svn = 0;
            $pdo = new PDO('sqlite:'.BASE.'/.svn/wc.db');
            $result = $pdo->query('SELECT MAX(revision) AS rev FROM nodes');
            if ($result && $data = $result->fetch())
                $svn = intval($data['rev']);
            else
                $svn = false; // there is no revision number
        }
        // Old SVN format
        if (file_exists(BASE.'/.svn/entries'))
        {
            $svn = 0;
            $data = File(BASE.'/.svn/entries');
            if (is_array($data) && isset($data[3]))
                $svn = intval($data[3]);
            else
                $svn = false; // there is no revision number

        }
        if (isset($svn) || !$svn)
            return $svn; // this is a SVN installation
        else
            return NULL; // this is not a SVN installation
    }
startup.php (Zeile 223ff):
            if (get_svn_revision())
                $html->set_variable('svn_revision', get_svn_revision(), 'integer');
            else
                $html->set_variable('svn_revision', 'unbekannt',         'string');

Autor: Udo Neist (weinbauer73)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn ich allerdings wc.db mit dem FF Addon SQLite Manager öffne und den 
SQL-Befehl ausführen lasse, bekomme ich den Wert 691 zurück, was der 
Revision entspricht.

Der Codeschnippsel
            $pdo = new PDO('sqlite:'.BASE.'/.svn/wc.db');
            $result = $pdo->query('SELECT MAX(revision) AS rev FROM nodes');
liefert false zurück. Dann kann auch keine Revision ausgelesen werden.

sqlite3 macht dagegen auf der Konsole Probleme.
SQLite version 3.6.16
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> SELECT MAX(revision) AS rev FROM nodes;
SQL error: malformed database schema (nodes_update_checksum_trigger) - near "OLD": syntax error

Autor: Urban B. (kami89)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja, solange diese Funktion nur für die Anzeige der Revisionsnummer auf 
der Startseite verwendet wird, mag das ja egal sein wenn trotz 
Fehlerfall keine Exception geworfen wird.

Allerdings wäre es durchaus denkbar, dass diese Funktion später auch mal 
für andere, wichtigere Dinge genutzt wird, z.B. für das automatische 
Systemupdate das noch auf der ToDo-Liste steht. Dort ist es sicherlich 
nötig, zu schauen ob es eine SVN Installation, und wenn ja welche 
Revision, ist. Vergisst man dort, zwischen "NULL" und "false" zu 
unterscheiden (schnell passiert), kann dies evtl. zu einem fehlerhaften 
Update führen. Wird eine Exception geworfen, kann das nicht passieren, 
da man eine Exception nicht aus versehen ignorieren kann, da muss man 
den Code mit Absicht so schreiben, dass eine Exception ignoriert wird.

Genau für solche Dinge sind Exceptions ja erfunden worden :-)

Dass die Fehlermeldung auf der Startseite unterdrückt wird, damit bin 
ich einverstanden (stattdessen kann die Meldung ja in den Debug-Log 
geschrieben werden). Das macht man aber besser, indem man in der 
startup.php einfach den Aufruf von "get_svn_revision()" in einen 
try/catch Block packt um die Exception zu verwerfen. Das wäre eine 
saubere Lösung.

> SQL error: malformed database schema (nodes_update_checksum_trigger) -
> near "OLD": syntax error
Das nennt man dann wohl "Ausnahmefall", oder auf Englisch "Exception" 
:-D

Autor: Urban B. (kami89)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Arne M. schrieb:
> Waere es auch nicht toll zur Feier einen neuen Thread mit 0.3.0 zu
> erstellen? 600 Beitraege werden auf dem Handy doch arg viel :)

Keine schlechte Idee :-)

Ich habe grad vor ein paar Tagen gedacht dass hier irgendwie ein 
bisschen ein Durcheinander herrscht, da dieser Thread einerseits für den 
Austausch zwischen Anwendern und Entwicklern, andererseits aber auch 
zwischen den Entwicklern untereinander genutzt wird. Das macht es gerade 
für etwas weniger aktive Entwickler sehr schwierig, am Ball zu bleiben 
weil pro Woche manchmal vermutlich über 50 Beiträge geschrieben werden.

Es gibt bestimmt einige Möglichkeiten, das zu verbessern.
- Zwei Threads, z.B. "Part-DB 0.3.x Support" und "Part-DB Entwickler"
- Nur den Support Thread hier, Entwickler-Diskussion auslagern (wohin?)
- Ein eigenes kleines Forum für Part-DB mit mehreren Unterforen (nach 
Themengebieten), ein Unterforum nur für Entwickler (übertrieben?)
- andere Vorschläge? :-)

Autor: Udo Neist (weinbauer73)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Code ist ja nur ein Beispiel wie man das ganze umgehen kann. Ich 
habs ja nicht hochgeladen. Ich lade mal eine saubere Version vom Server 
und schieb das Problem in einen anderen Ordner. svn status meckert mir 
über meine Arbeitskopie, vielleicht ist deswegen der Fehler.

Autor: Udo Neist (weinbauer73)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe einen neuen Thread zur Version 0.3+ gestartet. Alles zu dieser 
Version nur noch dort reinschreiben, da es einfach übersichtlicher wird 
:-)

Beitrag "Lagerverwaltung Part-DB V0.3+"

Grüße
Udo

Autor: Ron (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wird dieses Tool eigentlich noch weiter entwickelt?
Oder ist die Entwicklung eingestellt?

lg
Ronny

Autor: observer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

wie oben steht, jetzt gibt es die Version 0.3+ in einem separaten 
Thread:

Beitrag "Lagerverwaltung Part-DB V0.3+"

@Moderator: Bitte ein "Vorhaengeschoss" an diesen Thread machen.

vg

Autor: X.Y. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin, nutzt es noch irgendwer? wollte es Installieren doch die Anleitung 
dazu ist Down. Kommen nochmal Updates oder wurde das Projekt aufgegeben?

MFG

Autor: Tom Licht (ossilampe)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin Moin,

Hier wurde ja schon lange nix mehr geschrieben, ist das Forum um die 
Lagerverwaltung noch aktiv???


Ich möchte anhand des Lagerortes eine Liste erstellen und diese dann 
ausdrucken.. Wie kann man das realisieren?

gruss

: Bearbeitet durch User
Autor: Jan B. (do9jhb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tom L. schrieb:
> Moin Moin,
>
> Hier wurde ja schon lange nix mehr geschrieben, ist das Forum um die
> Lagerverwaltung noch aktiv???
>
>
> Ich möchte anhand des Lagerortes eine Liste erstellen und diese dann
> ausdrucken.. Wie kann man das realisieren?
>
> gruss

Es gibt mittlerweile eine neue Version (0.4 bzw 0.5 ist in Entwicklung): 
Beitrag "Lagerverwaltung Part-DB V0.4.x"

Neben einem verbesserten Design, und einer Benutzer und 
Rechteverwaltung, gibt es auch die Möglichkeit sich alle Teile in einem 
bestimmten Lagerort auflisten zu lassen. Das kann man dann vermutlich 
auch ausdrucken, dass dürfte dem was du haben willst ziemlich nahe 
kommen.

Hier gibt es eine Demo Installation der aktuellen Version:
http://part-db.bplaced.net

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.