Tortoise SVN on Linux ?

veröffentlicht in Consulting am 24. Jan. 2012 Tags: , , , ,

As a Software Developer or Project Manager one has to deal quite often with versioned documents (at least if he / she tries to keep minimum track of his / her work advancements). Without arguing on the individual advantages or disadvantages of SVN or GIT, most developers end up in using at least these two solutions (if not Mercurial and CVS as well). As a software engineering company that fully migrated to Ubuntu Linux Desktop we were searching for a tool similar to TortoiseSVN on Windows, that allows easy sharing and updating of repositories using the favorite Desktop Explorer (in our case Nautilus on Gnome). While addressing these task regularly we recently discovered RabbitVCS. We installed the tool on two different machines, one running Ubuntu Lucid (LTS) the other running Ubuntu Oneiric. It works like a charm, providing all menu entries that you need to neatly deal with SVN or GIT.

The only thing you have to do is to add the following PPA to your Ubuntu installation and update the repository afterwards (Ubuntu Karmic and Later)

(mehr…)

EmailStatusSender – Benachrichtigungen bei Mantis Events

veröffentlicht in Consulting am 22. Nov. 2011

Wir hatten den Wunsch bei neuen Issues in diversen Projekten immer benachrichtet zu werden. Die Einstellungen in Mantis erlaubten uns leider nur alle Administratoren auf einmal zu informieren. Unsere Intention bestand aber darin, die Benutzer für jedes Projekt einzeln konfigurieren zu können. So entstand die Idee das Pluginsystem von Mantis dafür zu verwenden. Es ist eventbasiert und sendet diese an alle Plugins, die sich für dieses Event angemeldet haben.

Im Moment werden nur bei neuen Issues alle konfigurierten Benutzer informiert. Dabei ist es durch Konfigurationsoptionen auch möglich den Reporter und den Bearbeitenden auszusparen. Es wird sicherlich mit neuen Anforderungen wachsen und genereller werden. Das aktuelle Plugin ist bei GitHub zu finden. Über Patches, Kommentare und Feedback würden wir uns natürlich freuen.

Magento Query Builder

veröffentlicht in Software Engineering am 21. Nov. 2011 Tags: , , , ,

Wenn man mal bei Magento schnell in der Datenbank nachschauen will, dann ist das sehr umständlich durch die EAV Datenbankstruktur. Ab und zu tauchen ein paar fertige SQL-Querys auf, die aber nicht auf jeden Shop passen. Da es ziemlich aufwändig ist, sich immer per Hand die entsprechenden Statements zusammenzubauen, haben wir ein kleines Tool geschrieben, mit dem man sich die SQL-Querys bauen lassen kann. Dafür braucht man nur PHP + Verbindung zur Datenbank.

Dieses Tool findet ihr auf GitHub:

https://github.com/OSguard/Magento-Query-Builder

Das Beispiel:

https://github.com/OSguard/Magento-Query-Builder/blob/master/example_export_all_products.php

erklärt im Wesentlichen, wie man das Script benutzen kann. Man erzeugt sich ein Objekt, auf das man zugreifen will und lädt die Attribute:

$builder = new QueryBuilder('catalog/product', array(0,1));
$builder->loadAllAttributes();

Danach wählt man aus, welche Attribute man ausgeben will:

$attr = array(
    "entity_id",
    "sku",
    "name",
    "price",
    "url_path",
    "url_key",
    "attribute_set",
    "status",
    "created_at",
    "updated_at"
    );
 
 
$builder->selectAttributes( $attr );

Man kann z.B. noch die Bedienung einschränken, damit eine WHERE-Klausel gebaut wird:

$builder->setCond( 'type_id', '=', '"simple"');

Dann kann man sich das Query ausgeben lassen:

$builder->getQuery();

In unserem Beispiel wird dann folgender SQL-Befehl erzeugt:

SELECT a.entity_id AS entity_id,
 a.sku AS sku,
 t0.VALUE AS name ,
 t1.VALUE AS price ,
 t2.VALUE AS url_path ,
 t3.VALUE AS url_key ,
 b.attribute_set_name AS attribute_set,
 t4.VALUE AS STATUS ,
 a.created_at AS created_at,
 a.updated_at AS updated_at
	FROM
	(
	SELECT
		entity.*
	FROM 
		catalog_product_entity entity 
        WHERE 
                entity.type_id = "simple"   ) a
		    LEFT JOIN
			eav_attribute_set b
		    ON
			b.attribute_set_id=a.attribute_set_id
		    LEFT JOIN 
                        catalog_product_entity_varchar t0
                        ON 
                        t0.attribute_id= 96 AND
                        t0.entity_id=a.entity_id AND
                        t0.store_id = 0 
LEFT JOIN 
                        catalog_product_entity_decimal t1
                        ON 
                        t1.attribute_id= 99 AND
                        t1.entity_id=a.entity_id AND
                        t1.store_id = 0 
LEFT JOIN 
                        catalog_product_entity_varchar t2
                        ON 
                        t2.attribute_id= 570 AND
                        t2.entity_id=a.entity_id AND
                        t2.store_id = 0 
LEFT JOIN 
                        catalog_product_entity_varchar t3
                        ON 
                        t3.attribute_id= 481 AND
                        t3.entity_id=a.entity_id AND
                        t3.store_id = 0 
LEFT JOIN 
                        catalog_product_entity_int t4
                        ON 
                        t4.attribute_id= 273 AND
                        t4.entity_id=a.entity_id AND
                        t4.store_id = 0

Das ist keine fertige Bibliothek, die man in ein Modul einbauen kann. Aber mann kann damit z.B. Export-Scripte bauen, die auch sehr viele Produkte in Sekunden exportieren, da hier der Magento-Weg sehr langsam ist. Oder es erleichtert das Arbeiten auf der Datenbank-Konsole. Zur Zeit ist das noch eine Rohfassung, vielleicht findet sich ja der ein oder andere, der bei der Entwicklung hilft. Der Code steht unter BSD-Lizenz.

Nächste Seite »