cApiLayoutCollection - wie erweitern??? [für Profis]
Verfasst: Mo 3. Jan 2011, 18:26
Hallo Leute,
ich schlage mir gerade das Verzeichnis /contenido/classes/contenido um die Ohren.
Dort gibt es die Datei class.layout.php mit folgendem Inhalt:
Nun bastel ich im Corecode rum, um das Mandantenübergreifende Sharing von Layouts und Modulen zu realisieren.
Dazu benötige ich aber an einer Stelle eine DB-Abfrage, welche über 2 Tabellen geht. Über die bestehende con_lay und über meine neue Lookup-Tabelle con_lay_share (welche die Zuordnung der Layouts zu den Clients enthält.
Im Quellcode für die Generierung der Layout-Übersichtsliste werden die Daten für con_lay direkt über die Klasse cApiLayoutCollection in dieser Form gemacht:
Diese Klasse setzt in Ihrer Unterklasse cApiLayout den Tabellennamen für die Abfrage.
meine Frage nun, wie bekomme ich es hin, dass ich einen Select nach folgendem Schema über zwei tabellen abfragen kann
Wäre für einen anschaulichen Tipp sehr dankbar.
ich schlage mir gerade das Verzeichnis /contenido/classes/contenido um die Ohren.
Dort gibt es die Datei class.layout.php mit folgendem Inhalt:
Code: Alles auswählen
<?php
* Project:
if(!defined('CON_FRAMEWORK')) {
die('Illegal call');
}
cInclude("classes", "class.genericdb.php");
class cApiLayoutCollection extends ItemCollection
{
function cApiLayoutCollection ()
{
global $cfg;
parent::ItemCollection($cfg["tab"]["lay"], "idlay");
$this->_setItemClass("cApiLayout");
}
function create ($title)
{
global $client;
$item = parent::create();
$item->set("name", $title);
$item->set("idclient", $client);
$item->store();
return ($item);
}
}
class cApiLayout extends Item
{
function cApiLayout ()
{
global $cfg;
parent::Item($cfg["tab"]["lay"], "idlay");
$this->setFilters(array(), array());
}
}
?>
Dazu benötige ich aber an einer Stelle eine DB-Abfrage, welche über 2 Tabellen geht. Über die bestehende con_lay und über meine neue Lookup-Tabelle con_lay_share (welche die Zuordnung der Layouts zu den Clients enthält.
Im Quellcode für die Generierung der Layout-Übersichtsliste werden die Daten für con_lay direkt über die Klasse cApiLayoutCollection in dieser Form gemacht:
Code: Alles auswählen
$layouts = new cApiLayoutCollection;
$layouts->select("","","name ASC");
Code: Alles auswählen
parent::Item($cfg["tab"]["lay"], "idlay");
Code: Alles auswählen
$sql = "SELECT
idlay, name, idclient
FROM
".$cfg["tab"]["lay"]." l,
".$cfg["tab"]["lay_share"]." ls
WHERE ls.id_idlay = l.idlay
AND ls.id_idclient='$client'
ORDER BY name ASC";