Publisher does not support the Fluid field type. Please do not contact asking when support will be available.

If you purchased an add-on from expressionengine.com, be sure to visit boldminded.com/claim to add the license to your account here on boldminded.com.

Ticket: after publisher lite upgrade to v101, seeing php error: undefined index, filename navee.moc.navee.ph

Status Resolved
Add-on / Version Publisher Lite
Severity Critical
EE Version 31
Images

Re-Open Ticket

Peter McDonagh

Jul 08, 2013

Hi Brian,
I’ve just upgraded publisher lite to version 1.0.1. However, I’ve been forced to rollback for the moment because I started seeing php errors on certain pages that contain navee sub-navigations.

I’m not sure if I should be contacting you, or navee creators about it. It’s definately related to the publisher upgrade, as when i roll-back, the errors are no longer visible.

Error: as follows:

A PHP Error was encountered

Severity: Notice

Message: Undefined index: 1

Filename: navee/mod.navee.php

Line Number: 2244

thanks

 

#1

BoldMinded (Brian)

Hi, Peter. Its probably an issue with Publisher as NavEE is trying to get the site pages on that line. Which version of Publisher did you roll back to?

#2

Peter McDonagh

Hi Brian,

I was running publisher lite 098.8 I uploaded the updated files you provided, and see a similar issue, this time, 2 php errors:


A PHP Error was encountered

Severity: Notice

Message: Undefined index: 1

Filename: navee/mod.navee.php

Line Number: 2244


A PHP Error was encountered

Severity: Warning

Message: array_merge(): Argument #1 is not an array

Filename: libraries/Functions.php

Line Number: 2501


I’ll leave those files on the server for the next 15hrs or so, if it helps. I may have to revert at about 10am GMT tomorrow to allow my client to continue inserting content.

thanks again pete

#3

BoldMinded (Brian)

I logged into the CP and didn’t see the Publisher NavEE extension. Take a look at the docs, you’ll need the extension to make the two talk: http://boldminded.com/add-ons/publisher/third-party-add-ons

#4

Peter McDonagh

Hi Brian, I’ve just installed the navee extension, and can see that it is enabled in the control panel. However, I’m still seeing the php errors. Any ideas?

Its currently running the publisher lite v101 files. I’ll leave them in place for the rest of the day.

tks

#5

BoldMinded (Brian)

I don’t think this is necessarily an issue with Publisher. You’re not using Pages or Structure, but NavEE is assuming the site_pages array contains a value. I’m not sure why the error occurred after updating Publisher, but I think the NavEE code could be changed to check for the presence of the value and make sure the array is of the proper format before trying to use it.

Around line 2344 of mod.navee.php the case statement should be updated to the following:

case "pages":
    $link_type           = $r->type;
    $nav[$count]["link"] = "";

    // add install directory if necessary
    if (strlen($this->ee_install_directory) > 0)
    {
        $nav[$count]["link"] .= "/" . $this->ee_install_directory;
    }

    // add index if necessary
    if ($this->include_index == "true")
    {
        $nav[$count]["link"] .= "/" . $this->EE->config->item('index_page');
    }

    $pages = $this->EE->config->item('site_pages');

    // pages content
    if ($pages && isset($pages[$this->site_id]["uris"]) && count($pages) > 0)
    {
        $pages = $pages[$this->site_id]["uris"];
        
        if (array_key_exists($r->entry_id, $pages))
        {
            $nav[$count]["link"] .= $pages[$r->entry_id];
        }
    }

break;

This moves the pages check to just before its needed to be used, and also validates the array before trying to access it. In your case since you’re not using any pages modules, this code will never run, but for those who are, it shouldn’t fail.

#6

Brian Litzinger

The code on lines 2244 and 2245 throwing the error were removed and used inside the case statement instead.

$pages = $this->EE->config->item('site_pages');
$pages = $pages[$this->site_id]["uris"];
#7

Brian Litzinger

I also updated Publisher to make sure this shouldn’t happen again. Either way I suggest NavEE validate the array before trying to use it. I’ve notified their developer of this ticket too.

Login to reply