Ich kann nicht herausfinden, wie ein Datenobjekt auf verschiedene Arten verwendet werden kann. Im Moment kann ich es nur auf einer Seite anzeigen lassen.Silverstripedatenobjekt, das auf mehreren Seiten angezeigt werden soll
Ich möchte in der Lage sein, die Elemente der Tabelle in den cms zu bearbeiten, eine Liste von Elementen auf einer Seite und dann ein bestimmtes Element auf einer anderen Seite anzuzeigen.
So habe ich es so weit strukturiert, dass ich alle Clients auf einer Seite auflisten und sie im CMS bearbeiten kann. Ich kann sie nicht auf einer anderen Seite als "clientPage" auflisten, noch kann ich eine Detailansichtsseite eines Clients sehen.
class Clients extends DataObject {
public static $db = array(
//All the table columns
);
// One-to-one relationship with profile picture
public static $has_one = array(
'ProfilePicture' => 'Image',
'ClientPage' => 'ClientPage'
);
// Summary fields
public static $summary_fields = array(
'ProfilePicture.CMSThumbnail'=>'Picture',
'FIRST_NAME'=>'First Name',
'LAST_NAME'=>'Last Name',
'EMAIL'=>'Email'
);
public function getCMSFields_forPopup() {
// Profile picture field
$thumbField = new UploadField('ProfilePicture', 'Profile picture');
$thumbField->allowedExtensions = array('jpg', 'png', 'gif');
// Name, Description and Website fields
return new FieldList(
//all the editable fields for the cms popup
);
}
}
Die ClientPage
class ClientPage extends Page{
private static $has_many = array(
'Clients'=>'Client'
);
public function getCMSFields()
{
$fields = parent::getCMSFields();
$fields->addFieldToTab('Root.Client', GridField::create(
'Client',
'Client List',
$this->Clients(),
GridFieldConfig_RecordEditor::create()
));
return $fields;
}
}
class ClientPage_Controller extends Page_Controller{
public function init() {
parent::init();
}
}
Wenn ich versuche, eine Verzeichnisseite mit den gleichen Daten zu machen Objekt, das es nicht
funktioniertclass ClientDirectoryPage extends Page {
private static $has_many = array(
'Clients'=>'Client'
);
public function getCMSFields()
{
$fields = parent::getCMSFields();
return $fields;
}
}
class ClientDirectoryPage_Controller extends Page_Controller{
public function init() {
parent::init();
}
}
Bitte klären, warum sollten Sie eine separate Client-Klasse benötigen? –
Was Wenn ich nur eine Client-Seite erstellen möchte, die mit dem angegebenen Link gefüllt wird. Ich habe eine Tabelle bereits voll von Klienten und will nicht eine Seite für jedes schaffen. Ich versuche herauszufinden, wie ich $ datObject :: get verwenden kann, um eine Liste aller Reihen in der Tabelle anzuzeigen Zeig mir das? – silversunhunter
Clients verfügen über mehrere Datenfelder und werden vom Site-Administrator innerhalb der Site verwaltet. Sie sind keine Benutzer/Mitglieder ... – silversunhunter