> 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.
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!
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.
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.
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 :-)
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.
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
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.
@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 ;)
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 ;-)
Wenn $result NULL ist, dann braucht man das auch nicht wirklich auszugeben, oder?
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.
Ich hätte es sicher nicht gemeldet, wenn ich es nicht sehen würde :) Und es ist eine Installation aus dem SVN (meine Arbeitskopie).
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 :)
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.
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):
1 | /** |
2 | * @brief Get the SVN Revision number of the installed system |
3 | * |
4 | * @retval integer The SVN revision number |
5 | * @retval false No revision number is found |
6 | * @retval NULL If this is no SVN installation |
7 | */ |
8 | function get_svn_revision() |
9 | { |
10 | // New SVN format |
11 | if (file_exists(BASE.'/.svn/wc.db')) |
12 | { |
13 | $svn = 0; |
14 | $pdo = new PDO('sqlite:'.BASE.'/.svn/wc.db'); |
15 | $result = $pdo->query('SELECT MAX(revision) AS rev FROM nodes'); |
16 | if ($result && $data = $result->fetch()) |
17 | $svn = intval($data['rev']); |
18 | else |
19 | $svn = false; // there is no revision number |
20 | } |
21 | // Old SVN format |
22 | if (file_exists(BASE.'/.svn/entries')) |
23 | { |
24 | $svn = 0; |
25 | $data = File(BASE.'/.svn/entries'); |
26 | if (is_array($data) && isset($data[3])) |
27 | $svn = intval($data[3]); |
28 | else |
29 | $svn = false; // there is no revision number |
30 | |
31 | } |
32 | if (isset($svn) || !$svn) |
33 | return $svn; // this is a SVN installation |
34 | else |
35 | return NULL; // this is not a SVN installation |
36 | } |
startup.php (Zeile 223ff):
1 | if (get_svn_revision()) |
2 | $html->set_variable('svn_revision', get_svn_revision(), 'integer'); |
3 | else |
4 | $html->set_variable('svn_revision', 'unbekannt', 'string'); |
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
1 | $pdo = new PDO('sqlite:'.BASE.'/.svn/wc.db'); |
2 | $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.
1 | SQLite version 3.6.16 |
2 | Enter ".help" for instructions |
3 | Enter SQL statements terminated with a ";" |
4 | sqlite> SELECT MAX(revision) AS rev FROM nodes; |
5 | SQL error: malformed database schema (nodes_update_checksum_trigger) - near "OLD": syntax error |
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
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? :-)
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.
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
Wird dieses Tool eigentlich noch weiter entwickelt? Oder ist die Entwicklung eingestellt? lg Ronny
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
Moin, nutzt es noch irgendwer? wollte es Installieren doch die Anleitung dazu ist Down. Kommen nochmal Updates oder wurde das Projekt aufgegeben? MFG
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
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.