4

I'm continuing my quest to make every piece of common site architecture into something that can be displayed in a View. Right now I'm on Panels panes and Page Manager pages.

I have a site that is most assuredly making use of Panels panes and Page Manager pages on the node display, node edit form, and a few other places. However, when I inspect page_manager_pages, or any other table in the DB that begins with page_manager_ or panels_, the table appears to be completely empty. (I'm using PHPMyAdmin, and it gives me that red cursor with an 'x' in it.)

I haven't been able to find an API call that lists all Panels panes, Page Manager pages, or other relevant data either. And when I have looked through the sites I own to see ones that do have something in the page_manager_pages or panel_panes tables, it seems to be much less than I would expect. (E.g. a large site that is heavily themed with Page Manager and Panels shows up in the db with just two entries in the page_manager_pages table.)

I've even combed through the SQL queries that Drupal does when I click "enable" on a disabled Page Manager page (e.g. the node edit form, the node display), but haven't found anything that looks meaningful.

3
  • Are you sure, the you have privileges to read the data from the database? Because, when I checked on my database as a root user, the tables page_manager_handlers and page_manager_pages have serialized entries of the settings of the panel pages. So, turns out the settings are being saved in the database.
    – AjitS
    Sep 4, 2013 at 5:53
  • I've never used it, but I think panels relies on ctools - which might suggest those settings are stored as ctools plugins?
    – Clive
    Sep 4, 2013 at 8:42
  • I didn't see any relevant tables with 'ctools' in the name either. Also, I'm pretty sure I have privileges. I've pulled out and unserialized blobs from other tables as part of this same project (e.g. nodetype settings, etc.)
    – beth
    Sep 4, 2013 at 15:04

1 Answer 1

0

This ended up requiring API calls, since Panels and Page Manager definitions can live in code or in the database.

First I got the tasks with page_manager_get_tasks().

This gave me a list of tasks, which appear to be high-level Page Manager stuff. My Workbench, Node add/edit form, Node template, User template, User edit form, and Custom Page were the tasks.

Custom Page had subtasks that included all my custom pages, so I did page_manager_get_task_subtasks() on each tasks that had subtasks, and then page_manager_load_task_handlers() on each subtask. Within the handlers, there is information about the Panels and other objects that go on that page.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.