Index: panels_views/panels_views.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/panels/panels_views/Attic/panels_views.module,v
retrieving revision 1.1.2.31
diff -u -p -r1.1.2.31 panels_views.module
--- panels_views/panels_views.module	14 Jul 2008 05:10:16 -0000	1.1.2.31
+++ panels_views/panels_views.module	16 Jul 2008 16:42:29 -0000
@@ -768,6 +768,20 @@ function panels_views_render($conf, $pan
     return;
   }
 
+  // Sanitize pane configuration values.
+  $conf += array(
+    'view_type' => NULL,
+    'link_to_view' => NULL,
+    'more_link' => NULL,
+    'more_text' => NULL,
+    'feed_icons' => NULL,
+    'use_pager' => NULL,
+    'nodes_per_page' => NULL,
+    'offset' => NULL,
+    'url' => NULL,
+    'url_from_panel' => NULL,
+  );
+
   $args = array();
   if (!empty($pv->contexts)) {
     foreach ($pv->contexts as $id => $data) {
@@ -821,36 +835,32 @@ function panels_views_render($conf, $pan
   $block->subject = views_get_title($view, $view_type, $args);
 
   // link to view
-  if (($pv->allow_link_to_view && !empty($conf['link_to_view'])) ||
-      (!$pv->allow_link_to_view && $pv->link_to_view)) {
+  if (panel_views_render_setting($pv->link_to_view, $pv->allow_link_to_view, $conf['link_to_view'])) {
     $block->title_link = views_get_url($view, $args);
   }
 
   // more link
-  if (($pv->allow_more_link && !empty($conf['more_link'])) ||
-      (!$pv->allow_more_link && $pv->more_link)) {
+  if (panel_views_render_setting($pv->more_link, $pv->allow_more_link, $conf['more_link'])) {
     $block->more = array('href' => views_get_url($view, $args));
     $view->block_more = FALSE;
 
     // Alternative "more" link text
-    if ($pv->allow_more_text && $conf['more_text']) {
-      $block->more['title'] = $conf['more_text'];
-    }
-    else if ($pv->more_text) {
-      $block->more['title'] = $pv->more_text;
+    $more_text = panel_views_render_setting($pv->more_text, $pv->allow_more_text, $conf['more_text']);
+    if ($more_text) {
+      $block->more['title'] = $more_text;
     }
   }
 
   // Turn on pager?
-  if ($pv->allow_use_pager) {
-    $pager_id = empty($conf['use_pager']) ? 0 : (intval($conf['pager_id']) + 1);
+  if ($pv->allow_use_pager && isset($conf['use_pager'])) {
+    $pager_id = $conf['use_pager'] ? (intval($conf['pager_id']) + 1) : 0;
   }
   else {
-    $pager_id = empty($pv->use_pager) ? 0 : (intval($pv->pager_id) + 1);
+    $pager_id = $pv->use_pager ? (intval($pv->pager_id) + 1) : 0;
   }
 
-  $nodes_per_page = ($pv->allow_nodes_per_page) ? $conf['nodes_per_page'] : $pv->nodes_per_page;
-  $offset = ($pv->allow_offset) ? $conf['offset'] : $pv->offset;
+  $nodes_per_page = ($pv->allow_nodes_per_page && isset($conf['nodes_per_page'])) ? $conf['nodes_per_page'] : $pv->nodes_per_page;
+  $offset = ($pv->allow_offset && isset($conf['nodes_per_page'])) ? $conf['offset'] : $pv->offset;
 
   $stored_feeds = drupal_add_feed();
 
@@ -865,8 +875,7 @@ function panels_views_render($conf, $pan
     unset($block->more);
   }
 
-  if (($pv->allow_feed_icons && !empty($conf['feed_icons'])) ||
-      (!$pv->allow_feed_icons && $pv->feed_icons)) {
+  if (panel_views_render_setting($pv->feed_icons, $pv->allow_feed_icons, $conf['feed_icons'])) {
     $new_feeds = drupal_add_feed();
     if ($diff = array_diff(array_keys($new_feeds), array_keys($stored_feeds))) {
       foreach ($diff as $url) {
@@ -889,6 +898,16 @@ function panels_views_render($conf, $pan
 }
 
 /**
+ * Return a (possibly overridden) configuration value.
+ */
+function panel_views_render_setting($view_setting, $allow_override, $pane_setting = NULL) {
+  if ($allow_override && isset($pane_setting)) {
+    return $pane_setting;
+  }
+  return $view_setting;
+}
+
+/**
  * Provide the pane edit dialog.
  */
 function panels_views_edit($id, $parents, $conf = array()) {
