26 Nachrichten unter 10 Themen von 14 Mitgliedern
[SilverStripe Roadmap][Changelog]

SiteConfig Erweitern

Seite: 1 1589 mal gelesen
  • derdiggn
    derdiggn Community Member
    2 Beiträge

    SiteConfig Erweitern

    Hi

    ich versuche grade die SiteConfig zu erweitern um Informationen die ich im Footer brauche hierüber zu speichern.

    Im Grunde funktioniert dies auch mit einfachen Text Feldern, ich habe aber auch eine has_many Relation welche ich für Links zu Seite nutzen möchte.

    Bei Speichern der links bekomme ich immer folgenden Fehler


    Error at framework/model/UnsavedRelationList.php line 307: Uncaught LogicException: byID can't be called on an UnsavedRelationList.


    Hier mal mein Code

    class FooterLink extends DataObject {
       private static $db = array(
          'MenuTitle' => 'Varchar',
          'SortOrder' => 'Int'
       );   
       
       private static $has_one = array(
          'SiteConfig' => 'SiteConfig',
          'Page' => 'Page'
       );
       
       public function getCMSFields() {
       $fields = parent::getCMSFields();
       $fields->removeFieldFromTab("Root.Main","SiteConfigID");
          $fields->removeFieldFromTab("Root.Main","SortOrder");
       return $fields;
       }
    }

    class FooterConfig extends DataExtension {
    private static $db = array(
    'FooterText' => 'Varchar'
    );

       private static $has_many = array(
          'FooterLinks' => 'FooterLink'
       );
       
    public function updateCMSFields(FieldList $fields) {
    $fields->addFieldToTab("Root.Footer", new TextField("FooterText", "Text"));
          
          $gridFieldConfig = GridFieldConfig_RecordEditor::create();
       $gridFieldConfig->addComponent(new GridFieldSortableRows('SortOrder'));
       $gridfield = new GridField("FooterLinks", "Footer Links", singleton('SiteConfig')->FooterLinks()->sort("SortOrder"), $gridFieldConfig);      
       $fields->addFieldToTab('Root.Footer', $gridfield);
    }
    }


    Ich verwende den gleichen Code auf anderen Seiten dort funktioniert es fehlerfrei.

    Hoffe ihr habt eine Ideen um das Problem zu lösen ich komme leider nicht weiter.

    Vielen Dank und Gruß

    Daniel

Zur Zeit online: Zur Zeit ist leider niemand online.

Wir begrüßen unsere neuen Mitglieder: Serviceghr