https://giswiki.hsr.ch/api.php?action=feedcontributions&user=NicolaJordan&feedformat=atomGeoinformation HSR - Benutzerbeiträge [de-ch]2024-03-29T12:49:02ZBenutzerbeiträgeMediaWiki 1.27.0https://giswiki.hsr.ch/index.php?title=Diskussion:GEOWebforum&diff=68035Diskussion:GEOWebforum2021-02-04T11:56:35Z<p>NicolaJordan: </p>
<hr />
<div>== 2021 ==<br />
<br />
'''Tasks:'''<br />
<br />
0. Migration auf nochmals neuen Server.<br />
<br />
1. Anpassung Webseiten mit Umbenennung von KKGEO zu KGK und neuem Logo und Weblink <br />
* Weblink ist: http://www.kgk-cgc.ch/. Logo: (warte noch). (Adresse Geschäftsstelle KGK – CGC, Haus der Kantone, Speichergasse 6, Postfach, 3001 Bern )<br />
<br />
2. Anpassung Mail-Server: <br />
* Neu statt sfkeller@hsr.ch richtig stefan.keller@ost.ch .<br />
<br />
3. Bug im Titel von Beiträgen: <br />
* "FOSDEM'21, 6 & 7 Februar 2021, online" im Titel erzeugte: <br />
Fehler in Zeile:257:You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near <br />
'21, 6 & 7 Februar 2021, online',425,12,'1612141296',0,'1612141296')' at line 1<br />
<br />
4. Anpassung Webseiten mit Webstatistik.<br />
* Nicola fragen Stichwort "Matomo".<br />
<br />
5. Integration FB und Twitter<br />
* Messenger Bots einrichten, so dass pro neuer Beitrag im GWF eine Message an FB und Twitter geschickt wird.<br />
<br />
== 2020 ==<br />
<br />
Migration auf neue Server.<br />
<br />
== 2019 ==<br />
<br />
To Do's vom 31.10.19:<br />
"Export Personendaten" im CSV-Format als Button (Rolle Admin) wegen GDPR; Falls keine nützliche Query vorhanden zurückstellen und auf offene Punkte tun.<br />
<br />
Offene Punkte:<br />
* Dockerisieren und ev. Punkte unten bei 2018!<br />
<br />
Keine To Do's sind:<br />
* Piwik drinnen lassen - also NICHT herausnehmen! Läuft noch!<br />
* KEIN Akzeptieren-Button<br />
* KEIN Apache Log auswerten<br />
* Es braucht KEINE Text-Ergänzung zu den Benutzungsordnung wegen DSVGO<br />
<br />
Antispam (Done): <br />
* Es müssen drei Buchstaben aus Vorname oder Nachname müssen in E-Mail sein. <br />
* Zudem statisch: "Interessen" (other = Freitextfeld)<br />
* RaymondflomyGW Raymondflomy Darploffroappy@sexkruiz.ru other<br />
<br />
Done 11.06.2019 / 31.10.19: <br />
# GXOWebforum => GEOWebforum im HTML-Title korrigieren => Done<br />
# "EMail suchen" ergänzen (Rolle Admin) => TODO/doing<br />
# NEU: Nutzungsstatistik https://www.geowebforum.ch/stats.php nur noch für Rolle Admin anzeigen! => TODO/doing<br />
# Bug: In Detaillierte Liste sind die Pages weg!<br />
<br />
== 2018 ==<br />
<br />
Doing:<br />
# Antispam: <br />
## Nicht-Übereinstimmung (Partial Match) von mind. 3 Buchstaben (chars) des Vergleichs von (Vorname oder Nachname) mit Mail (inkl. Domain) <br />
## Wiederholung der ersten 4 Buchstaben von Vorname zu Nachname. D.h. das wird durchgelassen: "Stefan¦Keller" matchd "sfkeller@hsr.ch" und "Mirko¦Stocker" matchd "me@stocki.ch".<br />
## Nicht-Wiederholung derselben 4 Buchstaben in Vorname, Nachname, Mail. D.h. das wird abgefangen: byronjoighEA byronjoigh byronmalkovich@gmail.com<br />
## Alles Grossbuchstaben ist Spam, z.B. aktuell "FUELRYFLUIDAYYO FUELRYFLUIDAY don.carrington@fourr.org"<br />
# Anpassen HTML HEAD mit konsequentem "GEOWebforum", etc.<br />
# Bei memberlist.php den "Balken" ("< 1 2 3 4 5 >") von unten nach oben verschieben, damit ich schneller da dran komme.<br />
# Abklären: Werden Mail wirklich nicht geschickt, wenn 2. deaktiviert, oder 3. sonstwie: Unzustellbare Mails nicht in DB kommen trotzdem? z.B.Paul Märki paul.maerki.bonanomi@gmail.com<br />
# Ev. Zusätzliche Suche nach E-Mail nur für Admins.<br />
<br />
In Abklärung:<br />
* In Abklärung! Impressum-Text anpassen an DVGO (Möglichkeit für Opt-out und Liste eigener Daten). OK-Button?<br />
* für Admins: Export aller Nutzerdaten im Sinne der DVGO als einfacher Button?<br />
* Statistik überarbeiten. Da stimmt etwas an versch. Orten nicht (z.T. einfach Code/Tabelle löschen): stats.php<br />
<br />
Kostendach 5 AT:<br />
<br />
Done:<br />
# Auf der Startseite https://www.geowebforum.ch/ "Letzte Beiträge" von 5 auf 7 erhöhen.<br />
# Weblink hinter KKGEO/CCGEO von http://www.e-geo.ch/ ändern auf http://www.kkgeo.ch/ .<br />
# Logos entfernen(!) und zwar auf https://www.geowebforum.ch/index.php => e-geo und SIK (http://www.sik-gis.ch) und auf allen(!) anderen Webseiten SIK ebenfalls im Header. <br />
# UTF8 bei Benutzungsordnung https://www.geowebforum.ch/register.php bzw. https://www.geowebforum.ch/benutzungsordnung.php<br />
# Text-Anpassung Benutzungsordnung: "2. Das Forum verwendet zur Datenübertragung im Rahmen des Forums keine besonders abgesicherten Verbindungen, sondern nur normale HTTP-Verbindungen und E-Mails" <br />
## de: "2. Das Forum verwendet zur Datenübertragung nicht immer gesicherte Verbindungen." => "(SSL-Verschlüsselung o. ä.), sondern nur normale HTTP-Verbindungen und E-Mails." streichen!<br />
## it: "2. Il Forum non utilizza sempre connessioni protette per il trasferimento di dati."<br />
## fr: "2. Le forum n'utilise pas toujours de connexion sécurisée lors de la transmission de données."<br />
## en: "2. This forum does not always use secured connections for the data communication."<br />
<br />
Notizen zu Antispam:<br />
* Beschränkung auf 10 Beiträge pro Tag.<br />
* Mittels [https://github.com/Valve/fingerprintjs fingerprintjs] bereits im Client und beim Login mit in der DB gespeicherten Spam-Mails (IPs) vergleichen. Falls Match positiv ist, ins Leere laufen lassen.<br />
* Benutzerbeiträge am selben Tag wie die Anmeldung ignorieren<br />
* Moderieren der Neuanmeldungen?<br />
<br />
Weitereintwicklungsideen:<br />
* Social Media: 2-Click-Button für Twitter und Facebook einbauen, zum Liken und Retweeten (unter eigenem Konto). <br />
* Webanalytics einbauen?<br />
* Back-Button anschauen bei search, optional (max. 4h).<br />
<br />
== 2017 ==<br />
<br />
=== Releases ===<br />
Done:<br />
* "Twitter-Auftritt einrichten": IFTTT anpassen.<br />
* „Testdatensatz“ (Excel?) erzeugen und pflegen aus den Spam-Einträgen (und diese dann löschen)<br />
<br />
Webapp Release 2017-1: <br />
* (Dennis) Antispam im Backend verbessern - aktuell werden 1 bis 5 mal pro Tag Spam eingetragen (wohl zur Google Search Optimization). : <br />
** Google CAPTCHA beim Registrieren und bei Kontakt<br />
** Vorname extrem lang > 60 => ignorieren<br />
** Wenn bei Tätigkeitsbereich, Interessensgebiete, Fachbereiche kein Enum eingegeben, sondern Freitext => warnen (verify=warned)<br />
** Wenn bei Tätigkeitsbereich, Interessensgebiete, Fachbereiche der String "Version" eingegeen wurde => ignorieren (verify=ignored??)<br />
** Blacklist: https://www.geowebforum.ch/spam.php?view=1 ergänzen mit "yandex.com, yandex.ru,, printemailtext.com, emailer.printemailtext.com".<br />
* Top-Themen-Anpassung: „Forschung“ umbenennen in „Jobs“ (alle Sprachen) und gleich unter Thema „Aus- und Weiterbildung“ einordnen. <br />
<br />
Webapp Release 2017-2: <br />
* neues Grafikdesign Rest<br />
** Startseite<br />
** Mail-Versand-Template<br />
** ???<br />
* Twitter-Card sowie FB-Resource einbauen: vgl. https://giswiki.hsr.ch/Best_Practices_for_Web_Maps#Metadata_for_Social_Media<br />
<br />
Weitere Releases:<br />
* Backup<br />
<br />
<br />
=== Requests Bugs === <br />
* MySQL MyAdmin => CSV-Liste der Abonennten ohne "E-Mail Benachrichtigung über alle neuen Beiträge der letzten Woche"<br />
* Ev. ein Attribut "verify" bei den Stammdaten einführen (default: verify=null)?<br />
* (tba. nice-to-have) RSS-Feed mit Hashtags ergänzen, damit es Twitter mit Hashtags besser funktioniert.<br />
* (IFS) https://stats.uptimerobot.com/ ???<br />
* 2-Click-Button für Twitter und Facebook einbauen, zum Liken und Retweeten (unter eigenem Konto) (nice-to-have).<br />
<br />
Bugs: -<br />
<br />
[[Datei:GWF-Spam_2016.jpg]]<br />
''Abbildung: GWF-Spam.''<br />
<br />
== 2016 / 2015 ==<br />
<br />
Siehe 'Seite'.<br />
<br />
== 2014 ==<br />
<br />
Bugs: -<br />
<br />
Feature Request:<br />
* Es gibt beim File Upload eine Begrenzung auf 10MB. Uplaoad von Dateien, die grösser sind, wird abgebrochen. Offensichtlich fehlt dazu eine Fehlermeldung.<br />
<br />
== 2013 ==<br />
<br />
31. Juli 2013.<br />
<br />
Features:<br />
* Projekt "GWF Mobile": Webseite "mobilfähig" machen: Getestet vorläufig auf Internet Explorer 8 und Chrome (inkl. Firefox); später Safari, ca. 40 PHP-Seiten(!); Pop-up-Fenster neu in Webseite integriert; Alles mal 4 wegen Vier-Sprachigkeit<br />
* Startseite: Grafisch aufpeppen: Striche weg<br />
* Startseite: Grafisches Gruppieren der Themen<br />
* Startseite: RSS Auto Discovery (Test mit Google Reader auf Android) auf index.html eintragen.<br />
* Startseite: Anzeige neuer Themen seit letzten Montag (analog http://www.geowebforum.ch/last_entries.php )<br />
* Suche nach "agit", dann Diskussion, dann "Back"-Button => "Form Resend"-Fehler...<br />
* User Liste sortiert<br />
<br />
Bugs:<br />
* Zugriff auf Dokumente aus geschlossener Gruppe funktioniert nicht (Egloff)<br />
* "Letzte Beiträge": Wenn ein Bild in den ersten X Zeichen, die dargestellt werden eingebettet ist, wird es in voller Grösse dargestellt. Das Bild sollte besser in der Grösse beschränkt oder aber ausgeblendet werden.<br />
* Fehler bei „Neue Diskussion beginnen“: Gehe z.B. zu Diskussionen zum Thema «Test»; „Neue Diskussion beginnen“...; Ok.; Diskussion löschen; Nun kann man keine Diskussionen mehr beginnen!; Nach Aus- und wieder Einloggen ging’s wieder.<br />
* Montagsmail von Ende Dezember ist nicht raus => Berechnungsfehler.<br />
* Beiträge, die vor dem Sonntag erfasst und aber erst nach Sonntag 03:00 freigeschaltet werden, kommen nie im Mail eine Woche darauf nicht. Vgl. z.B. http://www.geowebforum.ch/thread.php?postingID=2012 -. Mo 22.02.2010 (das ist so. wenn ein eintrag in woche X erstellt wird und am zeitpunkt, an dem die newsletter für woche X versandt wird, hidden ist, wird er nie als neu angepriesen, da die nächste newsletter für die woche X+1 bestimmt ist und nicht für die woche X).<br />
* Fehlermeldungen bei nicht-existierenden Seiten: Bei [http://www.geowebforum.ch/thread.php?postingID=2654] kommt eine Fehlermeldung ("Diese Beitrag ist leider nicht mehr vorhanden"), jedoch abgeschnitten. Bei [http://www.geowebforum.ch/thread.php?threadID=1125] kommt gar keine Fehlermeldung.<br />
<br />
== URL's in Postings ==<br />
[[Allowed URLs in Postings Roule]]<br />
<br />
== Feature Requests / Ideen ==<br />
<br />
Kleinere Verbesserungen:<br />
* Nach Login Weiterleitung nach der ursprünglich aufgerufenen Seite.<br />
* Wöchentliche Zusammenfassung bei geschlossenen Gruppen.<br />
* Preview-Funktion (mit Button) für Benutzer beim Erfassen eines neuen Beitrags.<br />
<br />
== Erledigt ==<br />
* <s>Themen: Wenn ich als Titel "Comité d'éthique de la 3D" angebe, wird "Comité d\'éthique de la 3D" eingetragen und dargestellt: Was tun? (vgl. das neue Thema das ich erstellt habe).</s> (erledigt [[Benutzer:Felu|Felu]] 17:39, 15. Feb. 2012 (CET))<br />
* <s>In "Neue Diskussion": Länge von "Titel der neuen Diskussion" gleich breit wie der Text machen, also statt zurzeit 43 neu ca. 82 Zeichen.</s> (erledigt [[Benutzer:Felu|Felu]] 17:56, 15. Feb. 2012 (CET))<br />
* <s>"Suchen"-Feld im Header einbauen, so dass es von jeder Seite aus nutzbar ist.</s> (erledigt [[Benutzer:Felu|Felu]] 14:21, 16. Feb. 2012 (CET))<br />
* <s>In der Ansicht '[http://www.geowebforum.ch/memberlist.php?showalphabet=B&result=true&compact=yes Mitgliederliste]' einen neuen Link in den Mitglied-Namen einbauen, wo man als Administrator direkt zu "Mitglieder Bearbeiten" gelangt.</s> (erledigt [[Benutzer:Felu|Felu]] 15:28, 16. Feb. 2012 (CET))<br />
* <s>Einbau OpenSearch (xml) in Startseite (vgl. OpenSearch). http://taginfo.openstreetmap.ch/search?q=schloss#keys</s>(erledigt [[Benutzer:Felu|Felu]] 17:54, 16. Feb. 2012 (CET))<br />
* <s>Verständlichere und schönere Fehlermeldung bei "http://www.geowebforum.ch/thread.php" und "http://www.geowebforum.ch/thema.php" und "http://www.geowebforum.ch/thema.php?themenID=blablabla" </s> (erledigt [[Benutzer:Felu|Felu]] 15:44, 21. Feb. 2012 (CET))<br />
* <s>Diskussionen zum Thema X: Bei Beitrag verschieben (z.B. .../thema.php?move=1007) sollte die Liste sortiert sein (da fehlt ein ORDER BY ...).</s> (erledigt [[Benutzer:Felu|Felu]] 18:01, 16. Feb. 2012 (CET))<br />
* <s>Arbeitsgruppen: Beim Eröffnen einer neuen Arbeitsgruppe, sollte die Auswahlliste sortiert sein (da fehlt ein ORDER BY ...).</s> (erledigt [[Benutzer:Felu|Felu]] 18:16, 16. Feb. 2012 (CET))<br />
* Bug: <s>img-Tag wird nicht dargestellt: Vgl. http://www.geowebforum.ch/thread.php?threadID=1033#2490</s> (erledigt [[Benutzer:Felu|Felu]] 13:35, 8. Mai 2012 (CEST))</div>NicolaJordanhttps://giswiki.hsr.ch/index.php?title=QGIS_Plugins_mit_Python&diff=60267QGIS Plugins mit Python2017-03-09T10:47:55Z<p>NicolaJordan: </p>
<hr />
<div>'''QGIS Plugins mit Python - PyQGIS'''<br />
<br />
Siehe auch: [[QGIS for Devs]], [[QGIS]], [[QGIS - Tipps und Tricks]], [[Python]] (QGIS nutzt Python 2.7)<br />
<br />
== Allgemeines ==<br />
<br />
Wichtige Informationen:<br />
* Dokumentation/Tutorials: [http://www.qgis.org/pyqgis-cookbook/intro.html#python-applications PyQGis Cookbook] (QGIS Documentation), insbesondere [http://www.qgis.org/pyqgis-cookbook/plugins.html Kap. 'Developing Python Plugins'] (PyQGIS, QT4, Eclipse, Eclipse PyDev)<br />
* Diagram about main QGIS Python API classes: http://labs.webgeodatavore.com/partage/diagramme_principal.html ([https://github.com/webgeodatavore/qgis-class-diagram Sources])<br />
* QGIS-Python-Plugin-Verzeichnis: C:\Documents and Settings\<username>\.qgis\python\plugins (Windows).<br />
* QTDesigner unter Windows ist nun Bestandteil von der QT IDE [http://qt.nokia.com/products/ QTCreator]. <br />
<br />
QGIS Plugins mit Python: Siehe [[#Writing_QGIS_Plugins]]<br />
<br />
Tools:<br />
* QGIS Python Plugin Builder: http://pyqgis.org/builder/plugin_builder.py<br />
* From the QGIS-dev mailing list: [http://osgeo-org.1560.x6.nabble.com/A-common-set-of-functions-for-QGIS-plugins-td5233908.html "A common set of functions"] by Victor Olaya, Nathan Woodrow<br />
<br />
Manuelles Installieren eines Python-Plugins myPlugin:<br />
* Download myPlugin.zip.<br />
* Auspacken von myPlugin in einem temporären Verzeichnis; nun sollte ein Ordner myPlugin/ vorhanden sein.<br />
* Den Ordner myPlugin ins QGIS-Python-Plugin-Verzeichnis kopieren.<br />
* QGIS (neu) starten und "Erweiterungen verwalten..." wählen. Dort sollte ein neuer Eintrag stehen => ankreuzen.<br />
<br />
== Writing QGIS Plugins ==<br />
<br />
* Documentation zum Schreiben von PyQGIS-Plugins:<br />
** '''[http://docs.qgis.org/testing/en/docs/pyqgis_developer_cookbook/ PyQGIS Developer Cookbook]'''<br />
** '''[http://www.qgis.org/api/ QGIS API]''' <br />
** QGIS Manual - Guide: http://qgis.org/en/documentation/manuals.html > QGIS Coding and Compilation Guide<br />
** Forum: http://forum.qgis.org/viewforum.php?f=5<br />
** Wiki-Artikel: http://www.qgis.org/wiki/Writing_Python_Plugins<br />
** Community Support: http://gis.stackexchange.com/questions/tagged/pyqgis<br />
* Tutorials / Bücher: <br />
** Book [http://pyqgis.com The PyQGIS Programmer's Guide] <br />
** [http://blog.qgis.org/node/59 Quantum GIS Blog]<br />
** [http://docs.qgis.org/testing/en/docs/pyqgis_developer_cookbook/ide_debugging.html How to debug a plugin using PDB] on QGIS Wiki (for C++ on Linux see [http://www.qgis.org/wiki/How_to_debug_QGIS_Plugins How to debug QGIS pugins])<br />
** ''Rapid GUI Programming with Python and Qt'', Summerfield, Mark - Gutes Buch zu PyQt 4, Python und QT wird auch erklärt.<br />
** Building a plugin for QGIS http://gis.ucar.edu/building-plugin-qgis<br />
<br />
== Testing QGIS Plugins ==<br />
<br />
* Writing Uni Tests for QGIS Plugins: http://snorf.net/blog/2014/01/04/writing-unit-tests-for-qgis-python-plugins/<br />
* Testen von Qt-GUI Komponenten: http://www.voom.net/pyqt-qtest-example<br />
* Neues Python Modul "qgis.testing" (4.2.2016): [http://www.opengis.ch/2016/02/04/increasing-the-stability-of-processing-algorithms/]<br />
<br />
== Plattform-unabhängiges Programmieren ==<br />
<br />
Auf was ist bei der plattform-unabhängigen Programmieren zu achten?<br />
<br />
* Encoding<br />
* Fonts: http://en.wikipedia.org/wiki/Liberation_fonts<br />
* tbd.<br />
<br />
== UX Guidelines ==<br />
<br />
Siehe [[QGIS for Devs#UX Guidelines]] (GUI)<br />
<br />
== Eclipse/PyDev ==<br />
<br />
Wie kann man Eclipse mit PyDev zum Entwickeln von QGIS-Plugins (QT4) aufsetzen inklusive Unit-Testing und Debugging (gem. [http://www.qgis.org/pyqgis-cookbook/intro.html#python-applications] )?<br />
<br />
=== Installation Eclipse ===<br />
<br />
* Download minimalstes Eclipse 3.x, sprich nur Eclipse Platform Runtime Binary, welches leider nicht direkt auf der Hauptseite verfügbar ist<br />
# http://download.eclipse.org/eclipse/downloads/eclipse3x.php<br />
# -> Latest Release<br />
# Zur Platform Runtime Binary Sektion navigieren und entsprechenden Download starten<br />
# Installation<br />
<br />
=== Einrichten Eclipse ===<br />
<br />
* Installation/Einrichten des Eclipse Marketplace<br />
# Eclipse starten<br />
# ''Help->Install New Software''<br />
# ''Indigo - http://download.eclipse.org/releases/indigo'' als Quelle auswählen<br />
# Im Filter Feld ''Market'' eingeben<br />
# '''Marketplace Client''' auswählen und installieren<br />
<br />
* Installation PyDev<br />
# ''Help->Eclipse Marketplace...''<br />
# Im Suchfeld nach '''pydev''' suchen<br />
# ''PyDev - Python IDE for Eclipse'' installieren<br />
# Konfiguration nach Eclipse Neustart:<br />
# ''Window->Preferences''<br />
# ''PyDev->Interpreter - Python'' für Linux oder ''PyDev->Interpreter - Iron Python'' und dann '''Auto Config''' wählen<br />
<br />
;Hinweis<br />
:PyDev und den eingebauten Debugger kennen lernen: http://www.vogella.de/articles/Python/article.html<br />
<br />
* Optional: Sourcecontrol EGit einrichten<br />
# ''Help->Eclipse Marketplace...''<br />
# Im Suchfeld nach '''egit''' suchen<br />
# ''EGit - Git Team Provider'' auswählen und installieren<br />
<br />
* CDT<br />
# ''Help->Install New Software''<br />
# ''Indigo - http://download.eclipse.org/releases/indigo'' als Quelle auswählen<br />
# In der Kategorie Programming Languages ''C/C++ Development Tools'' auswählen und installieren<br />
<br />
* Python und QT4<br />
# Folgende Pakete müssen für Linux, am Beispiel Ubuntu, installiert werden um mit qt4 und sqlite arbeiten zu können<br />
## python-qt4-sql<br />
## python-qt4-dev<br />
## libqt4-dev<br />
## libqt4-sql-sqlite<br />
## qt4-dev-tools<br />
## qt4-doc-html<br />
## pyqt4-dev-tools<br />
<br />
* Installation Eclipse Plugin<br />
# Download von http://qt.nokia.com/products/eclipse-integration/<br />
<br />
;Hinweis<br />
:Um die qt-Umgebung, sprich Designer etc. kennen zu lernen, ist das eingebaute Eclipse-CheatSheet sehr gut geeignet. Eclipse->Help->Cheat Sheets...<br />
:Ein Wiki mit vielen Tutorials gibts hier: http://diotavelli.net/PyQtWiki/Tutorials<br />
<br />
Eine alternative Anleitung zur Installation gibts hier: http://popdevelop.com/2010/04/setting-up-ide-and-creating-a-cross-platform-qt-python-gui-application/<br />
<br />
* QGIS installieren<br />
# Nach Anleitung von http://www.qgis.org/wiki/Download vorgehen<br />
# Zur Entwicklung libqgis-dev zusätzlich installieren<br />
<br />
== Debugging von Python-QGIS-Plugins mit Eclipse ==<br />
<br />
;Warum ist das Debugging von Plugins nicht so einfach wie bei einem Python-Programm?<br />
:Grund dafür ist, dass bei Plugins ein weiterer Prozess, also nicht unser Plugin-Code, die Lebensdauer unseres Codes bestimmt. Das heisst, dass wir in den wenigsten Fällen direkt in den Programmcode des 'Host'-Prozesses eingreifen können um an der Stelle zu warten, an welcher unser Plugin zum Einsatz kommt.<br />
<br />
;Wie verbinden wir nun den Eclipse-PyDev-Debugger und ein QGIS-Plugin?<br />
:Die Lösung die PyDev hierzu anbietet, verwendet einen sogenannten Remote-Debugger. Dabei agiert Eclipse-PyDev als Server, welcher auf einem bestimmten Port (Default ist 5678) auf eine Verbindung eines entsprechend ausgerüsteten Python-Programmes wartet. Sobald die Verbindung zu Stande gekommen ist können wir wie gewohnt debuggen.<br />
<br />
=== Remote-Debugger / Debug Server ===<br />
<br />
Als erstes wechseln wir in die Debug Perspektive von Eclipse. Dadurch erhalten wir zwei zusätzliche Symbole im Toolbar [[Datei:EclipseDebugServerIcons.png|200px|thumb|right|Toolbar Icons]] , welche uns erlauben den Remote-Debugger zu Starten/Stoppen. Alternativ dazu können wir den Debug-Server im Menu ''Pydev->Start/End Debug Server'' kontrollieren.<br />
<br />
Wir starten nun den Remote-Debugger durch anklicken des entsprechenden Symbols oder im Menu ''Pydev->Start Debug Server''. In der Konsole wird nun ausgegeben [[Datei:EclipsePydevDebugServerConsoleOutput.png|200px|thumb|right|Console output]], auf welchem Port der Debug Server auf eine Verbindung wartet. Der Port kann in den allgemeinen PyDev Einstellungen unter Debug angepasst werden.<br />
<br />
=== Anpassungen im Python-Plugin Code ===<br />
<br />
Damit unser Plugin mit dem Debug Server verbinden kann müssen wir den folgenden Code einbauen, '''am besten direkt nach den üblichen Module Imports von Python'''<br />
<br />
<pre><br />
#...<br />
<br />
import os<br />
from os import *<br />
pydevPysrcPath = os.environ.get('ECLIPSE_PYSRC_PATH', '')<br />
if pydevPysrcPath:<br />
if os.path.exists(pydevPysrcPath):<br />
import sys<br />
sys.path.append(pydevPysrcPath)<br />
import pydevd<br />
pydevd.settrace()<br />
else:<br />
print "Specified ECLIPSE_PYSRC_PATH [%s] does not exist" % (pydevPysrcPath)<br />
<br />
#...<br />
</pre><br />
<br />
Damit haben wir die Möglichkeit den Eclipse-Debug-Server nur dann zu kontaktieren, wenn wir auch die entsprechende Umgebungsvariable '''ECLIPSE_PYSRC_PATH''' gesetzt haben. Dies funktioniert natürlich nur dann, wenn wir auch die 'Host'-Applikation aus dieser Konsole starten.<br />
<br />
;Beispielaufruf in der Konsole (Linux)<br />
<pre><br />
~$ export ECLIPSE_PYSRC_PATH=/opt/eclipse/plugins/org.python.pydev.debug_2.2.3.2011100616/pysrc/<br />
~$ qgis &<br />
</pre><br />
<br />
;Beispiel (Windows)<br />
* Die Umgebungsvariable ECLIPSE_PYSRC_PATH setzen und QGIS starten. <br />
* Dazu gibt es zwei Möglichkeiten: 1. Batchdatei mit folgendem Inhalt (dann diese Batchdatei ausführen):<br />
<pre><br />
set ECLIPSE_PYSRC_PATH=/opt/eclipse/plugins/org.python.pydev.debug_2.2.3.2011100616/pysrc/" <br />
qgis.exe<br />
</pre><br />
* oder ECLIPSE_PYSRC_PATH dauerhaft als Systemvariable eintragen und QGIS mittels Doppelklick auf Icon - oder aus dem Startmenü- starten.<br />
<br />
; Weiterführende Informationen<br />
: remote-debugging: http://pydev.org/manual_adv_remote_debugger.html<br />
<br />
== How to publish a plugin ==<br />
<br />
Preparation: <br />
* Check if all attributes in the metadata.txt file are in order:<br />
** The version needs to be different to the previous one in order for the upload to work.<br />
** If needed change the experimental flag from true to false. Experimental plugins won't be shown in the QGIS plugin list by default.<br />
** It is recommended to have an Icon set for the plugin. Its max. size does not seem to be specified.<br />
* Remove all files from the directory you want to upload that are not needed for the plugin to run(e.g. *.pyc files, files and folders from IDEs, .gitignore etc.).<br />
* File names can only contain ASCII characters in order for the upload to work. Characters like Umlauts in file names will cause an Error when uploading.<br />
* The plugin directory can't contain hyphens in its name (if it does the plugin might still work in QGIS but it will show an error message).<br />
* ZIP your plugin directory.<br />
<br />
Upload:<br />
* In order to upload a plugin on the official QGIS page a OSGeo ID is required. It can be created here: https://www.osgeo.org/cgi-bin/ldap_create_user.py<br />
* On the page https://plugins.qgis.org/ login with your OSGeo ID.<br />
* The plugin (ZIP archive) can be uploaded here: https://plugins.qgis.org/plugins/add/ Check experimental field if the plugin still is experimental.<br />
* After uploading the plugin it won't be immediately available in the plugin list. It first has to get approved. The approval can take up to 2 weeks. Check "How to add your plugin to this repository" on https://plugins.qgis.org/ for the criteria the plugin has to meet in order to get approved.<br />
<br />
[[Kategorie:Geoprocessing]] [[Kategorie:QGIS]] [[Kategorie:Python]] [[Kategorie:Programmieren]] [[Kategorie:QGIS-Plugin]]</div>NicolaJordan