[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
faceless - php ohne layout top bottom - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Benutzeravatar
darwin
Beiträge: 1725
Registriert: 2. Jan 2007, 17:10
Wohnort: LA

faceless - php ohne layout top bottom

15. Jan 2016, 09:53

Hi,
in R4 konnte man ja via url-parameter die /layout/top und layout/bottom
ausschalten bzw. ab und zu benötigte man ja auch mal n Script ohne Header/Footer.

Code: Alles auswählen

if($faceless != 1)
{
  // REX BACKEND LAYOUT TOP
  require $REX['INCLUDE_PATH'] . '/layout/top.php';
  
  // TITLE & SUBPAGE NAVIGATION
  rex_title($REX['ADDON']['name'][$myself].' <span class="addonversion">'.$REX['ADDON']['version'][$myself].'</span>', $subpages);

  // INCLUDE REQUESTED SUBPAGE
  if(!$subpage) {
    $subpage = 'start';  /* DEFAULT SUBPAGE */
  }
  
  require $REX['INCLUDE_PATH'] . '/addons/'.$myself.'/pages/'.$subpage.'.inc.php';

  
  // REX BACKEND LAYOUT BOTTOM
  require $REX['INCLUDE_PATH'] . '/layout/bottom.php';
  
} else {
  require $REX['INCLUDE_PATH'] . '/addons/'.$myself.'/pages/'.$subpage.'.inc.php';
}
 
wie würde man das nun in R5 machen.. via fragments?

ich versuche von einer Seite aus ein Script aufzurufen im Backend via URL:

Code: Alles auswählen

index.php?page=myPage/subpage&myvar=foo&faceless=true
bekomme dadurch allerdings immer den kompletten HTML Code der Backend Seite mitgeliefert.

Danke. Grz. Chris

PS: Zweck der Übung. AddOn zu portieren von R4 auf R5.

Benutzeravatar
Gregor.Harlan
Entwickler
Beiträge: 1130
Registriert: 4. Jun 2007, 10:35
Wohnort: Frankfurt am Main

Re: faceless - php ohne layout top bottom

15. Jan 2016, 11:01

Es ist nicht mehr möglich, innerhalb einer Page das zu steuern.
Stattdessen musst du einer gesamten (Sub)Page mitgeben, dass sie kein Layout bekommen soll ("hasLayout: false" in der package.yml).
Wenn es aus irgendwelchen Gründen doch unbedingt notwendig ist, dass über einen Parameter zu steuern, müsstest du in der boot.php bei der entsprechenden Page hasLayout je nach faceless-Parameter setzen.
Friends Of REDAXO: Gemeinsame REDAXO-Entwicklung!

Benutzeravatar
darwin
Beiträge: 1725
Registriert: 2. Jan 2007, 17:10
Wohnort: LA

Re: faceless - php ohne layout top bottom

15. Jan 2016, 11:22

HI, danke.
hasLayout: true/false ist schon mal nicht verkehrt.
Allerdings erhält die Seite dann immernoch ein paar Fragmente...
wenn z.B.: in der pages/index.php noch ein

Code: Alles auswählen

echo rex_view::title('Mein AddOn Title'); 
drin ist, erhält auch die /page/ mit hasLayout:false den Header ...

dann müsste man jeder Page einen eigenen title verpassen :shock: :?
oder eben deine Variante via boot.php (hättest du da bitte kurz ein Beispiel).
Danke! grz. Chris

Benutzeravatar
Gregor.Harlan
Entwickler
Beiträge: 1130
Registriert: 4. Jun 2007, 10:35
Wohnort: Frankfurt am Main

Re: faceless - php ohne layout top bottom

15. Jan 2016, 11:49

Mit dem Titel war aber doch immer schon, dass der den kompletten Titel-Bereich ausgibt. Oder was meinst du?

Ein Beispiel für boot.php:

Code: Alles auswählen

$page = $this->getProperty('page');
$page['subpages']['my_subpage']['hasLayout'] = !rex_get('faceless', 'bool');
$this->setProperty('page', $page);
Friends Of REDAXO: Gemeinsame REDAXO-Entwicklung!

Zurück zu „AddOns / Packages [R5]“