Fix for sample php-handling implementation of a panels content type plugin

/**
 * Note that there is NO check here to ensure that the user has the
 * proper permissions to execute arbitrary php code. That check
 * should be made at the level of the content_types callback property,
 * using a type of required context that we've yet to design.
 */

function panels_content_custom($conf, $panel_args, $context) {
  static $delta = 0;
 
  // Declare the $pane object so that we don't get any E_STRICT warnings;
  $pane = new stdClass();
 
  eval($conf['body']);
 
  // Put our default member values into a separate array.
  $members = array(
    'module'  => 'custom',
    'delta'   => ++$delta,
    'subject' => filter_xss_admin($conf['title']),
    'content' => '',
  );
  // Iterate through the array of defaults and assign put in
  // any values that haven't already been set by the custom
  // php code.
  foreach ($members as $member => $value) {
    if (empty($pane->$member)) {
      $pane->$member = $value;
    }
  }  
 
  return $pane;
}

Submit Fix

Any tags you'd like to associate with your code, delimitered by commas (example: Views, CCK, Module, etc).
Select the syntax highlighting mode to use.