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: http://redaxo.org/slack/
Fanello
Beiträge: 336
Registriert: 24. Mai 2006, 14:01
Wohnort: Riedt (Schweiz)

Navigation: Undefined property

3. Feb 2016, 11:28

Hallo zusammen

Ich habe ein Navigations-Template, das ich für Bootstrap-Seiten benötige und dementsprechend responsive ist. Das heisst, bei der Smartphone-Ansicht erscheint das Navi-Icon statt gleich die ganze Navigation.
Tieses Template sieht so aus:

Code: Alles auswählen

<!-- Fixed navbar -->
<nav class="navbar navbar-default" role="navigation">
<div class="container">
<div class="navbar-header">

<a class="navbar-brand" href="http://www.meine-domain.ch">
<img src="files/logo-resp.png" class="navbar-logo" alt="Firma">
</a>

<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>

</div>
<div id="navbar" class="collapse navbar-collapse">
<?php
$PATH = explode("|", $this -> getValue("path") . $this -> getValue("article_id") . "|");
echo '<ul class="nav navbar-nav">';
foreach (OOCategory::getRootCategories($this->ignoreOfflines) as $lev1) {

if ($lev1 -> isOnline(true)) {

if ($lev1 -> getId() == $PATH[1]) {
if (count($lev1 -> getChildren()) > 0) {
echo '<li class="dropdown active uppercase"><a class="dropdown-toggle" data-toggle="dropdown"  href="' . $lev1 -> getUrl() . '" title="' . $lev1 -> getName() . '">' . $lev1 -> getName() . '</a>';
} else {
echo '<li class="active uppercase"><a href="' . $lev1 -> getUrl() . '" title="' . $lev1 -> getName() . '">' . $lev1 -> getName() . '</a>';
}
} else {
if (count($lev1 -> getChildren()) > 0) {
echo '<li class="dropdown uppercase"><a class="dropdown-toggle" data-toggle="dropdown" href="' . $lev1 -> getUrl() . '" title="' . $lev1 -> getName() . '">' . $lev1 -> getName() . '</a>';
} else {
echo '<li class="uppercase"><a href="' . $lev1 -> getUrl() . '" title="' . $lev1 -> getName() . '">' . $lev1 -> getName() . '</a>';
}
}

}

if (count($lev1 -> getChildren()) > 0) {
echo '<ul class="dropdown-menu">';
foreach ($lev1->getChildren() as $lev2) {

if ($lev2 -> isOnline(true)) {

if ($lev2 -> getId() == $PATH[1]) {
$dropdownSub = "";
if (count($lev2 -> getChildren()) > 0)
$dropdownSub = "dropdown-submenu";
echo '<li class="uppercase active ' . $dropdownSub . '"> -- <a tabindex="-1" href="' . $lev2 -> getUrl() . '" title="' . $lev2 -> getName() . '">';
echo $lev2 -> getName();
echo '</a>';
if (count($lev2 -> getChildren()) > 0) {
echo '<ul class="dropdown-menu">';
foreach ($lev2->getChildren() as $lev3) {
if ($lev3 -> getId() == $PATH[2])
echo '<li class="active uppercase"> --- <a href="' . $lev3 -> getUrl() . '" title="' . $lev3 -> getName() . '">' . $lev3 -> getName() . '</a>';
else
echo '<li class="uppercase">... <a href="' . $lev3 -> getUrl() . '" title="' . $lev3 -> getName() . '">' . $lev3 -> getName() . '</a>';
}
echo '</ul>';
}
} else {
$dropdownSub = "";
if (count($lev2 -> getChildren()) > 0)
$dropdownSub = "dropdown-submenu";
echo '<li class="' . $dropdownSub . '"><a tabindex="-1" href="' . $lev2 -> getUrl() . '" title="' . $lev2 -> getName() . '">';
echo $lev2 -> getName();
echo '</a>';
if (count($lev2 -> getChildren()) > 0) {
echo '<ul class="dropdown-menu">';
foreach ($lev2->getChildren() as $lev3) {
if ($lev3 -> getId() == $PATH[2])
echo '<li class="active"><a href="' . $lev3 -> getUrl() . '" title="' . $lev3 -> getName() . '">' . $lev3 -> getName() . '</a>';
else
echo '<li><a href="' . $lev3 -> getUrl() . '" title="' . $lev3 -> getName() . '">' . $lev3 -> getName() . '</a>';
}
echo '</ul>';
}
}

}
if ($lev2 -> isOnline(true)) {echo '</li>';}
}
echo '</ul>';
}
if ($lev1 -> isOnline(true)) {echo '</li>';}
}

echo '</ul>';
?>

</div><!--/.nav-collapse -->
</div>
</nav>



Wenn ich nun auf das Navi-Icon klicke erscheint zwar die Navigation, jedoch darüber auch folgende PHP-Notice:
Notice: Undefined property: rex_article::$ignore_offlines in /home/meinedo/www/meine-domain.ch/redaxo/include/classes/class.rex_article_base.inc.php(395) : eval()'d code(8) : eval()'d code(72) : eval()'d code on line 25

Genau dieses Template verwende ich auch auf anderen Seiten (alle Redaxo 4.6.1), und bei denen funktioniert es einwandfrei.

Der einzige Unterschied ist, dass bei den funktionierenden Seiten PHP 5.4.45 und bei der NICHT korrekt funktionierenden Seite PHP 5.6.17 im Einsatz ist. Könnte es daran liegen?

Ich habe auch versucht, diese Zeile

Code: Alles auswählen

foreach (OOCategory::getRootCategories($this->ignoreOfflines) as $lev1) {
so anzupassen, hat aber nix gebracht:

Code: Alles auswählen

foreach (OOCategory::getRootCategories($this->ignore_offlines) as $lev1) {
NACHTRAG:
Habe vom Kunden Zugriff auf die Hosting-Einstellungen erhalten und das PHP auf Version 5.5 zurückgestellt. Dadurch erscheinen die Notices nicht mehr.

Zurück zu „Allgemeines [R4]“