Da ja die Version 0.3.0 der Part-DB mittlerweile draussen ist, habe ich mal einen neuen Thread eröffnet. Ich habe in meinem Branch "part-db-uneist" angefangen, die Frames abzulösen. Anstelle der Frames gibt es zwei DIV-Blöcke "menu" und "content". Die Funktion use_javascript() habe ich lahmgelegt, da alle Scripts jetzt in der javascript/main.js nachgeladen werden. Das Baummenü javascript/dtree.js ist in Teilen schon angepasst, so dass die Ziele per Ajax in das Ziel"frame" "content" geschrieben werden. Die Hilfe wandert in ein IFrame, da sie sonst nicht sauber funktioniert. Ob sie später als neue Webseite oder Popup geöffnet wird, das lasse ich offen. Sobald ich das derzeit ver"gurkte" Design wieder repariert habe, werde ich den Branch aktualisieren.
Revision 699 enthält die erste Version meiner Veränderungen. Der Ordner nbproject sollte eigentlich nicht dabei sein, aber SVN wollte den irgendwie nicht ignorieren. http://code.google.com/p/part-db/source/browse/#svn%2Fbranches%2Fpart-db-uneist
Udo Neist schrieb: > Der Ordner nbproject sollte eigentlich nicht dabei sein, aber SVN wollte > den irgendwie nicht ignorieren. Ja, es ist echt ein Jammer dass es keine ".svnignore" (analog ".gitignore") gibt... Das hat mich bei SVN schon mehrmals genervt dass man die zu ignorierenden Dateien wieder neu definieren muss. Und das ist nur einer von vielen (nützlichen) Vorteilen, welche GIT gegenüber SVN bietet :-) Vielleicht sollte man K.J. mal fragen ob er bereit wäre, Part-DB nach (mMn vorzugsweise) Github zu verschieben? :-) Ab Anfang nächsten Jahres kann man auf Google Code übrigens keine Releases mehr hochladen. Netterweise hat Github genau dieses Feature (ich glaube das war noch in diesem Jahr?) hinzugefügt :-D Nette Strategie von Github... Natürlich liegt die Entscheidung aber alleine bei K.J., ist schliesslich sein Projekt! Ich möchte da nicht reinreden. mfg
K. J. schrieb: > jo könnten wir tun werde mich die tage drum kümmern. cool! Im Internet gibts ja einige Anleitungen wie man ein SVN Repository nach GIT umzieht ohne die History zu verlieren. Gibt halt etwas Arbeit... Ausserdem sollte man bei Gelegenheit auch mal noch die "stable" Demo auf die finale 0.3.0 aktualisieren, jetzt ist nämlich die "unstable" Demo auf der stabilen 0.3.0 und die "stable" Demo auf der unstabilen RC1 :-) Aber das hat alles keine Eile, ich persönlich kann in den nächsten drei Wochen sowieso praktisch nicht an Part-DB weiterarbeiten.
Demo ist Aktualisiert github kommt die Tage muss mich da mal einlesen.
@K.J. Ich denke übrigens man sollte das Projekt bei Google Code dann nicht gleich löschen, da in den Part-DB Installationen ja der RSS Feed noch von dort geholt wird. Ausserdem ist auf der Startseite der Link auf die Google Code Projektseite drin, der dann plötzlich ins Leere laufen würde... ...kam mir nur grad so in den Sinn ;-)
So, die Semesterprüfungen sind vorbei, jetzt habe ich wieder mehr Zeit für die Part-DB :-) @K.J. wie siehts mit dem Umzug auf Github aus, konntest du da schon was machen?
https://github.com/sandboxgangster/Part-DB Stündchen schätze ich dauert der Upload noch muss mich erstmal selber da reinfummeln.
Ja bei mir macht er den Upload, und meldet bei 100% "Broken" ka warum muss mich erstmal in git einlesen hatte das faq von http://rogerdudler.github.io/git-guide/index.de.html versucht. Hab dich auch geadded hoffe das war richtig, auch in github muss ich mich mal einlesen ;-)
Vielleicht habt ihr nen tip ich komme da nicht weiter.
1 | theborg$ git push origin master |
2 | Username for 'https://github.com': sandboxgangster |
3 | Password for 'https://sandboxgangster@github.com': |
4 | Counting objects: 4188, done. |
5 | Delta compression using up to 2 threads. |
6 | Compressing objects: 100% (4106/4106), done. |
7 | error: RPC failed; result=22, HTTP code = 502 9.00 KiB/s |
8 | fatal: The remote end hung up unexpectedly |
9 | Writing objects: 100% (4187/4187), 45.64 MiB | 424.00 KiB/s, done. |
10 | Total 4187 (delta 365), reused 0 (delta 0) |
11 | fatal: The remote end hung up unexpectedly |
12 | Everything up-to-date |
hmm die Fehlermeldung sagt mir jetzt auch nichts (arbeite selber auch noch nicht sehr lange mit Git...) Ich werds selber mal versuchen, bin grad noch dabei das SVN Repository nach Git zu konvertieren.
So, die Dateien sind jetzt auf Github, ich hoffe es hat alles richtig funktioniert. Für das Release 0.3.0 habe ich einen Tag hinzugefügt, jetzt lässt sich das Archiv direkt unter "Releases" runterladen. Ich muss dann nur mal noch die Doku anpassen, weil der Ordner im Archiv jetzt "Part-DB-0.3.0" statt "part-db" heisst. Damit ist die aktuelle Installationsanleitung nicht mehr ganz korrekt... @Udo Kannst du mal deine beiden Branches überprüfen, ob alles korrekt übernommen wurde? Und vielleicht gleich denjenigen Branch löschen, den du nicht mehr brauchst. Das kann man auch gleich auf Github machen, sofern du als Contributor hinzugefügt wurdest.
Ich werde das mal am WE überprüfen, spätestens nächste Woche. Ich muss mich auch noch in git einlesen.
So, ich habe nochmal ein bisschen am neuen Repository gearbeitet (neue Branches, Issues, Meilenstein hinzugefügt). Der Meilenstein ist nur mal so ein Vorschlag von mir, ist nichts verbindliches :-) Die Überbleibsel von Versuchen mit System-Updates und Barcodes habe ich in separate, neue Branches verschoben. Es wird sonst etwas mühsam wenn man Änderungen vom master z.B. in den Branch der 0.3.x mergen möchte. Für zukünftige neue Funktionen und Versuche sollte man jeweils immer einen neuen Branch anlegen (hätte man eigentlich schon immer machen sollen, wurde aber nicht so konsequent umgesetzt, auch nicht von mir ;-) Urban B. schrieb: > Für das Release 0.3.0 habe ich einen Tag hinzugefügt, jetzt lässt sich > das Archiv direkt unter "Releases" runterladen. Ich muss dann nur mal > noch die Doku anpassen, weil der Ordner im Archiv jetzt "Part-DB-0.3.0" > statt "part-db" heisst. Damit ist die aktuelle Installationsanleitung > nicht mehr ganz korrekt... Hat sich erledigt, ich habe gesehen dass man ja selbst Binaries zu einem Release hochladen kann, dann passt alles wieder... ;-)
Also ich denke, wir sollten mal eine Strategie festlegen, wie wir mit den Branches umgehen, damit nicht einfach jeder macht was ihm gerade gefällt :-) Ich habe mir mal folgende Strategie überlegt: Im Branch "master" wird auf die jeweils direkt nächste Version von Part-DB hingearbeitet (momentan auf die 0.3.1). Funktionen, die nicht in diese nächste Version kommen, werden NICHT in den master übernommen. Diese werden stattdessen alle in einem separaten Branch entwickelt. Also z.B. je einen Branch für die Barcodes, Systemupdates, Benutzerverwaltung usw. Für jede Versionslinie X.Y gibt es einen separaten Branch, z.B. für die Versionen 0.3.x gibts momentan den Branch "Part-DB-0.3.x". Änderungen, die die nächste Version (0.3.1) betreffen, können direkt im master gemacht werden und werden dann von Zeit zu Zeit in den Branch der aktuellen Version ("Part-DB-0.3.x") gemerged, das geht sehr einfach wenn man ALLE Commits aus dem master übernehmen möchte. Das heisst dann eigentlich, dass die Branches "master" und "Part-DB-0.3.x" grundsätzlich identisch sind, solange die Version 0.3.x aktuell ist. Sobald aber die 0.3.x-Versionslinie abgeschlossen wird, wird der Branch "Part-DB-0.3.x" links liegengelassen und am master wird auf die 0.4.x hingearbeitet. Ausserdem können die commits vom master auch immer wieder in die anderen Branches (Barcodes, Benutzerverwaltung, ...) übernommen werden, da diese ja auch aktuell gehalten werden sollen. Bis hierhin ist alles sehr einfach, weil immer ALLE Commits aus dem master übernommen werden, es gibt im master keine Commits, die nicht auch in den anderen Branches landen sollen. Sobald man nun das Gefühl hat, die 0.3.x Linie ist abgeschlossen, erstellen wir den neuen Branch "Part-DB-0.4.x". Im master arbeitet man nun auf die 0.4.0 RC1 hin und übernimmt alle Änderungen jeweils auch in den Branch "Part-DB-0.4.x". Alle Branches von Funktionen, die in der 0.4.0 RC1 landen sollen, werden in den master und von da in "Part-DB-0.4.x" übernommen, und die ursprünglichen Branches gelöscht. Dann wird am master gearbeitet bis die 0.4.0 RC1 fertig ist. Und bei jeder veröffentlichten Version wird ein Tag mit einem Namen wie "v0.4.0" gesetzt, denn alle Tags mit so einem Namen werden von Github automatisch erkannt und unter "Releases" aufgelistet. Mir kamen auch andere Strategien in den Sinn. Man könnte z.B. am master auch auf zukünftige Funktionen hin arbeiten, die nicht in der nächsten Version landen sollen. Das hat aber den Nachteil, dass man dann nur ausgewählte Commits in den Branch "Part-DB-0.3.x" mergen darf, das macht die ganze Sache komplizierter und Fehleranfälliger. Meine vorgeschlagene Strategie hat aber auch einen Nachteil. Wenn z.B. die Benutzerverwaltung und die Systemupdates in getrennten Branches entwickelt werden, kann man nie das Zusammenspiel beider neuen Funktionen testen, also ob auch beide Funktionen miteinander funktionieren. Erst wenn man mit der Entwicklung der nächsten Versionslinie beginnt, und alle neuen Funktionen in den master übernimmt, kann das Zusammenspiel beider neuen Funktionen getestet werden. Wenn es wirklich mal eine Situation gibt, in der dies ein Problem darstellen würde, könnte man aber auch mal eine Ausnahme machen und beide Funktionen in den selben Branch stecken und da miteinander weiterentwickeln... Wie seht ihr das? Wenn wir uns auf eine Strategie geeinigt haben, kann ich das in die Doxygen Doku aufnehmen damit das auch festgehalten und für jeden Entwickler jederzeit abrufbar ist. Übrigens haben wir schon den ersten Pull Request auf Github bekommen :-) Vielleicht sollten wir auch noch besprechen, was wir mit diesem (und zukünftigen Pull Requests) machen sollen. In den master mergen würde meiner vorgeschlagenen Strategie widersprechen, da es sich um ein neues Feature handelt und daher nicht in die 0.3.x gehört. Mein Vorschlag wäre, den Pull Request erstmal links liegen zu lassen, und sobald wir im master auf die 0.4.x hin arbeiten, können wir ihn direkt in den master mergen. mfg
Im Prinzip ist der Master immer unverändert dieser wird nur verändert wen eine Funktion getestet würde und dann übernommen wird, ich würde auch jede Funktion in einem eignenden Branch entwickeln und dann in den Master mergen danach kann der master getestet werden und wird dann zu neuen Version.
Ich stimme eher K.J. zu. Das Entwickeln einer Funktion und Mergen in den Master ist durch die Modularisierung viel einfacher geworden. Erst wenn die Ziele eines Releases erfüllt sind, wird der Master zum Release. Wir müssen uns dann überlegen, wer dieses Release weiter betreut. Nur diese Person pflegt die Patches in den Zweig ein. Hierbei würde ich die Hierachie nach
1 | Master -> Release 0.3 -> unstable |
2 | -> 0.3.0 |
3 | -> 0.3.1 |
4 | -> Release 0.4 -> unstable |
5 | -> 0.4.0 |
ordnen. Unstable beinhaltet somit alle Patches für diese Version bis zu einem neuen Release. Natürlich müssten die Patches auch im Master landen, sofern diese dafür relevant sind. Das würde bedeuten, dass neue Funktionen und Patches für den Master im Entwicklerforum angekündigt werden sollten, damit alle Beteiligten aktualisieren können. Wir haben ja keine Instanz, die nur den Master betreuen wird, so ist es für jeden von uns dann etwas mehr Arbeit.
Udo Neist schrieb: > Ich stimme eher K.J. zu. Hmm ich sehe keinen Unterschied von K.J.'s und meiner Beschreibung? :-) Es ist gar nicht so einfach, das Vorgehen zu beschreiben... Ich kann ja mal zwei Beispiele machen: Erstes Beispiel: Aktuell ist die 0.3.0 raus, es wird an der 0.3er Linie weitergearbeitet (also nur noch Bugfixes, keine neuen Funktionen). Die Bugfixes werden jeweils direkt im master getätigt (einen eigenen Branch bringt nichts, sind ja nur kleine Bugfixes). Diese Commits im master werden dann von Zeit zu Zeit in den 0.3.x-Branch und in alle Branches von neuen Funktionen gemerged. Der master und der 0.3.x-Branch sind während dieser Zeit grundsätzlich identisch. Erreicht der master (und damit auch der 0.3.x-Branch) eine stabile Version (z.B. 0.3.1), wird im 0.3.x-Branch ein Tag "v0.3.1" gesetzt, damit dieser Stand festgehalten wird. Der Branch an sich entwickelt sich aber natürlich weiter, zur 0.3.2 usw. Ist die 0.3.x-Linie abgeschlossen, wird dieser Branch so gelassen und ein neuer Branch 0.4.x angelegt. In diesem, und im master, wird nun an der 0.4er Version gearbeitet. Zweites Beispiel: Wieder die gleiche Ausgangslage, Version 0.3.0 ist draussen. In einem separaten Branch wird an der Benutzerverwaltung gearbeitet, die aber erst in der 1.0.0 landen soll. Während der Entwicklung der Benutzerverwaltung werden immer wieder die Commits vom master in diesen Branch gemerged, schliesslich werden auch hier die ganzen Bugfixes usw. benötigt. Erst wenn die letzte Version vor der 1.0.0 abgeschlossen ist, wird im master auf die Version 1.0.0 gewechselt und den Branch der Benutzerverwaltung in den master gemerged (wie auch alle anderen Branches von Funktionen, die in der 1.0.0 landen sollen). Im master wird nun die 1.0.0 getestet, bis schliesslich die stabile Version 1.0.0 in den (neu angelegten) Branch für die 1.0.x-Versionen übernommen wird, und der entsprechende Tag hinzugefügt wird. Ists jetzt verständlicher? ;-)
Vom Entwicklungsmodell unterscheiden wir uns fast gar nicht. In meiner Grafik fehlen nur unsere eigenen Branches zur Entwicklung der Funktionen. Bei mir ist nur der Unstable-Teil dabei, der rein für die Übernahme von Patches gedacht ist, bevor die ebenso im Master landen können. Wenn jemand aus irgendwelchen Gründen (z.B. PHP-Version) noch nicht auf die nächste Version updaten kann, so ist in meinem Modell zumindest für einen gewissen Zeitraum noch die Pflege des älteren Zweiges vorgesehen. Nach einer Zeit würde dann der Support auslaufen. Wenn du nur den Master nimmst und keine Bugfixes für stabile ältere Versionen anbieten willst, geht das auch nach deiner Beschreibung. Wenn wir auch Firmen von Part-DB überzeugen wollen, müssen wir deren längere Laufzeiten von Softwarepaketen bedenken. Den 0.3.x wegen dem Release einer 0.4.0 fallen zu lassen, wäre einfacher, aber meist ein Ausschlusskriterium. Gute IT-Abteilungen testen neue Releases erst, bevor sie diese frei geben. Patches landen dafür meist schneller auf dem System.
Aber die Pflege des 0.3.x Branches ist ja weiterhin möglich, auch wenn im master und im 0.4.x Branch bereits an der 0.4.x gearbeitet wird (oder natürlich auch noch später). Der Branch für die 0.3.x bleibt ja stehen, auch wenn er grundsätzlich nicht mehr benötigt wird. Wenn nun später doch mal noch Bugfixes für die 0.3.x veröffentlicht werden sollen, übernimmt man einfach die entsprechenden Commits, die im master getätigt wurden, in den alten 0.3.x Branch und kann dort eine neue 0.3er Version freigeben. Meinst du mit deiner Grafik, dass es für jede 0.3.x Version einen separaten Branch geben soll? Also einen Branch für "0.3.0", "0.3.1", "0.3.2" usw? Dafür gibt es doch Tags, die machen die ganze Sache viel übersichtlicher. Einen "unstable" Branch ist damit auch nicht nötig, der 0.3.x-Branch an sich entwickelt sich von unstable zu stable, dann wird ein Tag gesetzt. Dann wird er wieder unstable, bis das nächste Tag gesetzt wird usw. Also so:
1 | -> unstable (Entwicklung) -> stable (v0.3.0) -> unstable (Entwicklung) -> stable (v0.3.1) -> usw. |
(wobei "unstable" hier nicht wirklich unstable ist, da die Bugfixes ja vorher im master getestet wurden)
Ich merke, ich muss wohl bei Git umlernen ;-) Nebenbei, hab mich auch mal bei Github angemeldet, um da endlich mal mitreden zu können.
Mein github-Account weinbauer73 (weinbauer@singollo.de) darf nicht auf den Branch filemanager schreiben :( Somit kann ich euch den aktuellen Stand der Integration nicht zur Verfügung stellen.
@Udo Hmm vielleicht hat K.J. dich noch nicht als Contributor eingetragen? Übrigens kannst du in den GitHub Einstellungen deine gmail-Adresse, die du bei SVN verwendet hast, eintragen. Dann werden deine alten Commits auch deinem Benutzerkonto zugeordnet. Leider habe ich keinen Zugriff mehr auf meine gmx-Adresse, die ich bei SVN mal verwendet habe...diese Commits können jetzt halt nicht mehr meinem Benutzerkonto zugeordnet werden ;-) Übrigens, falls Ihr das noch nicht kennt: Man kann in Github den öffentlichen Schlüssel eines eigenen SSH Schlüsselpaares hinterlegen, und das Repository über SSH runterladen. Danach kann man dauerhaft ins Repository schreiben, ohne jedesmal ein Passwort eingeben zu müssen. Das macht die ganze Sache relativ komfortabel :-) Ausserdem habe ich mal eine neue Doxygen Seite geschrieben, die kurz beschreibt wie wir mit den Branches usw. umgehen. Dazu habe ich noch eine Grafik gemacht, die sollte es etwas deutlicher darstellen: https://github.com/sandboxgangster/Part-DB/raw/master/development/doxygen/img/vcs_flow.png Auch gut zu wissen ist, dass man in den Commit-Mitteilungen Verweise auf GitHub Issues machen kann. Steht alles in der neuen Doxygen Seite.
Das mit dem SSH-Key habe ich schon gefunden und aktiviert :-) Das andere war mir bisher nicht bekannt. Aber einfach mal abwarten.
hab dich eingetragen mir fehlte dein benutzername aber jetzt bist drinnen
Schade, auf dem Webpack XL von Hosteurope läuft es nicht, da dort die InnoDB nicht installiert ist. :-( Wäre ja auch zu schön gewesen ...
a. b. schrieb: > Schade, auf dem Webpack XL von Hosteurope läuft es nicht, da dort die > InnoDB nicht installiert ist. :-( Hmm wenn das so ist, ist das natürlich sehr schade. Allerdings lohnt es sich wirklich, InnoDB einzusetzen, denn durch die Unterstützung von Fremdschlüsseln und Transaktionen wird die Datensicherheit sehr stark erhöht. Vor allem dass man fehlgeschlagene, umfangreiche Transaktionen einfach wieder rückgängig machen kann, ist extrem hilfreich und kann einen haufen Ärger ersparen. Daher meine Empfehlung: Such dir einen Anbieter mit InnoDB, es lohnt sich wirklich :-)
Da ich eh etwas "mehr" brauchte, habe ich jetzt für zusätzlich 5 Euro auf Webserver "L" "ge-updated", dort ist InnoDb vorhanden. Bei den reinen Webpacks scheint das wohl zu viel Performance zu brauchen. Na hoffentlich erfüllen sich damit meine Erwartungen an des Prg :-)
Hallo Zuerst einmal ein Lob für die super Software Ich verwende Zuhause auf einem WAMP Server PartDB in der Version 2.2 mit der DB Version 11. Bin auch sehr zufrieden damit. Da ich den Server umgestellt habe würde ich gerne auch PartDB in der neuesten Version verwenden. Kann ich von Version 2.2 auf die neueste Version updaten oder nicht. Wenn ja gibts eine Anleitung Gruß Christoph
Hi, hat schonmal jemand versucht Part-DB mit Altium Designer zu verwenden? Wenn das klappt, könnte man alle Bauteile direkt aus Altium Designer in der Datenbank anlegen lassen und die Bauteile in der DB dann auch verwenden um neue Platinen zu designen. Weiss jemand ob das klappt? Gruß Matthias
:
Bearbeitet durch User
Hallo zusammen, Christoph B. schrieb: > Kann ich von Version 2.2 auf die neueste > Version updaten oder nicht. Wenn ja gibts eine Anleitung Einfach Dateien überschreiben. Vorher sicherheitshalber unbedingt ein Backup des gesamten Systems (Dateien und Datenbank) anlegen. Siehe auch hier: http://www.partdb.grautier.com/svn/documentation/dokuwiki/doku.php?id=installation Matthias Fechner schrieb: > hat schonmal jemand versucht Part-DB mit Altium Designer zu verwenden? Ich kenne den Altium Designer nicht, aber ich schätze mal es gibt zwei Varianten: - Jemand programmiert ein Plugin für den Altium Designer (falls das überhaupt möglich ist?) - Es gibt ein Export-Tool im Altium Designer, um XML oder CSV Dateien zu erstellen, die dann in Part-DB importiert werden können. Ist dann aber mehr halbautomatisch als vollautomatisch... Aber vielleicht hat ja hier jemand Erfahrung mit dem Altium Designer und kann weiterhelfen ;-) mfg
:
Bearbeitet durch User
so habe das Update gemacht. Leider scheint etwas schief gelaufen zu sein
Auf dem Screenshot kann ich keinen Fehler entdecken. Das rot hervorgehobene Kästchen sagt ganz klar aus, dass die Mindestmenge von 2 Stück unterschritten wurde.
:
Bearbeitet durch User
ganz links. Irgendwie 2 Links übereinander. Einer geht einer nicht. Es scheint etwas mit den Footprints nicht zu stimmen. The requested URL /partdb/IC_DPAK-369C was not found on this server.
Er meint wohl eher die fehlenden Bilder ;-) Beim ersten Aufruf nach dem Update sollte der folgende Hinweis eingeblendet worden sein:
1 | Bitte verschieben Sie die folgenden Dateien und Ordner ins Verzeichnis "data": |
2 | "config.php" --> "data/config.php" |
3 | "backup/" --> "data/backup/" |
4 | "media/" --> "data/media/" |
5 | "log/" --> "data/log/" |
6 | |
7 | WICHTIG: |
8 | Kopieren Sie jeweils nur den Inhalt der genannten Ordner, nicht den ganzen Ordner an sich! |
9 | Die Zielordner enthalten bereits (teilweise versteckte) Dateien, die auf keinen Fall überschrieben werden dürfen! |
10 | Kopieren Sie also nur den Inhalt dieser Ordner und löschen Sie danach die alten, leeren Ordner im Hauptverzeichnis. |
Einfach die Anweisungen befolgen, und das Problem sollte behoben sein. EDIT: Ups, das was ich eigentlich erwähnen wollte, steht in dieser Meldung ja gar nicht drin...Und zwar wurden die hochgeladenen Bilder bei der 0.2.2 nach img/ hochgeladen. Diese müssen jetzt nach data/media/ verschoben werden. Ich könnte schwören, diese Meldung hätte auch mal eingeblendet werden müssen, aber ich kann sie grad nicht finden^^
:
Bearbeitet durch User
es kam nur folgende Meldung Bitte verschieben Sie die folgenden Dateien und Ordner ins Verzeichnis "config.php" --> "data/config.php" WICHTIG: Kopieren Sie jeweils nur den Inhalt der genannten Ordner, nicht den ganzen Ordner an sich! Die Zielordner enthalten bereits (teilweise versteckte) Dateien, die auf keinen Fall überschrieben werden dürfen! Kopieren Sie also nur den Inhalt dieser Ordner und löschen Sie danach die alten, leeren Ordner im Hauptverzeichnis. in img/ sind aber nur 4 Bilder. Ich habe nie Eigene Bilder hochgeladen. Nur die Standart Footprints verwendet
:
Bearbeitet durch User
habs gefunden:
1 | ACHTUNG: Für hochgeladene Bilder und andere Dateien gibt es jetzt das Verzeichnis "media" im Unterverzeichnis "data". Falls Sie bereits eigene Dateien im Verzeichnis "img" haben (was für hochgeladene Bilder bisher der Zielordner war), müssen Sie diese nun von Hand in der Ordner "data/media/" verschieben! Achten Sie darauf, dass die versteckte Datei "data/media/.htaccess" nicht gelöscht wird, diese ist wichtig für den sicheren Betrieb von Part-DB. Die Dateipfade werden beim folgenden Datenbankupdate automatisch angepasst. |
Kann es sein, dass du die alte config.php nicht weiterverwendet hast und stattdessen eine neue config.php erzeugen lassen hast? Dann weiss der Update-Mechanismus leider nicht dass du von der 0.2.2 upgedatet hast (er meint dann, es sei eine frische Installation der 0.3.0) und darum wird dieser Hinweis dann nicht angezeigt.
Hast recht Urban, sieht nach den fehlenden Bildern aus. Durch die Überlagerung und noch in der gleichen Farbe erkennt man das nicht auf Anhieb. Man könnte diesen "Fehler" in einer 0.3.1 korrigieren, in dem man prüft, ob die Grafik gefunden wird oder nicht. Nur wenn sie da ist, wird im Template die Grafik aktiv.
Christoph B. schrieb: > Ich habe nie Eigene Bilder hochgeladen. Nur die Standart Footprints > verwendet Ach so, dann stimmen vermutlich einige Pfade bei den Footprints nicht mehr. Dann müsste auf der Startseite eine entsprechende Warnung stehen und wie man dies beheben kann.
nein ich habe alle Dateien bis auf die config.php gelöscht.Die neuen Dateien von Version 3.0 in das Verzeichnis kopiert. Dann kam die Meldung das ich die Config Datei Verschieben soll. Es fehlen aber alle Bilder der Footprints Wenn ich unter Verwaltung Tools Bearbeiten / Footprints anklicke kommt nichts. Unter Verwaltung / Tools Tools Footprints zeigt er alle Footprints an.
:
Bearbeitet durch User
Unter Bearbeiten/Footprints werden doch die Footprints mit defekten Pfaden unter "Footprints mit fehlerhaften Dateinamen" aufgelistet oder? Dort musst du nur noch auf den Button "nur die markierten" klicken, dann sollte schonmal der grösste Teil davon "repariert" worden sein. Dann kannst du noch die restlichen Dateipfade mit den Dropdown-Menüs auswählen und mit dem Button "Alle" übernehmen. Dann sollte alles wieder im Butter sein. Das Problem war eben, dass bei der 0.2.2 anfangs alle Footprint Bilder im gleichen Ordner lagen (ohne Hierarchie). Das hat sich später aber geändert (wegen besserer Übersichtlichkeit), daher stimmen die alten Pfade jetzt nicht mehr. Unter anderem auch deshalb habe ich dieses Tool gebaut, damit man die alten Pfade ganz bequem korrigieren lassen kann. Ich glaube, dieses Problem trat nur bei der ganz alten 0.2.2er Version auf, die SVN-0.2.2er hatte das glaube ich nicht mehr... War das das Problem?
:
Bearbeitet durch User
nein unter Bearbeiten/Footprints ladet der Browser ca 20sec dann ist die Seite weiß.
Christoph B. schrieb: > nein unter Bearbeiten/Footprints ladet der Browser ca 20sec dann ist die > Seite weiß. OK ich glaube es ist wirklich genau das von mir genannte Problem. Wenn bei sehr vielen Footprints die Dateipfade zu den Bildern ungültig sind, kann das Laden dieser Seite ziemlich lange dauern, weil für jeden einzelnen Footprint das Verzeichnis "img" rekursiv durchsucht wird. Bei dir scheint dann wohl das PHP Skript abzubrechen weil es zu lange dauert. Vermutlich wäre es nicht schlecht wenn wir hier ein Limit einbauen würden, so dass z.B. maximal 20 defekte Footprints angezeigt werden, damit sich die PHP Laufzeit in Grenzen hält. Das wär wohl was für die Version 0.3.1... Das Beste wäre für dich, wenn du die PHP Einstellung für "max_execution_time" erhöhst, damit nicht nach so kurzer Zeit schon abgebrochen wird. Dann müsste es klappen. EDIT: Ich habe dazu schonmal ein Issue erstellt: https://github.com/sandboxgangster/Part-DB/issues/25
:
Bearbeitet durch User
so die meisten Bilder gehen nun. ;-) Habe nur noch ein Problem mit z.B IC_SOT23-6 Import → IC_SOT23-8 IC_SOT23-8 (0) Dateiname löschen und später selber von Hand setzen. Ich kann da nichts auswählen. Dazu kommt noch das bestimmte Footprints immer wieder in der Liste auftauchen.
Christoph B. schrieb: > Habe nur noch ein Problem mit z.B IC_SOT23-6 > > Import → IC_SOT23-8 IC_SOT23-8 (0) Dateiname löschen und später > selber von Hand setzen. Es gibt keine Vorschläge, weil es kein Bild mit "IC_SOT23-8" im Dateinamen gibt. Ein "IC_SOT23-6" gibts aber, also kannst du zuerst den Dateinamen von "8" auf "6" ändern, danach sollte das entsprechende Bild gefunden werden. Christoph B. schrieb: > Dazu kommt noch das bestimmte Footprints > immer wieder in der Liste auftauchen. Wenn du auf "nur die markierten" klickst, werden nur diejenigen Footprints markiert, bei denen die Checkbox ganz links aktiviert ist. Wenn du auf "alle" klickst, sollten alle Footprints aus der Liste entfernt werden (wobei bei einigen dann aber der Bilder-Pfad gelöscht wird, weil kein passendes Bild gefunden wurde).
schon klar nur wieso taucht z.B DSUB-25M immer wieder auf. Auch wenn ich auf "nur die markierten" klicke. Auserdem ist jeder dieser Problemfälle doppelt vorhanden
:
Bearbeitet durch User
Also ich verstehe nicht was genau dein Problem ist. Kurze, schmerzlose Frage: Wenn du auf den Button "alle" klickst, werden dann trotzdem wieder Footprints mit fehlerhaften Dateinamen aufgelistet, oder wird dann diese Liste nicht mehr angezeigt? Ein Backup deiner Datenbank von der 0.2.2 hast du hoffentlich gemacht, damit man alles wieder rückgängig machen könnte. Christoph B. schrieb: > Auserdem ist jeder dieser Problemfälle doppelt vorhanden Nicht alle, die unteren sind nur einmal vorhanden. Kann es nicht sein, dass die doppelten Footprints schon vorher doppelt vorhanden waren? Du darfst mir auch gerne deine Datenbank von der Version 0.2.2 per Mail schicken oder hier im Forum posten, dann schaue ich mir das mal an. Einfach einen Export der kompletten Datenbank (Struktur + Daten) in eine *.sql Datei machen, z.B. in phpMyAdmin. Und bitte NICHT von der aktuellen Datenbank, sondern der Stand der Datenbank VOR dem Update auf die 0.3.0. mfg
:
Bearbeitet durch User
Hier die DB in Version 0.2.2 Habe "Alle" ausgewählt. Trotzdem kommen sie immer wieder.
:
Bearbeitet durch User
Ok alles klar, ich konnte das Problem nachvollziehen und habe den Fehler gefunden. Da du extrem viele Footprints hast (knapp 900), und all deren Dateinamen zu den Bildern angepasst werden müssen, wird die Liste extrem lang. Das hat zur Folge, dass durch den Klick auf einen der Buttons zum Absenden, eine riesige Menge an Daten per POST übermittelt werden. Der Server begrenzt jedoch die Grösse, wie auch die Anzahl dieser POST Variablen. Die Grösse wird mit der PHP Einstellung "post_max_size", und die Anzahl der Variablen per "max_input_vars" begrenzt. Vor allem zweiteres dürfte den Flaschenhals darstellen. Durch diese Begrenzung wird leider die Information, dass ein Button gedrückt wurde, abgeschnitten und dadurch lädt die Seite einfach wieder alle Footprints. Nach dem Hochschrauben dieser Einstellungen funktioniert alles korrekt, die Liste der Footprints mit fehlerhaften Dateinamen wird kürzer. Einziges Problem sind jetzt nur noch die doppelten Footprints, die bereits vor dem Update auf die 0.3.3 vorhanden waren (man sieht es in deinem Datenbank-Export). Gleichnamige Footprints auf gleicher Hierarchieebene sind ab der 0.3.3 nicht mehr erlaubt, weshalb es bei den doppelten Footprints zu Fehlermeldungen führt. Du must zuerst die doppelten Footprints löschen, danach kannst du deren Dateipfade auch noch korrigieren lassen. Ich würde dir jetzt also folgendes Vorgehen empfehlen: - PHP Einstellungen "post_max_size" und "max_input_vars" hochschrauben - Unter Bearbeiten/Footprints auf Button "nur die markierten" - Die Fehlermeldungen wegen der Duplikate in einen Texteditor kopieren - (Jetzt ist die Liste schon viel kürzer, die Seite lädt schneller) - Dann anhand der Fehlerliste alle doppelten Footprints einzeln löschen - Jetzt die restlichen Dateinamen korrigieren mit "nur die markierten" - Nun die Pfade der übriggebliebenen Footprints von Hand korrigieren - fertig
:
Bearbeitet durch User
Danke nun Funktioniert alles ;-). Es lag an "max_input_vars". Nun habe ich noch den die "Doppelgänger" in der Datenbank gelöscht. Jetzt läuft Version 3.0 ohne Probleme. Danke nochmals für die Hilfe.
Christoph B. schrieb: > Jetzt läuft Version 3.0 ohne Probleme. Wunderbar :-) > Danke nochmals für die Hilfe. Kein Problem :-) Wir werden dann wohl einen Bugfix mit der Version 0.3.1 rausgeben damit nicht noch mehr Leute dieses Problem haben.
Bin per Web-Suche auf Eure Softwareprojekt gestossen. Mit der Installation usw. hat alles sehr gut geklappt. Habe nun aber ein paar Fragen. 1. Gibt es eine Möglichkeit ein "Master"-Artikel anzulegen den man dann nur verändern muss? z.B bei den Widerständen muss ich jeden einzelnen Wert anlegen und die Einkaufdaten usw. hinterlegen. Mit einem Masterartikel wären die Daten hinterlegt und man müsste nur noch den Wert und den Lagerort anpassen. Habe ich was übersehen oder mache ich es einfach Falsch? 2. Bei den Baugruppen, ist es dort möglich auch Dateien zur Baugruppe abzulegen? z.B. Schaltungs- und Board-Files usw.? Habe dazu nichts gefunden.
ncc1701 schrieb: > 1. Gibt es eine Möglichkeit ein "Master"-Artikel anzulegen den man dann > nur verändern muss? > z.B bei den Widerständen muss ich jeden einzelnen Wert anlegen und die > Einkaufdaten usw. hinterlegen. Nein, sowas gibt es nicht. Wenn du aber einen Artikel anlegst und dann ganz unten auf den Button "Neues Bauteil erfassen" klickst, wird das soeben angelegte Bauteil als Vorlage genommen. Du brauchst dann nur noch kleine Anpassungen zu machen für das neue Bauteil. ncc1701 schrieb: > 2. Bei den Baugruppen, ist es dort möglich auch Dateien zur Baugruppe > abzulegen? z.B. Schaltungs- und Board-Files usw.? > Habe dazu nichts gefunden. Das ist zumindest schonmal geplant: https://github.com/sandboxgangster/Part-DB/issues/4
Urban B. schrieb: > ncc1701 schrieb: >> 1. Gibt es eine Möglichkeit ein "Master"-Artikel anzulegen den man dann >> nur verändern muss? >> z.B bei den Widerständen muss ich jeden einzelnen Wert anlegen und die >> Einkaufdaten usw. hinterlegen. > > Nein, sowas gibt es nicht. Wenn du aber einen Artikel anlegst und dann > ganz unten auf den Button "Neues Bauteil erfassen" klickst, wird das > soeben angelegte Bauteil als Vorlage genommen. Du brauchst dann nur noch > kleine Anpassungen zu machen für das neue Bauteil. So habe ich es gemacht, nur beim Anlegen von xx Widerständen ist es mühsam jedes mal auch die Lieferanten-Daten neu einzugeben. Hatte gedacht vielleicht gibt es einen einfacheren Weg. > ncc1701 schrieb: >> 2. Bei den Baugruppen, ist es dort möglich auch Dateien zur Baugruppe >> abzulegen? z.B. Schaltungs- und Board-Files usw.? >> Habe dazu nichts gefunden. > > Das ist zumindest schonmal geplant: > https://github.com/sandboxgangster/Part-DB/issues/4 Ok, dann warte ich bis das soweit ist :-)
Ich habe von der Version 0.21 auf die 0.3 aktualisiert und war sehr angetan von der guten Benutzerführung (config.php verschieben, Verzeichnisse, Rechte, Datenbankupdate). Toll gemacht! (Bei DB update bin ich etwas erschrocken als lauter rote SQL Zeilen ausgegeben wurden. Könnte man nur Fehler rot ausgeben und den Rest schwarz?) Einen Fehler habe ich nach dem update noch: Die Pfade zu den Anschlusszeichnungen sind falsch: The requested URL /Part-DB/IC_SO08 was not found on this server. Die Bilder werden also direkt im Heimatverzeichniss von part-db gesucht. Ein feines Werk die Part-DB! Axel
Erstmal Danke für das Lob :-) Die Idee mit den anders farbig dargestellten Datenbank-Update ist eine gute Idee. Alle erfolgreichen SQL-Statements sollten in Grün, alle fehlgeschlagenen in Rot erscheinen. Eventuell wäre noch eine gekürzte Ausgabe möglich und über eine Detailan sicht sieht man alle Schritte.
Axel Gartner schrieb: > Einen Fehler habe ich nach dem update noch: Die Pfade zu den > Anschlusszeichnungen sind falsch: > The requested URL /Part-DB/IC_SO08 was not found on this server. > Die Bilder werden also direkt im Heimatverzeichniss von part-db gesucht. Du sprichst schon von den Footprint Bildern, oder? Wird auf der Startseite von Part-DB nicht eine Warnung eingeblendet, dass es fehlerhafte Dateipfade gibt? Es ist normal, dass nach dem Update auf 0.3.0 erstmal die Footprint Bilder nicht mehr gefunden werden, weil die Bilder nun an einem anderen Ort abgelegt sind. Dann wird auf der Startseite ein Hinweis eingeblendet, mit einem Hinweis wie man das Problem behebt. Allerdings erscheint mir die URL "/Part-DB/IC_SO08" schon etwas komisch, ich denke da stimmt noch was anderes nicht. Falls das mit dem automatischen Korrigieren der Dateinamen nicht funktioniert, könnte man notfalls auch direkt in der Datenbank die Pfade anpassen lassen (search & replace). Der Pfad muss korrekterweise etwa so aussehen "%BASE%/img/footprints/foo.png" (%BASE% muss so eingetragen werden, ist ein Platzhalter für das Basisverzeichnis von Part-DB) mfg
:
Bearbeitet durch User
Urban B. schrieb: >> Axel Gartner schrieb: >> Einen Fehler habe ich nach dem update noch: Die Pfade zu den >> Anschlusszeichnungen sind falsch: > Du sprichst schon von den Footprint Bildern, oder? Wird auf der > Startseite von Part-DB nicht eine Warnung eingeblendet, dass es > fehlerhafte Dateipfade gibt? Danke, das war mir leider nicht aufgefallen. Das Umstellen ging problemlos vonstatten. Wirklich gut gemacht! Für einen Hallsensor TLE4905L (http://www.alldatasheet.com/view.jsp?Searchword=TLE4905L) suche ich noch nach dem Footprint. Im Datenblatt heißt das Gehäuse P-SSO-3-2 aber ich finde nichts dergleichen. Axel
Axel Gartner schrieb: > Danke, das war mir leider nicht aufgefallen. Das Umstellen ging > problemlos vonstatten. OK kein Problem, bist nicht der Erste der das übersehen hat :-) Ist bestimmt noch Potential vorhanden, solche Meldungen etwas auffälliger zu gestalten...;-) > Wirklich gut gemacht! Danke :-) Axel Gartner schrieb: > Für einen Hallsensor TLE4905L suche ich noch nach dem Footprint. > Im Datenblatt heißt das Gehäuse P-SSO-3-2 aber ich finde nichts > dergleichen. Die verfügbaren Footprint Bilder haben keinen Anspruch auf Vollständigkeit, es gibt durchaus Footprints von denen wir (noch) keine Bilder haben. Du kannst aber unter Bearbeiten -> Footprints trotzdem einen Footprint mit dem Namen "P-SSO-3-2" anlegen, dann hat es einfach kein Bild. Footprints müssen nicht zwingend auch ein Bild haben. Primär geht es darum, den Bauteilen Footprints zuweisen zu können, ein entsprechendes Bild zu hinterlegen ist nur optional. Du kannst aber auch selbst ein Bild auf den Server hochladen und dann bei einem Footprint den Pfad des Bildes hinterlegen. Momentan ist das noch etwas mühsam, später kommt ein Upload-Manager hinzu um die ganze Sache zu vereinfachen. mfg
:
Bearbeitet durch User
Ich hatte heute mal die V 0.3 neu aufgesetzt. Leider habe ich nun das Problem dass auf der linken Seite keine Menüs funktionieren. An was könnte dies liegen? Danke Juergen
Problem hat sich erledigt. Lag wohl an einer zu alten PHP Version. Mit PHP 5.4 geht es nun.
So, ich habe mal die Version 0.3.1 vorbereitet, liegt im Branch "Part-DB-0.3.x" bereit. Muss aber noch getestet werden. Was sich seit der 0.3.0 verändert hat, steht im Changelog: https://raw.github.com/sandboxgangster/Part-DB/Part-DB-0.3.x/readme/changelog.txt Es ist zwar nicht viel, doch vor allem der Bug mit den falsch gelesenen Dateirechten ist nicht gerade harmlos. Ich weiss zwar nicht wie viele Leute es betrifft (gemeldet hat sich nur einer), aber diejenigen die es betrifft, werden Part-DB wegen diesem Bug nicht installieren können. Daher wäre es vermutlich angebracht, die 0.3.1 bald mal zu veröffentlichen. Übrigens habt ihr vielleicht ja schon gemerkt dass ich in letzter Zeit nicht sehr aktiv an Part-DB weiterentwickle. Das liegt daran, dass ich vor ein paar Wochen die Studienarbeit begonnen habe, und die nimmt relativ viel zusätzliche Zeit in Anspruch...Und nächstes Semester geht es dann gleich mit der Bachelorarbeit weiter ;-) Viel Neues werde ich also vermutlich in dieser Zeit leider nicht programmieren können. Für Bugfixes und keinere Anpassungen sollte es aber eigentlich immer reichen... mfg
:
Bearbeitet durch User
Tachmal... Nachdem ich die partdb dazu gebracht habe mir das modifikations Datum anzuzeigen, (http://wiki.senseye.org/index.php/Datei:Last_modified.png) würde ich noch gerne bei der Suche die letzten veränderten Einträge sehen können. Ich stricke gerade an der show_search_parts.php herum. Soweit auchnoch verständlich. Aber irgendwie/wo um Zeile 1633 in der class.Part.php ist wohl noch ein Fehler drinnen...von mir ;)... Ich bekomms einfach nicht zum laufen. Ich habe einfach ein Auswahlkästchen bei der Suche hinzugefügt, so kann ich einfach das Datum eintragen nach dem gesucht wird. Hier noch ein kl. Beispiel. (http://wiki.senseye.org/images/8/8b/Gdfgdfgdf.png) Schreibe ich bei Zeile 1644 statt parts.name um auf parts.last_modified funktioniert das ganze soweit auch. Wie kann ich nun parts.last_modified über einen eigenen "Schalter" ausgeben? Bin über sämtliche Erklärungen dankbar. Hihi...Das wird mir langsam zu komplizert. Vorallem muss man mal LEFT JOIN verstehen. Man o Man... ;) Vielen Dank!! PS: - Bin auf SVN 699 und konnte eigentlich so keine groben Fehler feststellen. Feine Sache.. Gefällt mir. - Meine Notizen zur Partdb.. http://wiki.senseye.org/index.php/Partdb Vielleicht kann es ja noch wer brauchen.
:
Bearbeitet durch User
Hallo Christopher, So richtig habe ich dein Problem noch nicht verstanden... Christopher K. schrieb: > Schreibe ich bei Zeile 1644 statt parts.name um auf parts.last_modified > funktioniert das ganze soweit auch. Auf Zeile 1644 in der class.Part-php in deinem Wiki sehe ich nur eine geschweifte Klammer ;-) Poste doch mal all deine veränderten Dateien hier im Forum (als Anhang), damit man sie runterladen und einen gescheiten Vergleich machen kann. Christopher K. schrieb: > Wie kann ich nun parts.last_modified über einen eigenen "Schalter" > ausgeben? Kannst du diese Frage und das Wort "Schalter" noch etwas genauer spezifizieren? :-) Christopher K. schrieb: > Bin auf SVN 699 Das war die letzte SVN Version. Hast du mitbekommen dass wir jetzt auf Github sind? https://github.com/sandboxgangster/Part-DB mfg
:
Bearbeitet durch User
Hallo.. Bin glaub ich selbst schon leicht verwirrt, vielleicht klappts ja nun etwas besser.. Haha. Das mit Github hab ich mitbekommen, habe aber von hier aus leider keinen Zugriff drauf. Muss ich zuhause testen. - Schalter sollte Checkbox heißen. :) - Wie auf Bild (bsp-1.png) zu sehen habe ich es geschafft nach dem Datum zu suchen. Soweit schon ganz gut. Ich würde aber gerne meine Checkbox "Datum" dazu verwenden und nicht die Checkbox "Name". - Die Checkbox selbst war ja nur eine kleine Änderung in der vlib_navigation.tmpl. - In der show_search_parts.php habe ich die Variable $search_last_modified hinzugefügt. - In der class.Part.php habe ich mich ab Zeile 1607 versucht. Bei Zeile 1661, stammt der if block von mir.. "$query .= ' OR (parts.last_modified LIKE ?)';" Ändere ich nun "if ($part_name)" zu "if ($part_last_modified)" hat es keine Funktion mehr und ich weiß nicht wie ich diesen if Block dann verwenden kann. Danke für deine Bemühungen. schöne Grüße aus Wien PS. In meinem Wiki habe ich nur getestet Sachen eingetragen, Merke mir das ja selbst nicht. g Hat also jetzt nicht direkt was mit dem Problem zu tuhen. Wollte es aber anderen nicht vorenthalten.
:
Bearbeitet durch User
OK jetzt ist das Problem klarer geworden... Deine Änderungen sehen nicht schlecht aus, allerdings hat es noch folgende Fehler drin: Zeile 25 von vlib_navigation.tmpl muss geändert werden in
1 | <p><input type="checkbox" name="search_last_modified" value="true">Datum</p> |
Durch das unvollständige name="search_" wurde vorher in der show_search_part.php die Variable $search_last_modified gar nie gesetzt. Dann ist das nächste Problem, dass du in der class.Part.php bei der Funktion search_parts() der parameter $part_last_modified mitten in der bereits vorhandenen Parameterliste eingefügt hast. In der show_search_parts.php hast du den neuen Parameter allerdings am Schluss eingebaut (Zeilen 152 und 194), das gibt ein Durcheinander der Parameterwerte. Beim späteren hinzufügen von neuen Parametern, ist es immer am besten wenn man diese am Ende der Parameterliste hinzufügt. Ausserdem hast du den defaultwert für den neuen Parameter auf "true" gesetzt, das würde ich nicht machen. Das hat nur einen Einfluss, wenn die Funktion aufgerufen wird, ohne diesen Parameter zu übergeben. Das ist aber in show_search_parts.php nicht der Fall. Wenn du möchtest, dass standardmässig (ohne das manuelle anwählen der Checkbox "Datum") auch nach Dem Datum gesucht werden soll, dann machst du das besser in der vlib_navigation.tmpl mit dem "value" Attribut, das du ja bereits auf "true" hast. Heisst, deine class.Part.php müsste ab Zeile 1607 so aussehen:
1 | public static function search_parts(&$database, &$current_user, &$log, $keyword, $group_by = '', |
2 | $part_name = true, |
3 | $part_description = true, |
4 | $part_comment = false, |
5 | $footprint_name = false, |
6 | $category_name = false, |
7 | $storelocation_name = false, |
8 | $supplier_name = false, |
9 | $supplierpartnr = false, |
10 | $manufacturer_name = false, |
11 | $part_last_modified = false) // NEU |
Und dann kommt eine neue if-Abfrage hinzu:
1 | if ($part_last_modified) |
2 | { |
3 | $query .= ' OR (parts.last_modified LIKE ?)'; |
4 | $values[] = $keyword; |
5 | } |
So müsste es funktionieren wenn ich nichts vergessen habe. Kann es hier leider gerade nicht testen... mfg
:
Bearbeitet durch User
Hallo, Danke Dir,... da war ich ja gar nicht so falsch mit dem ganzen. Ein paar doofe Fehler die eigentlich nicht passieren sollten wie in der vlib_navigation.tmpl. Ahrg dachte dort wäre es richtig eingetragen. Das mit der Parameterliste wusste ich nicht, dachte die Reihenfolge ist egal. Habe jetzt nachgebessert und siehe.. Es funktioniert super. Ich werde es nun mal testen. Die veränderten Dateien habe ich nochmals im Anhang beigefügt. Und lass dich nicht zu sehr von deiner Studienarbeit ablenken. hahaha ;-) Viel Glück dabei. Grüße aus Wien PS: Ähm wie kann man den hier hochgeladene Files tauschen/löschen/ersetzen?
:
Bearbeitet durch User
Christopher K. schrieb: > Es funktioniert super. puuh...Glück gehabt :-) Christopher K. schrieb: > Und lass dich nicht zu sehr von deiner Studienarbeit ablenken. hahaha > ;-) > Viel Glück dabei. hehe vielen Dank :-) mfg
Hallo, Ich wollte das Programm mal testen und habe mir die Version 0.3.0 installiert. Nach dem Setup dreht hier die Firewall vom Server durch was treibt ihr denn da heimliches? Shorewall:fw2inet:REJECT:IN= OUT=eth0 SRC=a.b.c.d DST=173.194.112.99 PROTO=TCP SPT=41701 DPT=80 Shorewall:fw2inet:REJECT:IN= OUT=eth0 SRC=a.b.c.d DST=173.194.112.101 PROTO=TCP SPT=37977 DPT=80 Shorewall:fw2inet:REJECT:IN= OUT=eth0 SRC=a.b.c.d DST=173.194.112.105 PROTO=TCP SPT=50352 DPT=80 Shorewall:fw2inet:REJECT:IN= OUT=eth0 SRC=a.b.c.d DST=173.194.112.104 PROTO=TCP SPT=46555 DPT=80 Shorewall:fw2inet:REJECT:IN= OUT=eth0 SRC=a.b.c.d DST=173.194.112.110 PROTO=TCP SPT=45544 DPT=80 Shorewall:fw2inet:REJECT:IN= OUT=eth0 SRC=a.b.c.d DST=173.194.112.96 PROTO=TCP SPT=48875 DPT=80 Shorewall:fw2inet:REJECT:IN= OUT=eth0 SRC=a.b.c.d DST=173.194.112.98 PROTO=TCP SPT=57684 DPT=80 Shorewall:fw2inet:REJECT:IN= OUT=eth0 SRC=a.b.c.d DST=173.194.112.100 PROTO=TCP SPT=49575 DPT=80 Shorewall:fw2inet:REJECT:IN= OUT=eth0 SRC=a.b.c.d DST=173.194.112.97 PROTO=TCP SPT=40202 DPT=80 Shorewall:fw2inet:REJECT:IN= OUT=eth0 SRC=a.b.c.d DST=173.194.112.102 PROTO=TCP SPT=48079 DPT=80 Shorewall:fw2inet:REJECT:IN= OUT=eth0 SRC=a.b.c.d DST=173.194.112.103 PROTO=TCP SPT=32772 DPT=80 Braucht man das? Gruß Tim
Hallo Tim, Tim W. schrieb: > was treibt ihr denn da heimliches? Heimlich ist da erstmal gar nichts, sonst wäre die GPL wohl nicht die richtige Lizenz für Part-DB ;-) Das einzige, wozu Part-DB Internetzugang braucht, ist der RSS-Feed auf der Startseite, um dem Anwender die neusten Releases von Part-DB anzuzeigen. Der Feed wird von unserer Projektseite auf Google Code geholt. Das bestätigen auch die von dir geposteten IP-Adressen, da diese zu Google führen. Ab dem nächsten Release wird übrigens Github anstelle von Google benutzt, da wir umgezogen sind. Tim W. schrieb: > Braucht man das? Wenn du den RSS-Feed auf der Startseite nicht brauchst, dann nicht. Lässt sich bequem auf der Konfigurationsseite deaktivieren ("Updateliste (RSS-Feed) auf Startseite verstecken"). mfg
:
Bearbeitet durch User
Hallo, Versteh ich das Issue Attribute für Bauteile auf github richtig: Können dann pro Kategorie Attribute hinzugefügt werden, die zum einen sichtbar oder verdeckt sind. Die Attribute können dann via Browser bearbeitet werden. Z.B kann ein Attribut Grösse bei der Kategorie A sein und bei der Kategorie B ist noch das zusätzliche Attribut Gewicht drin. Können diese dann durch Anklicken der Kategorien auch aufgelistet werden. Oder es kann nach diesem Attribut gesucht werden. Ist dann spezifische Suche wie, alle grösser als 5kg möglich. Gruss Christian
super sache, das Du das ganze Projekt weiterführst. Verwende schon seit langem part-db 0.1c. Bin damit sehr zufrieden, da ich aber gerade meinen Server neu aufbaue dacht ich ich könnte ja mal nach nem Update gucken ;) Hätte da mur die frage in wieweit ich meine "alte" Datenbank von v0.1c in die neuere 0.3+ zu überführen? Möcht halt ungern alle Teile wieder neu eingeben müssen... thnx Helmar
Hallo, Christian schrieb: > Versteh ich das Issue Attribute für Bauteile auf github richtig: [] Nun ja, so oder so ähnlich wäre es geplant. Allerdings geht es momentan nicht wirklich vorwärts mit Part-DB, es kann also noch sehr lange dauern bis so ein Feature eingebaut wird... helmar schrieb: > Hätte da mur die frage in wieweit ich meine "alte" Datenbank von v0.1c > in die neuere 0.3+ zu überführen? Möcht halt ungern alle Teile wieder > neu eingeben müssen... Das Update sollte grundsätzlich kein Problem sein. Ich kann dir jetzt gerade aber nicht mit Sicherheit sagen, ob ein direktes Update von 0.1c auf 0.3.0 möglich ist, da könnte es ev. Probleme geben (die 0.1c ist halt doch schon sehr alt). Wenn es nicht geht, dann versuch es mit der 0.2.2 als Zwischenschritt, also 0.1c -> 0.2.2 -> 0.3.0. Auf jeden Fall solltest du als alles Erstes ein Backup deiner momentanen DB machen, das sollte ja klar sein :-) mfg
:
Bearbeitet durch User
Hallo, Ist es mittlerweile möglich einen Export der Datenbank zu machen? Ich hab alles bei einen freehoster laufen, der bisher exzellent lief aber gerade eine Rundmail schrieb, dass er zum 15 März aufhört. Hat jemand eine Idee wie ich meine Daten da rausbekomme? Danke! Arne
Hast du keinen Webzugriff per phpMyAdmin? Damit kannst du ein Export deiner Datenbank machen.
Kenn mich mit Datenbanken leider gar nicht aus. Werde mit den zwei Sachen mal schauen ob ich's hinbekomme danke für Antworten! Gruß Arne
So ich wieder :) Konnte mit myPHPadmin wohl alles sichern (hoffe ich... konnte wiederherstellen noch nicht testen). Nun bräuchte ich wieder einen free Webspace Anbieter, auf dem ich die einfach laufen lassen kann. Mir ist nämlich aufgefallen das ich ca 70% von unterwegs im Programm war. Das Problem ist, dass ich schon viele durchprobiert habe, bei den meisten läuft nicht InnoDB was part-db wohl braucht und wenn es läuft haben die fix PHP 5.5xx installiert und man kann zu keiner anderen Version wechseln. Das hat das Problem das preg_replace() wohl nicht mehr genutzt werden kann und man wohl preg_replace_callback benutzen soll. Grenzt irgendwie an ein Wunder, dass als ich part-db nur mal eben testen wollte genau einen hatte, bei dem das alles ging! Zuhause mag ich nicht einen Rechner damit die ganze Zeit laufen lassen. Und extra einen Server anmieten ist dafür, auch wenn es ein tolles Programm ist, auch etwas übertrieben. Wenn jemand also einen Anbieter mit PHP < 5.5 auf den auch InnoDB läuft kennt bitte sagen! Dankeschön! Gruß Arne
:
Bearbeitet durch User
nachdem PHP 5.5 ja stabil ist, macht es da nicht mehr Sinn partdb hier entsprechend zu ändern, damit das mit PHP 5.5 auch funktioniert?
Arne M. schrieb: > Das hat das Problem das preg_replace() wohl nicht mehr > genutzt werden kann und man wohl preg_replace_callback benutzen soll. Also laut http://www.php.net/manual/de/function.preg-replace.php ist nur der /e Modifikator deprecated. Siehst du bei den Fehlermeldungen auch auf welche Datei/Zeile die sich beziehen? Die Funktion preg_replace() wird von Part-DB selbst nur wenig benutzt, aber im DokuWiki und dem vLib Template wird sie sehr häufig verwendet.
Was er mir anzeigt ist 3 x die Zeile Deprecated: preg_replace() [function.preg-replace]: The /e modifier is deprecated, use preg_replace_callback instead in /users/armut/www/part-db/lib/vlib/vlibTemplate.php on line 971 Danach kommt nichts mehr, nur diese 3 Zeilen Wenn PHP5.5 funktioniert wird ist es wahrscheinlich bald eh überall drauf sein, da wäre eine Portierung sehr gut! Habe jetzt part-db auf meinen Raspberry Pi am laufen. Da läuft alles wunderbar auch das einspielen der alten Datenbank ging problemlos. Allerdings wenn man mit den bastelt ist es mir öfters schon passiert, dass man am Ende alles neu installieren darf. Also jetzt dauernd backups machen :(
Könntest du mal versuchen in der genannten Datei lib/vlib/vlibTemplate.php die Zeilen 970/971:
1 | $regex.= '/ie'; |
2 | $data = preg_replace($regex,"\$this->_parseTag(array('\\0','\\1','\\2','\\3','\\4','\\5','\\6','\\7','\\8'));",$data); |
durch folgende drei Zeilen ersetzen:
1 | $regex.= '/i'; |
2 | $obj = $this; |
3 | $data = preg_replace_callback($regex, function($m) use($obj) {return $obj->_parseTag($m);}, $data); |
und probieren ob dann Part-DB mit PHP 5.5 läuft? Es gibt zwar noch andere Stellen, die man ersetzen müsste, vorerst sollte aber diese eine Zeile reichen wenn ich mich nicht irre. mfg
:
Bearbeitet durch User
Danke fuer die Hilfe hab es gleich mal getestet nun komm wieder 3 mal: Warning: preg_replace_callback() [function.preg-replace-callback]: Modifier /e cannot be used with replacement callback in /users/armut/www/part-db/lib/vlib/vlibTemplate.php on line 972 Gruß Arne
Arne M. schrieb: > Modifier /e cannot be used with replacement callback Hast du das "e" aus Zeile 970 entfernt wie oben beschrieben? Wenn es nicht klappt, setze ich mal einen Server mit PHP 5.5 auf um es selbst testen zu können...
Mit der geänderten Änderung scheint es jetzt zu laufen. Danke! Also im Moment erst mal ohne Daten, die muss ich dann da auch noch importieren! Aber soweit so gut :) Danke nochmal! Gruß Arne
Hi, ich habe gerade auf Guitarhub ein paar Verbesserungsvorschläge gepostet. Vielleicht kann das Projektteam ja mal darüber schauen. Ich überlege gerade, ggf. davon auch einiges selbst zu implementieren. gruß, sam
Hilfe können wir immer gut gebrauchen :-) Mit Github habe ich so meine Probleme, vielleicht verstehe ich das System dahinter auch nicht wirklich. Subversion war für mich einfacher. Zumindest habe ich in den letzten Monaten die Grundlage (den Javascript-Code) des neuen Filemanagers erweitert, aber noch nicht dort integriert und getestet. Ich brauche das ja auch für andere Projekte ;-) Ich stelle gerne die aktuelle Entwicklungsstufe zur Verfügung, wenn sich jemand darum kümmern möchte. Grüße Udo PS: Die Anmeldung über Google oder Facebook zeigen blöderweise verschiedene Namen an. :/
:
Bearbeitet durch User
Ich habe soeben mal den oben genannten Bugfix für PHP 5.5 hochgeladen, ich hoffe das passt so. Mit PHP 5.5 konnte ich es aber noch nicht testen, muss dazu erstmal einen Server aufsetzen. Wenn die aktuelle Version 0.3.1 getestet wurde, würde ich die dann mal veröffentlichen wenn niemand was dagegen hat :-) Udo Neist schrieb: > Mit Github habe ich so meine Probleme Mit Github oder mit Git? Ich verwende (unter Linux) übrigens das Grafische Git-Tool "SmartGit/HG", das kann ich sehr empfehlen, es macht vieles einfacher. Es gibt sogar direkte Unterstützung für Github mit ein paar netten Features, die ich aber selbst noch gar nicht getestet habe :-) mfg
Habe Part-DB soeben kurz auf PHP 5.5.3 getestet, scheint soweit zu funktionieren... Ausserdem gab es beim IE9 noch einen schlimmen Darstellungsfehler (wegen fehlerhaftem HTML), das sollte jetzt auch behoben sein.
Beim Löschen eines Bauteils erhalten ich der Version: 0.3.0 (stable) folgende Fehlermeldung:
1 | Das Bauteil "IDC 3924 N1" konnte nicht gelöscht werden! |
2 | Grund: Die Einkaufsinformationen konnten nicht gelöscht werden! |
3 | Grund: Datenbankfehler: |
4 | SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails (`usr_web483_4`.`parts`, CONSTRAINT `parts_order_orderdetails_id_fk` FOREIGN KEY (`order_orderdetails_id`) REFERENCES `orderdetails` (`id`)) |
5 | |
6 | SQL-Query: |
7 | DELETE FROM orderdetails WHERE id=? LIMIT 1 |
Gerald *. schrieb: > Beim Löschen eines Bauteils erhalten ich der Version: 0.3.0 (stable) > folgende Fehlermeldung: Stimmt, das ist ein Bug. Wird in der nächsten Version dann behoben sein. Der Bug tritt auf, wenn man eine Einkaufsinformation eines Bauteiles löscht, die unter "Zu bestellende Teile" mit den Radiobuttons selektiert ist. Oder eben auch wenn man gleich das ganze Bauteil löschen will. Als Workaround kann man unter "Zu bestellende Teile" beim betreffenden Bauteil die Radiobuttons auf "Noch nicht bestellen" setzen. Wenn das Bauteil nicht unter den zu bestellenden Bauteilen aufgelistet ist, muss man es zuerst zum bestellen vormerken, damit es in der Liste auftaucht. mfg
:
Bearbeitet durch User
Da ich gerade Zeit hatte, veröffentlichte ich soeben die Version 0.3.1. Der Bug beim Löschen von Bauteilen ist dort übrigens auch gleich enthalten. Installationsanleitung, Changelog und Download gibts hier: https://github.com/sandboxgangster/Part-DB/releases/tag/v0.3.1 Viel Spass! :-)
Urban B. schrieb: > Der Bug beim Löschen von Bauteilen ist dort übrigens auch gleich > enthalten. Da ist wohl was durcheinander geraten :-) Wollte damit sagen, dass der Bugfix enthalten, bzw. der Bug behoben ist :-)
Hallo, Erst mal vielen vielen Dank für die tolle Arbeit mit Part-db, Anfangs nutzte ich Partdb "nur" für meine Elektronische Bauteile, mittlerweile auch für mein Modellbau Equipment, gibt es eigentlich auch die Möglichkeit bei der Bestellnummer HTTP Links anzeigen zu lassen, ich meine so das wenn ich auf die Bestellnr klicke dann auch dort auf die Seite gelange, ansonsten hilft halt nur Copy & Paste. ich bestelle in letzter Zeit vermehrt im Ausland in verschiedenen Warenhäusern, bei manchen gibt es nicht einmal bestellnummern :) Gruß Martin
Hallo Martin, So eine Funktion gibt es bisher noch nicht, wollte das aber eigentlich schon lange mal einbauen. Vielleicht kann ich das sogar gleich mal noch machen, sollte kein grosser Aufwand sein. Habe es schonmal in unsere ToDo-Liste aufgenommen: https://github.com/sandboxgangster/Part-DB/issues/35 Bei Artikeln die keine Bestellnummer haben, würde das so zwar nicht funktionieren. Man müsste dazu noch eine Möglichkeit haben, den Link für jeden Artikel manuell einzugeben... mfg
Hallo, ich habe mir das Projekt auf den Server geladen und finde es bisher echt super. Mich würde interessieren, ob es so std. Footprints und Hersteller usw. schon fertig gibt? Ich habe gesehen, dass es diverse Hersteller Logos und andere img Dateien gibt, in der Datenbank steht allerdings nichts. Habe ich etwas beim installieren falsch gemacht oder gibts soetwas noch nicht von Werk aus? Gruß
Hallo Christian, Momentan gibt es leider noch keine automatisierte Möglichkeit, um die Datenbank mit den wichtigsten Footprints usw. zu befüllen. Eine solche Funktion ist zwar schon geplant und wurde teilweise auch begonnen, ist aber noch nicht fertig geworden... mfg
Hi, kurze Frage: Anscheinend bin ich zu blöd, aber wie lösche ich ein Bauteil? Die Schaltfläche: Bauteil hinzufügen gibt es ja, aber löschen finde ich nirgends... MfG * Edit: * Ja war zu blöd hab es gefunden^^
:
Bearbeitet durch User
Ich noch mal, ich habe mal eine kurze Frage: Ich "hacke" gerade etwas herrum (labeldrucker-Funktion implementieren). Dabei habe ich das Problem, das zur print_r($all_orderdetails); funktioniert und auch das Array richtig ausgibt, jedoch kann ich nicht auf die Bestell-Nr zugreifen, also echo $all_orderdetails->get_supplierpartnr(); geht nicht. Ich bin im show_part_info.php Mach ich was falsch? Edit Ich weiß zwar immer noch nichts was dran falsch ist, immerhin steht in class orderdetails drinnen dass das ein öffentlicher getter ist, aber naja... Das komische ist kaum frage ich hier komme ich selber drauf^^ Und dabei überlege ich immer vorher lange selber ;) Es geht aber mit: print_r($part->get_supplierpartnrs());
:
Bearbeitet durch User
Hallo, ich bin gerade Dabei einen Button zu implementieren. Er soll in der Teileansicht neben den Inkrement-Button angezeigt werden. (http://www.partdb.grautier.com/partdb/show_category_parts.php?cid=16) rechts neben den + Button Ich möchte ein Licht hinter einen Einschub eines Magazins Ein/Aus schalten um es schneller finden zu können. Mein Problem ist das ich kein Überblick habe, in welchen Dateien ich was ändern muss. Ich habe mich schon einige Stunden damit auseinander gesetzt aber ich scheitere jedes mal. Wir würde ein Button reichen der mir die ID der Entsprechenden "storelocations" ausgibt. Den Rest bekomme ich dann schon hin. Kann mir jemand einen Hinweis geben in welchen Dateien ich schauen muss? LG deko
Sehe ich es nicht oder ist das ganze nur für einen Nutzer ausgelegt? Würde das gerne bei mir auf dem Server laufen lassen und ein paar andern die Möglichkeit geben, sich einzuloggen und ihre eigenen Bauteileverwaltungen zu verwalten ...
deko schrieb: > Hallo, > ich bin gerade Dabei einen Button zu implementieren. > > Er soll in der Teileansicht neben den Inkrement-Button angezeigt werden. > (http://www.partdb.grautier.com/partdb/show_category_parts.php?cid=16) > rechts neben den + Button > (...) > LG > deko Ich hab jetzt nur mal schnell geschaut: Du müsstest den Button in der Datei: https://github.com/sandboxgangster/Part-DB/blob/master/templates/standard/vlib_table.tmpl Hinzufügen, etwa Zeile 55. Und dann in der Datei: https://github.com/sandboxgangster/Part-DB/blob/master/show_category_parts.php Das Skript anpassen. Also irgendwie im Template die Zeile
1 | {TMPL_IF NAME="caption" VALUE="button_lighton"}<td align="center">Licht an</td>{/TMPL_IF} |
hinzufügen und dann das skript so in der Art abändern: (For Schleife Zeile 52)
1 | for($i=0; $i<$table_rowcount; $i++) |
2 | { |
3 | $selected_part_id = isset($_REQUEST['id_'.$i]) ? (integer)$_REQUEST['id_'.$i] : 0; |
4 | |
5 | if (isset($_REQUEST['decrement_'.$i])) |
6 | { |
7 | $action = 'decrement'; |
8 | break; |
9 | } |
10 | |
11 | if (isset($_REQUEST['increment_'.$i])) |
12 | { |
13 | $action = 'increment'; |
14 | break; |
15 | } |
16 | |
17 | if (isset($_REQUEST['button_lighton_'.$i])) |
18 | { |
19 | $action = 'lighton'; |
20 | break; |
21 | } |
22 | } |
Und dann halt irgendwie in der switch abfrage:
1 | case 'lighton': echo $storelocation->get_full_path(); |
Das wird aber so wahrscheinlich nicht direkt gehen, soll nur etwa beschreiben wie ich denke das es gehen könnte... MfG
@Fer T.: Wie verbindest du die Lichter eigentlich mit der part DB? Das PHP Script muss ja dann ein Programm auf dem Server starten, welches wiederum mit die irgendwie angeschlossene Hardware (=LED?) aktiviert. Laeuft die DB bei dir auf nem Raspberry Pi oder aehnlichem?
Hmm? Ich habe keine Lichter ;) Das war an deko gerichtet um ihm vielleicht etwas zu helfen. Ansonsten: Python Skript auf dem Server ausführen? (Rasp. GPIO oder normaler PC Parallel / Seriell Port?) Ich habe selber nur zwei kleine Modifikationen: Barcodes erstellen und Touch Oberfläche für Raspberry (USB Barcodescanner ist dran und Touch Bildschirm). Die Barcode Generator Sachen hab ich hier beschrieben: http://fthiessen.de/part-db-etiketten-drucken/ Aber ziemlich dirty ist es^^ MfG
Hallo Fer T. Das mit dem Barcode ist echt ne schnelle nette Sache. Hab mir das angesehen und ausprobiert. Lauft vom Prinzip her echt fein. ;) Rest kann ich nicht sagen, da ich zu wenig Ahnung von php habe. g Meine Frage dazu, Wie bekomme ein Array in die Ausgabe rein? ich würde mir gerne die Bestellnummern mit ausdrucken lassen. Ich habe mal nen Screeni angehängt. Vielen vielen Dank im Vorraus. lg
Hi, Du scheinst da noch was im Code geändert haben (ist so wie so nicht der schönste), am einfachsten wäre wohl da bei dir bei Hersteller: $part->get_suppliers()[0]->get_name() . '\n' . $part->get_supplierpartnrs()[0]; Das sollte theoretisch den Hersteller und die Best.-Nr. ausgeben. MfG, Fer_T
Hali, also ja ich hab meine partdb verändert und derzeit auch keine "originale" mehr laufen aber wenn ich so sachen wie footprint, storelocation, suppliers nicht auskommentiere bekomme ich in der log diese Meldung:
1 | PHP Parse error: syntax error, unexpected '[', expecting ')' in..show_print.php on line 84 |
Ich werde das später nochmals genauer unter die Lupe nehmen und mich drann versuchen. ;) Vielen Dank auf jeden Fall...
:
Bearbeitet durch User
Hallo, ich habe die Part-DB neu installiert. Ich finde die Kategorieneinteilung auf http://www.partdb.grautier.com/partdb/ schon sinnvoll. Kann man den SQL-Dump der Kategorien-Tabelle mit zur Verfügung stellen, als "Basis" für die Datenbank? Dann erspare ich mir eine Menge Tipparbeit. Danke Gruß, Xsider
Ja kann ich machen, aber nicht mehr heute morgen poste ich den hier
Hab sie jetzt nicht ausortiert, das sind einige murks Sachen drinnen einfach die entsprechenden Zeilen löschen
Hallo allerseits, ich wollte den Etiketendruck auch mal ausprobieren. Momentan scheitere ich an den folgenden Fehlern (aus /var/log/apache2/error.log):
1 | PHP Parse error: syntax error, unexpected '[', expecting ')' in /var/www/part-db/show_print.php on line 82 |
Zeile 82 ist die letzte Zeile der Ausgabe:
1 | $part->get_supplierpartnrs()[0] . ' - ' . $part->get_suppliers()[0]->get_name() |
Wenn ich die auskommentiere, kommt als nächster Fehler:
1 | PHP Catchable fatal error: Object of class Storelocation could not be converted to string in /var/www/part-db/printLib/libPrint.php on line 162 |
Hat jemand einen Tipp, was da schief läuft? Systeminfo: Ubuntu 12.04.4, Kernel: 3.8.0-44-generic x86_64, apache2: 2.2.22-1ubuntu1.7, php5: 5.3.10-1ubuntu3.13
Sooo ... der erste Fehler lag an der PHP-Version: "You need to be running PHP 5.4+ to use shorthand arrays". Ein Upgrade auf 5.4.31 half. Trotzdem verbleibt:
1 | PHP Catchable fatal error: Object of class Storelocation could not be converted to string in /var/www/part-db/printLib/libPrint.php on line 162 |
Kann mir jemand weiterhelfen? Fer_T?
Der Fehler liegt in der Anweisung printLabel(...) in show_print.php. Diese ist sowieso nicht ideal, da vermutlich das Erzeugen von Etiketten gar nicht funktioniert wenn das Bauteil keinen Lagerort, keinen Footprint oder keinen Lieferanten hinterlegt hat(?). Versuch mal das hier:
1 | printLabel("62x40","de",array( |
2 | $part->get_id(), |
3 | $part->get_name(), |
4 | is_object($storelocation) ? $storelocation->get_name() : '', |
5 | is_object($footprint) ? $footprint->get_name() : '', |
6 | $category->get_name(), |
7 | (count($all_orderdetails) > 0) ? $all_orderdetails[0]->get_supplierpartnr() . ' - ' . $all_orderdetails[0]->get_supplier()->get_name() : '' |
8 | )); |
Ich hoffe das passt so, habs selber nicht ausprobiert...
Das passt perfekt, vielen herzlichen Dank! Das Bauteil, mit dem ich immer getestet habe, hat übrigens sowohl Lagerort als auch Footprint und Lieferanten, daran ist es also nicht gescheitert.
Falls noch jemand die ganzen Label-PDFs in einem Rutsch generieren möchte: Im Anhang ein kleines Shell-Script.
Hallo Zusammen, Ich habe bereits schon seit einigen Jahren die Part-DB bei mir laufen .. Was mich noch immer stört, ist dass ich ein Bauteiltyp nicht an mehreren Orten gleichzeitig lagern kann z:Bsp 2 Trafo T14 in Kiste 4 1 Trafo T14 in Kiste 7 3 Trafo T14 in Kiste 9 Hat da Jemand heute eine Idee wie sich das Datenbanktechnisch lösen lassen könnte ... ohne dass ich denselben Artikel mehrmals erstellen muss Gruss Peter
Hallo Zäme, Ist die openlist Funktion deaktiviert worden ? Könnte man ggfs die openlist wieder aktivieren in der part-db ... um Freunden einen kurzen Überblick zu geben , was im Lager liegt Habe gestern versuchsweise die 0.3.1 installiert - funktioniert sehr gut Gruss Peter
Hallo Peter, Peter Müller schrieb: > Was mich noch immer stört, ist dass ich ein Bauteiltyp nicht an mehreren > Orten gleichzeitig lagern kann Das wurde bereits vorgeschlagen: https://github.com/sandboxgangster/Part-DB/issues/12 Es gibt aber immernoch ungeklärte Fragen wie so ein Feature implementiert werden kann/soll. Peter Müller schrieb: > Ist die openlist Funktion deaktiviert worden ? Ja, die gibt es in den neusten Versionen nicht mehr weil durch die grossen internen Umstrukturierungen diese Funktion nicht mehr funktionierte. Man müsste einiges an Arbeit investieren damit sie wieder läuft. Darauf wurde verzichtet, weil eigentlich eine Benutzerverwaltung geplant ist, welche die openlist Funktion überflüssig machen würde. Leider habe ich aber fast keine Zeit mehr um an Part-DB weiterzuarbeiten (Studium beendet). Vor allem die Benutzerverwaltung würde ich eigentlich schon gerne mal noch implementieren, aber das gibt sehr viel Arbeit... mfg
Urban B. schrieb: > Leider habe ich aber fast keine Zeit mehr um an Part-DB weiterzuarbeiten > (Studium beendet). Vor allem die Benutzerverwaltung würde ich eigentlich > schon gerne mal noch implementieren, aber das gibt sehr viel Arbeit... Das denke ich mir. Ich hab meine Verständnisprobleme mit Git, sonst würde da immer mal wieder dran arbeiten :( Grüße Udo
Besten Dank für die Antworten ... werde einfach regelmässig mal vorbeischauen ... Gruss Peter
Udo Neist schrieb: > Das denke ich mir. Ich hab meine Verständnisprobleme mit Git, sonst > würde da immer mal wieder dran arbeiten :( > > Grüße > Udo Naja, du brauchst es ja nicht unbedingt. Du kannst dir ja die aktuelle Version ziehen und dann ohne Git dran arbeiten. Ich bin mir sicher es würde sich jemand finden, der deine gemachten Änderungen dann ab und an commiten würde.
@Udo Hmm die grundlegenden Funktionen pull/commit/push sind ja eigentlich auch nicht komplizierter als bei SVN (?). Bei git hat man einfach noch einen Haufen zusätzlicher Features, aber die muss man ja nicht benutzen. Wenn du "Angst" davor hast, etwas am Repository kaputt zu machen, kannst du einfach auf Github mit einem einzigen Klick Part-DB forken und dann an deinem eigenen Repository weiterarbeiten. Um deine Änderungen ins Part-DB Repository zu übernehmen reicht ein einfacher Pull Request (ebenfalls auf Github). Ich wäre gerne dazu bereit, deine Änderungen dann in Part-DB aufzunehmen. mfg
:
Bearbeitet durch User
Angst habe ich nicht davor, ich muss mich nur mal in Ruhe mit Git auseinander setzen und eventuell mal selbst einen Git-Server zum Spielen aufsetzen, dann wird das sicher auch wieder was :) Werde ich wohl beim nächsten Urlaub angehen. Grüße Udo
Ich habe übrigens bei der Gelegenheit gerade mal noch geschaut ob es Branches gibt, die bereits (mehr oder weniger) fertig programmierte Features enthalten. Habe zwei solcher Branches gefunden und gleich in den master Branch aufgenommen, die neuen Funktionen sind jetzt: 1) Bauteile, die obsolet und nicht mehr an Lager sind, werden jetzt in den Tabellen ausgeblendet (ausser unter "nicht mehr erhältliche Teile") 2) Man kann jetzt bei den Lieferanten eine URL angeben, welche direkt zu einem Artikel auf dessen Webseite führt. Die Bestellnummer (die in der URL natürlich vorkommen muss) wird durch einen Platzhalter dargestellt. Als Ergebnis werden dann alle Artikelnummern von Lieferanten, bei denen eine solche URL hinterlegt ist, als Hyperlink dargestellt, welche direkt zum entsprechenden Artikel im Onlineshop führen. Finde ich sehr praktisch :-) Eine URL kann auch bei den Herstellern definiert werden, allerdings wird diese von Part-DB (noch) nirgens ausgewertet... Ich denke es lohnt sich nicht, extra ein neues Release zu veröffentlichen nur wegen diesen beiden Funktionen. Wer diese Funktionen dennoch bereits nutzen möchte, kann einfach den aktuellen Stand vom master Branch herunterladen... Grüsse Urban
:
Bearbeitet durch User
Halooo wiedermal. Vielen Dank für diese Funktion mit den URLS der Hersteller. Habe upgedatet und es funktioniert wieder alles wie gewohnt. PartDB ist täglich in Verwendung mit ~ 400 Bauteile und 600 Uploads an Datenblättern und Bildern. Einfach ein sehr feines Programm was mir das tägliche Leben hier echt um einiges vereinfacht. DANKE Viele Grüße aus Wien
Hallo Christopher, Vielen Dank für das Feedback! Freut mich zu hören, dass Part-DB im täglichen Einsatz wie gewünscht funktioniert :-) Grüsse aus der Schweiz Urban
Hallo zusammen, ich habe jetzt auch wieder angefangen das Programm zu nutzen um etwas mehr Ordnung zu bekommen. Ich habe folgende Anforderungen/Verbesserungsvorschläge: 1. Einheiten für Bauteile - um z.B. Kabel erfassen zu können - ggf. auch Kommazahlen zulassen, wie z.B. 0,5m (könnte man aber auch über 50cm abbilden, also nicht zwingend notwendig) 2. mehrere Lagerorte für Bauteile - bei manchen Bauteilen hat man größere Mengen, die nicht alle in den Sortimentskasten passen. Hier wäre es nützlich die Mengen aufteilen zu können auf mehrere Lagerorte. In professioneller Software gibt es dann auch noch Nachschubfunktionen, aber das wäre sicherlich zu aufwendig. Aber zumindest mehrere Plätze wären sehr gut. 3. feste Spaltenbreiten - die Tabelle springt bei mir je nach Kategorie hin und her. Hier wären feste, einstellbare Spaltenbreiten schön. 4. Sortierung der Tabellenspalten durch klicken auf die Überschrift - erklärt sich glaube ich selbst und ist inzwischen ja auch Standard 5. Eingabe/Editierfenster der Bauteile mit Ajax im aktiven Fenster machen - aktuell nutze ich das modale Fenster, da der extra Tab immer im Hintergrund "verloren" geht, aber hier wäre es schön es als "Fenster" direkt in der Seite zu öffnen Gruß, Sammy
sammy schrieb: > Hallo zusammen, > > ich habe jetzt auch wieder angefangen das Programm zu nutzen um etwas > mehr Ordnung zu bekommen. > Ich habe folgende Anforderungen/Verbesserungsvorschläge: > > 1. Einheiten für Bauteile > - um z.B. Kabel erfassen zu können > - ggf. auch Kommazahlen zulassen, wie z.B. 0,5m (könnte man aber auch > über 50cm abbilden, also nicht zwingend notwendig) Ohne es jetzt zu testen, geht der Punkt anstelle des Kommas? > 2. mehrere Lagerorte für Bauteile > - bei manchen Bauteilen hat man größere Mengen, die nicht alle in den > Sortimentskasten passen. Hier wäre es nützlich die Mengen aufteilen zu > können auf mehrere Lagerorte. In professioneller Software gibt es dann > auch noch Nachschubfunktionen, aber das wäre sicherlich zu aufwendig. > Aber zumindest mehrere Plätze wären sehr gut. Ist, soviel ich weiß, ein geplantes Feature. > 3. feste Spaltenbreiten > - die Tabelle springt bei mir je nach Kategorie hin und her. Hier wären > feste, einstellbare Spaltenbreiten schön. Das kann man im Template oder im CSS fest definieren. Kein Thema. > 4. Sortierung der Tabellenspalten durch klicken auf die Überschrift > - erklärt sich glaube ich selbst und ist inzwischen ja auch Standard Das wäre etwas für die nächste Version. > 5. Eingabe/Editierfenster der Bauteile mit Ajax im aktiven Fenster > machen > - aktuell nutze ich das modale Fenster, da der extra Tab immer im > Hintergrund "verloren" geht, aber hier wäre es schön es als "Fenster" > direkt in der Seite zu öffnen Ajax steht ziemlich weit oben auf der Liste. Ich habe zwar die Vorarbeiten dazu schon erledigt, aber im Moment mangelt es an Zeit bzw. ich kämpfe mit Git. Grüße Udo
Ich habe mir mal ein eigenes git-Repo auf meinem Server angelegt, um endlich mal git verstehen zu lernen. Netbeans hat sogar gleich erkannt, dass das Projekt eine Kopie vom git-Repo ist und bietet mir passenden Optionen an. Zumal ich auf FB in einer Gruppe eine wirklich einfache Anleitung zum Arbeiten mit git gefunden habe :D
Zum Git lernen, kann ich das Buch empfehlen, das auf der Git Seite verlinkt ist. In deutsch ist die Edition 1, die Edition 2 gibt es nur in englisch: http://git-scm.com/book/de/v1
Hallo, ich habe gerade pardb von github geladen und installiert. Das funktioniert so weit so gut. Dann erstelle ich eine neue Kategorie "Widerstand". Wie ich in der Demo gesehen habe wird die Kategorie dann Links unter Kategorien aufgelistet, was bei mir nicht der Fall ist. Dann sollte man Kategorie auswählen können und ein neues Bauteil anlegen oder? Aber warum werden bei mir die Kategorien nicht aufgelistet? Jemand eine Ahnung was ich falsch mache? Hoffe es kann mir jemand helfen, habe große Erwartungen an dieses Programm^^ Lg, Tropaion
Und unter system_confi kann ja die ganzen Menüpunkte wie System und Tools deaktivieren. Diese werden jedoch von haus aus schon nicht mehr angezeigt, kann mir vll jemand helfen? Hier meine Testeinrichtung: http://www.yakuzasubs.at/labor/ Lg, Tropaion
Habs mir mal angeschaut ist komisch in der HTML Ausgabe sind die Menüs drinnen, hab momentan bis Mitte der nässten Woche nur UMTS damit kann ich nicht anständig schauen, aber ich werde mir das dann mal anschauen.
Vielen Dank! Wäre echt cool wenn das gelöst wird. Sitze schon seit 2 Tage dran, bin aber gar nicht weiter gekommen -.- Habe große Erwartungen daran, die Demo finde ich ziemlich vielversprechend. Lg, Tropaion
Ich bekomme zwei Javascript-Fehler angezeigt: dTree und menue sind nicht definiert. Anscheinend stimmt was nicht mit dtree.js (und bei den anderen JS-Dateien), denn in Firebug sehe ich nur eine lange Zeile und die ist auskommentiert. Firebug: Kein JavaScript auf dieser Seite
:
Bearbeitet durch User
Ich habe die geänderte dtree.js ins Repo hochgeladen. Bitte ausschecken und testen :-)
Udo Neist schrieb: > sammy schrieb: >> Hallo zusammen, >> >> ich habe jetzt auch wieder angefangen das Programm zu nutzen um etwas >> mehr Ordnung zu bekommen. >> Ich habe folgende Anforderungen/Verbesserungsvorschläge: >> >> 1. Einheiten für Bauteile >> - um z.B. Kabel erfassen zu können >> - ggf. auch Kommazahlen zulassen, wie z.B. 0,5m (könnte man aber auch >> über 50cm abbilden, also nicht zwingend notwendig) > > Ohne es jetzt zu testen, geht der Punkt anstelle des Kommas? > >> 2. mehrere Lagerorte für Bauteile >> - bei manchen Bauteilen hat man größere Mengen, die nicht alle in den >> Sortimentskasten passen. Hier wäre es nützlich die Mengen aufteilen zu >> können auf mehrere Lagerorte. In professioneller Software gibt es dann >> auch noch Nachschubfunktionen, aber das wäre sicherlich zu aufwendig. >> Aber zumindest mehrere Plätze wären sehr gut. > > Ist, soviel ich weiß, ein geplantes Feature. > >> 3. feste Spaltenbreiten >> - die Tabelle springt bei mir je nach Kategorie hin und her. Hier wären >> feste, einstellbare Spaltenbreiten schön. > > Das kann man im Template oder im CSS fest definieren. Kein Thema. > >> 4. Sortierung der Tabellenspalten durch klicken auf die Überschrift >> - erklärt sich glaube ich selbst und ist inzwischen ja auch Standard > > Das wäre etwas für die nächste Version. > >> 5. Eingabe/Editierfenster der Bauteile mit Ajax im aktiven Fenster >> machen >> - aktuell nutze ich das modale Fenster, da der extra Tab immer im >> Hintergrund "verloren" geht, aber hier wäre es schön es als "Fenster" >> direkt in der Seite zu öffnen > > Ajax steht ziemlich weit oben auf der Liste. Ich habe zwar die > Vorarbeiten dazu schon erledigt, aber im Moment mangelt es an Zeit bzw. > ich kämpfe mit Git. > > Grüße > Udo Hi Udo, danke für die Antwort. Mengen mit . statt , gehen leider nicht. ein 6. Punkt: Zustand zu Bauteilen speichern: z.B. neu, gebraucht, ausgelötet etc. gruß, sammy
Hi! Ist geplant, dass man bei den Einkaufsinformationen beim Preis mehr als zwei Nachkommastellen angeben kann? Viele Händler rechnen mit Centbruchteilen (u.a. Reichelt, 0,082€ für einen Metallschichtwiderstand). Sind Massenoperationen geplant? Sprich, man kann bestimmte Eigenschaften wie z.B. den Lagerort für mehrere Bauteile gleichzeitig ändern.
Hallo, ich habe ein Script in Python geschrieben, dass die Teile einer Bestellung bei Reichelt automatisch in eine Part-DB importierbare CSV Datei wandelt. Außerdem werden noch die Bilder und alle Datenblätter aller Positionen heruntergeladen und die Dateinamen im Kommentarfeld der CSV referenziert. Geplant ist dass die auch noch automatisch in die Datenbank eingepflegt werden aber da weiß ich noch nicht wie man das am besten hinbekommt (Direkt an der SQL Datenbank rumfrickeln oder über HTTP). Hat hier jemand vllt. eine Idee, wie man das lösen kann? Feedback ist immer wilkommen... ;) Grüße Felix
Hi zusammen, Ich wollte nur mal nachhören wie so der Stand der Dinge ist. Wird noch weiter entwickelt? Ach ja so nebenbei http://partdb.grautier.com/ ist offline. Gruß
Felix C. schrieb: > Hallo, > > ich habe ein Script in Python geschrieben, dass die Teile einer > Bestellung bei Reichelt automatisch in eine Part-DB importierbare CSV > Datei wandelt. Außerdem werden noch die Bilder und alle Datenblätter > aller Positionen heruntergeladen und die Dateinamen im Kommentarfeld der > CSV referenziert. Geplant ist dass die auch noch automatisch in die > Datenbank eingepflegt werden aber da weiß ich noch nicht wie man das am > besten hinbekommt (Direkt an der SQL Datenbank rumfrickeln oder über > HTTP). Hat hier jemand vllt. eine Idee, wie man das lösen kann? > Feedback ist immer wilkommen... ;) > > Grüße > Felix denke am besten wäre es direkt in SQL à la
1 | import MySQLdb |
2 | mysql=MySQLdb.connect('localhost','SQL_TABELLE','BENUTZER','KENNWORT') |
3 | cursor=mysql.cursor() |
4 | |
5 | cursor.execute("INSERT INTO `part-db`.`pricedetails` (`id`, `orderdetails_id`, `price`, `price_related_quantity`, `manual_input`, `last_modified`) VALUES ('"price_id"', '"orderdetails_id"', '"price"', '"price_related_quantity"', '1', CURRENT_TIMESTAMP);") |
So oder so ähnlich...
laberkeks schrieb: > > denke am besten wäre es direkt in SQL à la >
1 | > import MySQLdb |
2 | > mysql=MySQLdb.connect('localhost','SQL_TABELLE','BENUTZER','KENNWORT') |
3 | > cursor=mysql.cursor() |
4 | > |
5 | > cursor.execute("INSERT INTO `part-db`.`pricedetails` (`id`, |
6 | > `orderdetails_id`, `price`, `price_related_quantity`, `manual_input`, |
7 | > `last_modified`) VALUES ('"price_id"', '"orderdetails_id"', '"price"', |
8 | > '"price_related_quantity"', '1', CURRENT_TIMESTAMP);") |
9 | > |
> > So oder so ähnlich... Ja, ich habe mittlerweile noch eine API in PHP für Part-DB zusammengefrickelt, das schien mir auch die sauberste Variante zu sein.
Hallo, Fer T. schrieb: > Wird noch weiter entwickelt? Momentan leider nicht wirklich... Fer T. schrieb: > Ach ja so nebenbei http://partdb.grautier.com/ ist offline. Stimmt, das ist sehr schade. @K.J. Könntest du das wieder zum laufen bringen? Da momentan nicht aktiv weiterentwickelt wird, würde es vorerst ja reichen einfach das letzte Release zu installieren (ohne tägliches git pull). Felix C. schrieb: > Ja, ich habe mittlerweile noch eine API in PHP für Part-DB > zusammengefrickelt, das schien mir auch die sauberste Variante zu sein. Gerade im Zusammenhang mit dem Reichelt Import Script wäre dieses API sicher auch für andere Part-DB Nutzer nützlich. Wenn es einigermassen sauber implementiert ist, kannst du auf Github einen Pull Request machen, dann können wir es offiziell in Part-DB integrieren (unter der GPLv2). mfg
Ich Frage nur nach weil ich ansonsten darauf umsteigen würde. Evtl auch mich in PHP wieder einarbeiten und nen paar bugs fixen ;-)
Falls es mit http://partdb.grautier.com/ nicht klappen sollte, würde ich bei mir eine Subdomain einrichten. Viel Zeit zur Weiterentwicklung habe ich auch nicht, kann aber hier und da bei Problemen helfen. Grüße Udo
hi ja mach ich am WE fertig, irgentwie ist das beim serverweksel abhanden gekommen.
Für die zwischen zeit, falls jemand die Doku braucht: http://fthiessen.de/part-db/doku.php?id=start Sollte K.J. das dann wieder gefixt haben, nehme ich es bei gelegenheit wieder runter ;-) MfG
Hallo zusammen, seit einer weile nutze ich PartDB und bin sehr zufrieden. Da habt Ihr echt was schönes gemacht. Danke schön! Und mit etwas veränderten Theme kann man die Datenbank auch super für andere dinge nutzen (z.B. eine Störungsdatenbank) Aber ein Problem habe ich ... kann die Suchfunktion maximal nur 200 Artikel finden ? Kann man das irgend wie ändern ?
Hi, die Partdb ist dementsprechend nicht begrenzt, ich könnte mir vorstellen das in PHP begrenzt ist, sowas ähnliches hatte ich auch schon weis aber gerade nicht welche Einstellung das war, denkbar wehre die Scriptlaufzeit oder die anzahl der DB abfragen oder eine der Variabel Längenbegrenzung.
Es gibt ein Limit von 200 Einträgen in der Funktion search_parts von class.Part.php. Ich habe das jetzt mal in die Konfiguration verschoben und damit variabler gemacht. Der Default bleibt 200, falls die Variable in der eigenen Konfiguration fehlen sollte. Kleiner Fehler unterlaufen. Eventuell wurde die neue Variable nicht in der Funktion gefunden, da ich ein global vergessen hatte... Ob das Limit eher zum Funktionsaufruf dazu genommen wird oder es so bleibt, das kann ich jetzt noch nicht sagen.
:
Bearbeitet durch User
Hi, Ich hätte nur mal eine Frage zu der Entwicklung von Part-DB: Welches Zeilenende wird denn benutzt? Unix, DOS oder MAC? Weil irgendwie ist es bei jeder Datei anders. Teilweise war es Dos(\n\r), aber in den .php Dateien vorwiegend Unix (\n). Sodass die Diffs immer unnötig groß werden. Ich meine Irgendwo \n\r gelesen zu haben, bin mir aber nicht sicher. Vielleicht sollte man das irgendwo klar definieren und dann einmal alle Dokumente wandeln (unter Linux gibt es die tools unix2dos dos2unix). MfG, Ferdinand
Danke schön für die schnelle Hilfe. Funktioniert prima. Habe auch die änderung von GitHub getestet, geht bei mir auch ohne Proleme. Danke.
Hallo Ferdinand, Es sollen eigentlich überall UNIX Zeilenenden verwendet werden. Ich habe dos2unix mal auf alle Dateien im Repo angewendet und die Code Styleguides ergänzt. Ich hoffe jetzt gibt es keine unnötig grosse diffs mehr... mfg
Vielen Dank für die Klarstellung!
Ich war nur verwirrt durch den Kommentar in dem Commit von Weinbauer:
> "[...]Zeilenumbrüche nach CRLF gewandelt."
(CRLF = Dos, LF = Unix)
MfG
Fer T. schrieb: > Vielen Dank für die Klarstellung! > Ich war nur verwirrt durch den Kommentar in dem Commit von Weinbauer: >> "[...]Zeilenumbrüche nach CRLF gewandelt." Warum ich das damals so gemacht habe, war wohl auf mein damaligen Editor zurück zu führen. Heute setze ich Netbeans ein und dort ist LF eingestellt.
Fer T. schrieb: > Für die zwischen zeit, falls jemand die Doku braucht: > > http://fthiessen.de/part-db/doku.php?id=start Leider ist die Doku und die Demo ja (noch) nicht mehr online, daher zusätzlich zur Doku oben hier meine Demo: http://demo.os-sc.org/ Wird um Mitternacht immer geleert. Dem entsprechend gibt es hier auch die Doku: http://demo.os-sc.org/documentation/dokuwiki/doku.php
:
Bearbeitet durch User
Ups vergessen, natürlich hier die Entwickler Dokumentation. Sollte sie denn einer brauchen: http://demo.os-sc.org/documentation/doxygen/
In letzter Zeit ist ja nicht viel passiert, ich hab aber gerade mal etwas mehr Zeit und daher mal angefangen was zu schreiben, was ich schon länger vorhatte: Ich schreibe gerade für die Part-DB eine REST-API. Was ist REST? Am besten dafür hier gucken: https://de.wikipedia.org/wiki/Representational_State_Transfer Warum? Ich mache das vor allem, um das Backend und das Frontend strickt voneinander zu trennen. Momentan ist es ja so das die HTML Seite vom PHP Teil erzeugt wird. Ich möchte das so weit wie es geht trennen, dann kann man nämlich zum einen das Backend verändern ohne die GUI ändern zu müssen (so lange man die API nicht verändert) und zum anderen ist es durch den Ansatz wesentlich einfacher moderne UIs zu erstellen. Daher die schon länger überfälligen Veränderungen wie weg von iFrames und Popups. Ich schreibe nebenbei zum Testen noch eine - momentan kleinere - Oberfläche mit JS (mit dem DOJO-Framework: http://dojotoolkit.org/ - Bevor die Frage nach JQuery kommt: Ich mag bei dojo den API Aufbau einfach lieber / das Konzept). Die ist aber bei weitem nicht fertig und dient mir momentan nur zum testen der API und "proof of concept" (also ich teste da Sachen wie live-search, ajax, dojo-widgets etc). Sobald ich einigermaßen mit dem Fortschritt zufrieden bin stelle ich meinen Branch natürlich gerne hier zur Verfügung. Momentan hab ich aber nur die Grundlagen umgesetzt und arbeite noch an einigen Controllern. Falls jemand Anregungen dazu hat, oder Fragen oder mir einfach nur sagen will wie doof das doch ist: Gerne ;-) Wie gesagt ich stelle gerne auch alles bei Gelegenheit zur Verfügung, ich nutze den Post hier einfach mal als Ankündigung und um zu gucken ob es Interesse findet, daher ob ich das nicht nur für mich mache. Sicher gibt es dann da auch einiges was noch verbessert werden muss, aber das ist ja immer so. Mit freundlichen Grüßen, Fer
Dojo hatte ich verworfen, weil es mir zu groß geworden ist. Daher hatte ich einen viel einfacheren Ansatz mit Javascript selbst geschrieben (ist im Filemanager zu sehen). Als Template-Engine kommt vlib zum Einsatz, da auch hier kein Schwergewicht verwendet werden sollte. Leider kam ich aus Zeitgründen kaum dazu beide Teile zu verbinden. Grüße Udo
Hallo Fer, Klingt auf jeden Fall interessant, ich kann mir aber noch nicht so richtig vorstellen wie die REST API denn aussehen soll, und was das schlussendlich genau bringt. Eigentlich sind ja jetzt schon Backend und Frontend mehr oder weniger getrennt. Das aktuelle Konzept besteht im Prinzip aus drei Teilen: 1) Die PHP Klassen im "lib" Verzeichnis, welche die Daten in der Datenbank repräsentieren und viele nützliche Methoden anbieten. 2) Die PHP Skripte im Hauptverzeichnis, welche beschreiben welche HTML Seiten es gibt (also quasi die verschiedenen Use-Cases abbilden) und die Daten, welche im Browser angezeigt werden sollen, in Form von (vLib) Strukturen zur Verfügung stellen (Loops und Variablen). 3) Die HTML Seiten, welche nur noch die von den PHP Skripten generierten Daten darstellen. Das Design ist ohne Änderungen an PHP Dateien fast beliebig veränderbar. Auch könnte man für die Anzeige vermutlich ein Framework wie z.B. DOJO einsetzen. Kannst du vielleicht etwas genauer erklären, wie dein Konzept aussehen würde? Gruss, Urban
Im Grunde trenne ich das Backend und das Frontend klar durch die API ab. Daher das backend hat keine Ahnung was der User macht, bis es einen Zugriff bekommt. Zum Beispiel weil der User Part 42 abruft:
1 | /api.php/Parts/42 |
Nun gibt das Backend Part 42 zurück (als Json, oder wenn ein Fehler auftritt der passende HTTP Status). Oder wenn der User eine Kategorie löschen will:
1 | /api.php/Categories/23 |
(als HTTP DELETE Request). Oder bei der Suche:
1 | /api.php/Parts?name=NE55* |
Damit verschwindet so etwas wie das Prüfen "wirklich löschen?" etc aus dem php Teil und geht in die Verantwortung des Frontends über. Zum Beispiel bei meiner kleinen Testoberfläche in den Verantwortungsbereich des JS-Codes (wird per Dialog gelöst). Man könnte sich hier aber auch gleichzeitig zum Beispiel eine App vorstellen die auf diese API zugreift, wie das realisiert wird ist egal weil nur HTTP-Requests benötigt werden. Es für die Außenwelt gibt es dann quasi nur die Adresse: /api.php/{TABELLE}/{ID} /api.php/{TABELLE}?{QUERY} über welche dann kommuniziert wird. Ich bin mittlerweile eigentlich im Groben mit der API fertig. Da man durch Vererbung dort viel sparen konnte und nun nur noch kleinere Tochterklassen zu implementieren sind. Natürlich fehlen dann noch Feinheiten und sicher findet sich noch der ein oder andere Bug und Stellen die man sauberer machen kann. Meine Oberfläche nimmt auch Gestalt an, hab gerade mit DOJO und dgrid experimentiert um zugucken wie viel js code es ergibt. Klar das man nun eine Seite erhält die recht viel JS beinhaltet, aber insgesamt komme ich unkomprimiert (es sollte normal sein das Webserver komprimieren) auf etwa 350KiB alles in allem (daher mit allen "Unterseiten"). Daher mit 400KiB ist die gesamte Webseite geladen, keine großen Ladezeiten mehr, da ab hier nur noch kleine Requests im Hintergrund (AJAX) gesendet werden und diese zum Teil auch gecached werden können. Daher ich komme nachdem ich sie einmal geladen habe bei jedem erneuten Besuch auf nur etwa 20Kb die geladen werden müssen, da die Dateien ja statisch sind! Zu der Größe von Dojo: Man sollte es immer selber bauen. Ich hab es jetzt selbst gebaut und es sind etwa 300Kb (übertragen etwa 90Kb) und dabei hab ich echt verdammt viele Funktionen mit rein genommen. Ich werde das die Tage auf Github hochladen und dann Bescheid geben, dann kann sich ja quasi jeder einen Eindruck davon machen. Falls ich irgendwas unklar ist, einfach nochmal nachfragen ;-) Gruß
Hier mal noch meine Version einer API. Ist wie weiter oben beschrieben mehr zusammengefrickelt aber für meine Zwecke passt das so.
So hab doch noch schnell mal eine laufende Version gepushed, vielleicht erklärt der Code es besser als ich ;-) Momentan hab ich aber nur den Categories und Device Controller. Wobei ich den BaseController auch noch einmal überarbeiten muss, denke das kann man noch was kompakter und schöner machen. https://github.com/susnux/Part-DB/tree/New_GUI_REST_JS Der Branchname ist verwirrend, weil er nur die REST API enthält, aber nicht die GUI. Die hab ich ausgelagert damit das nicht ein Riesen durcheinander wird (von den commits). Ein XYController übernimmt dann quasi die Aufgaben von show_xy und edit_xy. Geladen werden die von der api.php (weshalb ich auch die start_session bearbeiten musste um __autoload durch die autoload_registry zu ersetzen (ist ab PHP 5.3.0 dabei, also sollte jeder haben). Dann noch die zwei neuen Klassen Request und Http (letzteres ist nur zur Lesbarkeit und Ordnung da, quasi ein "Enum"). Und hier direkt zum Diff: https://github.com/sandboxgangster/Part-DB/compare/master...susnux:New_GUI_REST_JS
:
Bearbeitet durch User
Für Verbesserungen bin ich immer zu haben. Die aktuelle Version hatte zwei Ziele: Trennung Programm und HTML (hier vlib) und bessere Struktur des Codes/OOP (wegen Wartung). Das im Zuge von Ajax einige Änderungen im Handling zwischen Client und Server vollzogen werden müssen, das hatten wir bzw. Urban in der Hauptsache ja schon vorbereitet. Meine Baustelle ist immer noch der neue Filemanager. Hier wollte ich auf Flash verzichten. Ich habe zwar das JS-Framework zwischenzeitlich deutlich verbessert, aber den Filemanager noch nicht angepasst. Mir fehlt einfach die Zeit, um da mal ein oder zwei Wochen intensiv dran zu feilen :( Grüße Udo
Der Link http://www.partdb.grautier.com/svn/documentation/dokuwiki/doku.php auf Dokumentation und Installationsanleitung auf https://github.com/sandboxgangster/Part-DB/releases.atom ist tot.
Hallo alle zusammen, da ich nun gerade dabei bin alle meine Bauteile mit Aufklebern vom oben genannten Tool zu beschriften, habe ich eine kleine Android App programmiert, das die Barcodes auf den Labels einscannt und die Part-DB Detailseite für dieses Bauteil anzeigt: https://github.com/do9jhb/Part-DB-android Vielleicht kann es ja noch jemand anderes gebrauchen.
Der nächste Schritt den ich plane (und auch dabei bin zu implementieren...) ist die Daten über ein Bauteil von Part-db entgegen zu nehmen und dann direkt in der App in einer Activity anzuzeigen. Dann sollte es auch ein Suchfeld geben über das man auch Bauteile aufrufen kann, die keinen Barcode haben.
Hat es schon jmd. getestet? Jetzt kann man auch die Bauteiledetails (teilweise) direkt innerhalb der App anzeigen lassen (siehe Anhang). Die neue Version gibts bei GitHub...
Hi, ich würde ja gerne mal wieder mit der Datenbank arbieten, allein ich kann keine Downloadmöglichkeit finden. Die per Suchmaschine findbaren Webseiten zu dem Projekt sind uralt, die Links funktionieren nicht oder führen zu Uralt Versionen. Wo ist das aktuelle Program zu finden? Und gibt es dazu eine Installationsanleitung? Gruß Peter
Hallo zusammen, dies scheint ja wirklich aktuell der letzte und einzig noch erhaltene Beitrag zu sein wenn es um das Thema Part DB geht. Ich würde gerne auch ein wenig damit anfangen/einsteigen und es fällt schon echt ziemlich schwer den Überblick zu behalten, zumindest für Neueinsteiger... Ich würde mir ehrlich gesagt am liebsten eine kleine virtuelle Maschine einrichten, welche alles benötogt mit allen Features die aktuelle so stabil laufen. Hab mich sogar richtig gefreut, als es das in einem Artikel bereits gab... aber dann: sehr alte Version. Also ging die Suche wieder los. Jetzt hab ich mal bei mir auf der Maschine v0.3.1 laufen, aber was ist mit dieser Version 1.2 die hier und da mal auftaucht? Und Etiketten würde ich auch gerne drucken. Wie fange ich da an oder wo muss ich weiter suchen? Wäre um ein wenig Aufklärung echt dankbar und würde auch eine virtuelle Maschine erzeugen + Wiki updaten falls das hier wirklich noch aktuell ist. Grüße Dennis Nachtrag: Jan B. schrieb: > Hat es schon jmd. getestet? > > Jetzt kann man auch die Bauteiledetails (teilweise) direkt innerhalb der > App anzeigen lassen (siehe Anhang). Die neue Version gibts bei GitHub... Ja zu diesem Punkt muss ich sagen: Codes werden falsch erzeugt, App schmiert beim Smartphone drehen ab.
:
Bearbeitet durch User
Okay, aber das ist alles doch recht zerstückelt oder nicht? Wie steht es um das Barcode Feature? Ist doch nicht im master drin?! Muss man sich das selber zusammen kopieren? Gerade mal zwei drei Versionen mit meinem Diff-Tool verglichen und bin mir nicht ganz sicher was ich jetzt genau auschecken soll.
Es gibt einige Entwicklerrepos, die zum Testen für neue Funktionen gedacht sind. Das offizielle Repo ist "master".
Sehr schade ist halt, dass die Demoseite und damit auch die Dokumentation (inkl. Installationsanleitung) seit einiger Zeit offline sind. Vielleicht kann K.J. das wiedermal zum laufen bringen? Ansonsten hätte ich auch noch einen Webspace auf dem man das laufen lassen könnte. Fragt sich nur wann ich mal Zeit und Lust dazu habe ;)
Urban B. schrieb: > Sehr schade ist halt, dass die Demoseite und damit auch die > Dokumentation (inkl. Installationsanleitung) seit einiger Zeit offline > sind. > > Vielleicht kann K.J. das wiedermal zum laufen bringen? > > Ansonsten hätte ich auch noch einen Webspace auf dem man das laufen > lassen könnte. Fragt sich nur wann ich mal Zeit und Lust dazu habe ;) Das hätte ich auch grad noch übrig... Aber halt ein System mit allen aktuell stabil laufenden Funktionen wäre halt klasse! So schlecht find ich das Prinzip halt nicht. Und die "online"-Anbindung find ich halt besser als bei EleLa.
Ich kann eine Demo-Version auf meinen eigenen Webserver installieren, dem juckt das nicht ;)
Das einmalige installieren von Part-DB auf einem Webspace ist natürlich kein Problem. Schön wäre allerdings wenn die Installation auch regelmässig auf die neuste Version aktualisiert wird und wenn z.B. einmal am Tag die Datenbank zurückgesetzt wird (z.B. laden einer SQL Datei welche Beispieldaten enthält). Die Online-Demo von K.J. hat das auch so gemacht als sie noch online war.
:
Bearbeitet durch User
Demo hab ich unter http://phpbookworm.singollo.de/project/part-db/index.php installiert. Ich werde noch einen cronjob installieren, der irgendwann nachts die Datenbank löschen wird. Da ich keine Demodaten habe, wird sie leer bleiben. Wenn sich jemand bereit erklärt, dort vernünftige Daten eintragen zu wollen, werde ich das mit dem cronjob noch ein paar Tage zurück stellen. Updates wären kein Problem. Ich habe noch lange nicht vor, meinen Webserver samt Domains zu kündigen.
:
Bearbeitet durch User
Urban B. schrieb: > Sehr schade ist halt, dass die Demoseite und damit auch die > Dokumentation (inkl. Installationsanleitung) seit einiger Zeit offline > sind. Hab doch schon mal meinen Ersatzserver gepostet: > Leider ist die Doku und die Demo ja (noch) nicht mehr online, daher > zusätzlich zur Doku oben hier meine Demo: http://demo.os-sc.org/ > Wird um Mitternacht immer geleert. > Dem entsprechend gibt es hier auch die Doku: http://demo.os-sc.org/documentation/dokuwiki/doku.php
Dennis X. schrieb: > Wie steht es > um das Barcode Feature? Ist doch nicht im master drin?! Nein das ist eine externe Erweiterung von mir: http://fthiessen.de/part-db-etiketten-drucken/ Ich würde die auch nicht in den Master mergen (kann man natürlich von mir aus gerne machen), aber aus meiner Sicht ist die Abhängigkeit auf TCPDF zu groß, daher viele müssten unnötig viele Dateien installieren obwohl sie das feature nicht brauchen. Eine Anleitung zum installieren ist auf der verlinkten Seite. MfG
Fer T. schrieb: > Hab doch schon mal meinen Ersatzserver gepostet: Ups, stimmt, das hatte ich ganz vergessen ;) Dann müsste man wohl nur noch die Readme im Part-DB repo anpassen, so dass die Verlinkungen zur Demo und zur Dokumentation wieder funktionieren... Demodaten (SQL) gibts übrigens hier: https://raw.githubusercontent.com/sandboxgangster/Part-DB/master/development/testfiles/database/v12_kami89_utf8.sql
:
Bearbeitet durch User
Die Beispieldaten funktionieren bei der aktuellen Datenbankstruktur allerdings nicht mehr. Das Update schlägt fehl.
Udo N. schrieb: > Die Beispieldaten funktionieren bei der aktuellen Datenbankstruktur > allerdings nicht mehr. Das Update schlägt fehl. Hmm das dürfte eigentlich nicht passieren. Hat der Datenbank Benutzer genügend Rechte um das Update durchzuführen (GRANT ALL)? Welche Fehlermeldungen erscheinen genau?
Für die Tabelle hat der User alle Rechte, auch Grant. Die Tage probier ich es noch einmal, heute und morgen wird es nichts mehr.
Udo N. schrieb: > Für die Tabelle hat der User alle Rechte, auch Grant. Die Tage > probier > ich es noch einmal, heute und morgen wird es nichts mehr. Hab auch nen Problem sonst funktioniert alles nur die demo Datei nicht:
1 | Schritt: UPDATE `footprints` SET `filename` = replace(`filename`,'tools/footprints/','%BASE%/img/footprints/')...OK |
2 | Schritt: UPDATE `footprints` SET parent_id=NULL WHERE parent_id=0...OK |
3 | Schritt: ALTER TABLE `storeloc` RENAME `storelocations`...FEHLER! |
4 | Fehlermeldung: SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'storelocations' already exists |
5 | |
6 | SQL_MODE wird gesetzt... |
7 | Datenbank wird freigegeben... |
8 | ABBRUCH: Das Update konnte nicht durchgeführt werden! |
EDIT: Es passiert nur wenn die Datenbank VOR dem Import bereits Version 17 ist und man es dann importiert.
:
Bearbeitet durch User
Fer T. schrieb: > EDIT: Es passiert nur wenn die Datenbank VOR dem Import bereits Version > 17 ist und man es dann importiert. Ach so, ja die Datenbank sollte natürlich komplett leer sein vor dem Import, sonst kommt das nicht gut weil zwei verschiedene Datenbankversionen "vermischt" werden.
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.