80 Nachrichten unter 29 Themen von 35 Mitgliedern
[SilverStripe Roadmap][Changelog]

bi-relationales mapping aller Pages

Seite: 1 653 mal gelesen
  • mtz
    mtz Community Member
    2 Beiträge

    bi-relationales mapping aller Pages

    Hallo,

    ich möchte gerne die Möglichkeit schaffen über eine Checkbox-Liste alle Seiten miteinander zu verküpfen.

    bisher habe ich nur eine many_many - Relation in der Page-Klasse die so aussieht:

       static $many_many = array(
          'Pages' => 'Page'
       );

    Wenn ich nun Seite A mit Seite B verküpfe, möchte ich natürlich auch das automatisch Seite B mit Seite A verküpft ist.
    hat jemand eine Idee wie man sowas hinkriegt in Silverstripe?

    Grüße,
    Mattes
  • brokemeister
    brokemeister Community Member
    76 Beiträge

    Re: bi-relationales mapping aller Pages

    Hallo Mattes,

    du hast nur die halbe Verlinkung vergessen...

    Es fehlt noch der "static $_belongs_many_many"-Teil.

    Anschließend einfach eine Funktion erstellen die beide Richtungen abgreift...


    public function getAllPages() {
    $pages = $this->Pages();
    $linkedpages = $this->LinkedPages(); //belongs_many_many
    $pages->merge($linkedpages);
    //$pages->sort(...);
    return $pages;
    }


    So ähnlich müsste es aussehen (ungetestet);

    Gruß

    Malte

    EOS Uptrade GmbH - Komplexes einfach machen | Certified Silverstripe Partner | www.eos-uptrade.de

  • mtz
    mtz Community Member
    2 Beiträge

    Re: bi-relationales mapping aller Pages

    well, das klappt gut, danke.

    jetzt brauche ich das gleiche aber noch für die checkbox-liste im Backend. Denn wenn man jede
    Seite in zwei Richtungen verlinken kann wird es einem irgendwann unmöglich eine Verlinkung zuverlässig
    wieder zu lösen.

    Momentan erstelle ich die Liste so:

    $pagesList = DataObject::get('Page');
          
          $fields->addFieldToTab('Root.Content.Relations', new CheckboxSetField('PagesRelation', '', $pagesList));

    da sind aber natürlich nicht die Seiten angecheckt welche auf mich zeigen....


    Gruß,
    Mat
  • brokemeister
    brokemeister Community Member
    76 Beiträge

    Re: bi-relationales mapping aller Pages

    Hi Mat!

    Es gibt dafür glaub ich ein Module... irgendwas mit Multiselect... Musst du mal schauen, ob das mit dem geht...

    Gruß

    Malte

    EOS Uptrade GmbH - Komplexes einfach machen | Certified Silverstripe Partner | www.eos-uptrade.de

Zur Zeit online: Zur Zeit ist leider niemand online.

Wir begrüßen unsere neuen Mitglieder: saerdna