Inhalte aufrufen

Profilbild

Pagebuilder Inhalte im Plugin verwenden


  • Bitte melden Sie sich an, um eine Antwort zu verfassen.
4 Antworten zu diesem Thema

#1 McGum

McGum

    Member

  • Members
  • PunktPunkt
  • 16 Beiträge

Geschrieben: 14 August 2019 - 10:12

Hallo,

 

da es ja leider nichts out of the box gibt um PageBuilder Inhalte abhängig von anonym oder angemeldet darzustellen, muss ich das in eine Plugin abbilden. Ich habe folgendes gemacht:

 

eine View gebaut und dort ist das dann drin:

 

if (string.IsNullOrEmpty(Model.CustomerFullName))
{
Html.RenderAction("TopicBlock", "Topic", new { systemName = "AnonymousHome", isLead = true, area = "" });
}

else
{
Html.RenderAction("TopicBlock", "Topic", new { systemName = "HomeLoggedIn", isLead = true, area = "" });
}

 

Leider werden die PageBuilder Inhalte nicht dargestellt. (die Seiteninhalte wenn vorhanden schon)

 

Was ist zu tun?



#2 Murat Cakir

Murat Cakir

    SmartStore AG

  • Administrators
  • 1118 Beiträge

Geschrieben: 15 August 2019 - 18:07

Natürlich habe ich nur Bahnhof verstanden  :)

  • Was für ein Plugin ist das?
  • Wo ist diese View? In dem besagten Plugin? Und wo genau?
  • Hast du denn einen Custom-Block implementiert? Also IBlock, IBlockHandler<> etc. implementiert?

Bei technischen Fragen brauchen wir schon mehr Details...


Murat Cakir
SmartStore AG


#3 McGum

McGum

    Member

  • Members
  • PunktPunkt
  • 16 Beiträge

Geschrieben: 16 August 2019 - 10:51

OK, dann versuch ichs mal:

 

Plugin ist von mir geschrieben und die View ist dort im Plugin. Die View wird auch aufgerufen aber die PageBuilderinhalte (die Pagebuilder Inhalte sind aber an die Seiten gebunden) werden nicht dargestellt.

 

Blockhandler habe ich nicht implementiert sondern dachte ich machs mir einfach und nehm den Default topic

 

 

Eventuell sollte ich kurz skizzieren, was das Ziel ist:

 

Ich will eigentlich nur PageBuilderinhalte auf der Startseite anzeigen -- allerdings abhängig von angemeldet oder nicht angemeldet.

 

Vermutlich benutze ich das einfach falsch .. leider kann ich aber keine Doku o.ä. dazu fnden....

 

Grundsatzfrage wäre daher: wie bekomme ich Pagebuilderinhalte in einem Plugin dargestellt oder wie bekomme ich Pagebuilderinhalte abhängig von einer anmeldung dargestellt :)



#4 Murat Cakir

Murat Cakir

    SmartStore AG

  • Administrators
  • 1118 Beiträge

Geschrieben: 16 August 2019 - 18:21

Zugriffsrechte bzw. Kundengruppen-Support kommt leider erst in Version 4; out-of-the-box geht das also im Moment nicht.
 
Wenn Seite als Story-Ziel definiert wurde, muss es sich um eine vollständige Seite handeln, also eine, die per Browser aufrufbar ist. Ein TopicBlock aber ist keine Seite, sondern nur irgendein Inhalt bzw. Snippet. Wenn du deine Story aber auf der Startseite anzeigen möchtest, gibst du zunächst als Ziel Seite > Startseite an. Jetzt brauchst du noch Widget-Zonen. Du könntest in deinem Plugin-View zwei neue Widget-Zonen definieren:

if (string.IsNullOrEmpty(Model.CustomerFullName))
{
    Html.RenderWidget("my_widget_zone_for_guests");
}

else
{
    Html.RenderWidget("my_widget_zone_for_registered");
}

Also statt RenderAction() rufst du RenderWidget() auf. Jetzt kannst du deiner Story eines dieser Zonen (my_widget_zone_for_guests oder my_widget_zone_for_registered) zuweisen. Diese Zonen werden dir aber in der SelectBox nicht angeboten werden, weil das System sie nicht kennt (du hast sie schließlich soeben programmatisch hinzugefügt). Ist aber nicht schlimm: einfach eingeben und übernehmen geht auch, weil die Box FreeEntry erlaubt.
 
Ich hoffe, das hilft dir weiter.


Murat Cakir
SmartStore AG


#5 McGum

McGum

    Member

  • Members
  • PunktPunkt
  • 16 Beiträge

Geschrieben: 17 August 2019 - 12:10

Super! Das funktioniert ganz hervorragend! Danke!