Deutsch| English
  #1  
Alt 10.08.2011, 10:42
Erfahrener Benutzer
 
Registriert seit: 23.08.2010
Beiträge: 164
Standard microsite einbinden

Hallo,

kann ich in der Detailansicht eine php datei includen,
so das diese mit dem php script generierte Seite innerhalb des isppconfig angezeigt wird?

Ich hab eine Liste mit Kunden erstellt und möchte nun DEtails für jeden Kunden anzeigen.
Die passenden queries und einen grossteil der Seite habe ich schon für eine anderes Plugin erstellt und würde dies gern nutzen.
Im Grunde müsste ich diese Site doch in dem template includen, oder?

Gruß
Mit Zitat antworten
  #2  
Alt 10.08.2011, 11:38
Administrator
 
Registriert seit: 08.08.2007
Beiträge: 8.817
Standard

Für sowas gibt es in ISPConfig Interface plugins. In ISPConfig ist z.B. die Liste der DNS subrecords (A,CNAME, etc..) innerhalb des DNS Formulares als Plugin realisiert.

Scahu Dir dazu mal die Dateien interface/dns/dns_soa.tform, interface/dns/templates/dns_records_edit.htm sowie die Datei interface/lib/classes/plugin_listview.inc.php an.
Mit Zitat antworten
  #3  
Alt 10.08.2011, 12:19
Erfahrener Benutzer
 
Registriert seit: 23.08.2010
Beiträge: 164
Standard

mmh, das ist nicht so einfach zu verstehen.

ich habe in der *.tform.php folgendes eingefügt:

PHP-Code:
        'template_name' => array (
            
'datatype'    => 'VARCHAR',
            
'formtype'    => 'TEXT',
            
'default'    => '',
                        
'datasource' => array(
                    
'type' => 'SQL',
                    
'querystring' => 'SELECT client.company_name, client_template.template_name FROM client, client_template WHERE client.template_master LIKE client_template.template_id AND client.company_name;',
                    
'keyfield'    => 'client_id',
                    
'valuefield'  => 'company_name'
                                  
)
        ) 

und in der template.htm möchte ich nun dieses Feld ausgeben:

PHP-Code:
<table width="100%" border="1">
    <
tr>
        <
td>
            {
tmpl_var name='template_name'}
        </
td>
    </
tr>
</
table
Kann das so funktionieren oder fehlen dir noch Angaben?

Das Listing der Clients funkioniert, dort habe ich ein weiters Feld in die Tabelle einfügen können.
Kann man die gleiche tform für mehrere Seiten nehmen oder sollte ich eine neue bauen?


Gruß
Mit Zitat antworten
  #4  
Alt 10.08.2011, 12:59
Administrator
 
Registriert seit: 08.08.2007
Beiträge: 8.817
Standard

Der Code in der tform datei ist aber für Ein select Element und nicht für ein Plugin. Der Code zum laden eines Plugins ist:

Code:
'plugins' => array (
     	'dns_records' => array (
         	'class'   => 'plugin_listview',
     		'options' => array(
				'listdef' => 'list/dns_a.list.php',
				'sqlextwhere' => "zone = ".@intval(@$_REQUEST['id']),
				'sql_order_by' => "ORDER BY type, name"
			)
        )
	)
Schau bitte nochmal in die Dateien, die ich oben benannt habe. Dort findest Du in der Defintion der 2. Reiterkarte, wie man Plugins läd.

Zitat:
Kann man die gleiche tform für mehrere Seiten nehmen oder sollte ich eine neue bauen?
Eine tform datei ist immer nur für eine Seite gültig und muss in der tform Definition einen eindeutigen und einmaligen namen haben, da sie ja Informationen wie die Session Daten setzt die den Status dieses Formulares speichern.
Mit Zitat antworten
  #5  
Alt 10.08.2011, 13:34
Erfahrener Benutzer
 
Registriert seit: 23.08.2010
Beiträge: 164
Standard

Wenn ich nur Daten anzeigen lassen möchte,
sollte ich dann eine *.list.php umbauen?

Ich habe jetzt eine tform umgebaut um mir die
Limits einen Hostpackets anzuschauen,
dfür habe ich aus dem bestehen modul die tform daten kopiert
und das template ein wenig angepasst, soblad ich dieses Aufrufe
versucht ispconfig etwas in die DB zu schreiben.

ICh werde mich nochmal an dein beispiel setzen...
Mit Zitat antworten
  #6  
Alt 10.08.2011, 14:00
Administrator
 
Registriert seit: 08.08.2007
Beiträge: 8.817
Standard

Zitat:
Wenn ich nur Daten anzeigen lassen möchte,
sollte ich dann eine *.list.php umbauen?
Wenn es eine Liste mit Suche etc sein soll, dann macht es Sinn dies als Grundlage zu verwenden. Beachte aber dass es sich dav´bei um eine Listenansicht und nicht Detailansicht handelt, sie sit also nicht geeignet um sich einen einzelnen datensatz anziegn zu lassen.

Zitat:
Ich habe jetzt eine tform umgebaut um mir die
Limits einen Hostpackets anzuschauen,
dfür habe ich aus dem bestehen modul die tform daten kopiert
und das template ein wenig angepasst, soblad ich dieses Aufrufe
versucht ispconfig etwas in die DB zu schreiben.
Die tform Dateien sind die Definitionsdateien für editiertbare Formulare in ISPConfig, daher schreibt ispconfig dann auch alles zurück in die DB.
Mit Zitat antworten
  #7  
Alt 10.08.2011, 14:15
Erfahrener Benutzer
 
Registriert seit: 23.08.2010
Beiträge: 164
Standard

OK, die Info hilft weiter.
Gibt es auch eine klasse die zum anzeigen von Datensätzen gut ist?
Ich möchte im ersten Schritt einen Haufen Infos über den Kunden auf eine Setie bringen

EDIT:

kann ich bei einer Liste auch tabs machen? Hab noch kein Beispiel gefunde

Geändert von Rupertt (10.08.2011 um 14:34 Uhr).
Mit Zitat antworten
  #8  
Alt 10.08.2011, 14:40
Administrator
 
Registriert seit: 08.08.2007
Beiträge: 8.817
Standard

Zitat:
Gibt es auch eine klasse die zum anzeigen von Datensätzen gut ist?
Wenn es eine Liste ist, dann nimm am besten das Listen System.

Für eine Detailansicht eines einzelnen datensatzes die nicht editiertbar ist gibt es keine Klasse, da ISPConfig eine solche Funktionalität nicht benötigt. Du kannst ja aber problemlos die Daten mit setVar ins template laden und Dir dann beliebig mittels der template Vraibalen anzeigen lassen. ISPConfig ist da sehr flexibel, Du kannst da alles machen von vollautomatischen Formularen bis hin zu manuellen HTML Templates mit Variablenersetzung.

Zitat:
kann ich bei einer Liste auch tabs machen? Hab noch kein Beispiel gefunde
Nein.

Wenn Du tabs haben möchtest, dann müsstest Du ein tform Formular erstellen und dann darin das inline listen Plugin verwenden, so wie es im DNS Formular verwendet wird.
Mit Zitat antworten
  #9  
Alt 10.08.2011, 14:44
Administrator
 
Registriert seit: 08.08.2007
Beiträge: 8.817
Standard

Wenn Du Beispiele für die manuelle Programmierung mit Templates suchstm, dann schau Dir mal den language Editor im admin modul an oder den DNS wizard im DNS Modul. Die arbeiten beide direkt mit dem Templating System ohne tform und list Klassen.
Mit Zitat antworten
  #10  
Alt 10.08.2011, 16:52
Erfahrener Benutzer
 
Registriert seit: 23.08.2010
Beiträge: 164
Standard

viel viel besser, an den beispiel kann ich mich orientieren.
Ich würd gern die ganzen FElder eines clients in die passenden Variablen packen, aus dem code habe ich folgendes erstellt:

PHP-Code:
$client_data $app->db->queryOneRecord("SELECT *  FROM client WHERE client_id = $client_id");
//$app->tpl->setVar("client_no",$client_data["customer_no"]);
//$app->tpl->setVar("company_name",$client_data["company_name"]);

$fields explode(',',$client_data['fields']);
if(
is_array($fields)) {
    foreach(
$fields as $field) {
        
$app->tpl->setVar($field."_VISIBLE",1);
        
$app->tpl->setVar($field,$client_data[$field]);
    }

Wenn ich die variablen manuell setzte geht es, wie genau muss die schleife dafür aussehen?
Ich glaube die $field namen sind hier falsch.


thnx
Mit Zitat antworten
Antwort


Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an



Alle Zeitangaben in WEZ +2. Es ist jetzt 14:07 Uhr.


Powered by vBulletin® Version 3.8.1 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.6.0