Erstes ISPConfig Modul zum Auslesen installierter Anwendungen

Discussion in 'Developers' Forum' started by shadowcast, Feb 16, 2019.

  1. shadowcast

    shadowcast New Member

    Hallo,

    ich versuche mich gerade an einem eigenen Modul, habe hierzu Tims Howto, das Help sowie Sites Modul etwas "zusammengemixt".
    Meine Anforderungen sind, eine Liste zu bekommen in welcher die Anwendungen/CMS/etc. in den Webs erkannt wird, die Version sowie Verfügbare Version angezeigt werden, Beispiel:
    Domain Anwendung Installiert Verfügbar
    web-1 joomla 3.0.0 3.9.3

    Aus der Aktion-Datei erhalte ich bereits alle installierten Domains in einer Tabelle aufgelistet:
    Code:
    $list = new list_action;
    $list->SQLExtWhere = "web_domain.type = '" . $query_type . "'" . ($show_type == 'domain' ? " AND web_domain.parent_domain_id = '0'" : "");
    $list->SQLOrderBy = 'ORDER BY web_domain.domain';
    $list->onLoad();
    Mein erster "einfacher" Lösungsansatz, dass nur beim Aufruf die Ansichten ermittelt werden, dass darf ruhig auch etwas dauern. Später werde ich eigene Spalten/Tabellen erstellen, welche evtl. per Cronjob und einem Shell Skript gefüllt werden, gemeinsam mit den anderen ISPConfig Aktionen die täglich laufen, aber das später wenn ich mehr Plan vom Ganzen habe.

    Ich wollte nun eigentlich das Array oder Objekt bevor es ans Template geliefert wird mit einer Foreach auslesen, dann den Document-Root auf gewisse Dateien durchsuchen etc. Am Ende dann eben jedem Array die Felder "detected_app", "detected_version" & "available_version" anhängen. Diese dann alle in der Tabelle ausgeben.

    Die Frage ist nur, wie komme ich dazu, dass ich die gefundenen Records vorab durchlaufen kann?
    $list hat sie nicht, die das Record Array im $app komme ich auch so nicht ran? Vermutlich ganz einfach, ich sehs nur nicht.

    LG
     
  2. till

    till Super Moderator Staff Member ISPConfig Developer

    You will have to extend the list_action class and override e.g. the prepareDataRow($row) function. Take a look at the file web/sites/web_sites_stats.php for an example.
     

Share This Page