How to programmatically create a custom panel pane I created a custom panel layout with Panels 3 (following this excellent link) and my layout is ready. Now I have my static markup ready for a node (I can use it on the article or a custom content type) and I want to find out how to create a custom panel pane programmatically. I don't won't to do it through the UI as I want to totally control the dynamic markup of a node.
to make things specific (but keeping a certain level of generality), imagine 

&lt;div class="post"&gt;
  &lt;h3 class="title"&gt; 
    &lt;span class="date"&gt; 
      &lt;span class="day"&gt; !!php dynamic day of the date!! &lt;/span&gt; 
      &lt;span class="month"&gt; !!php dynamic month of the date!! &lt;/span&gt;
    &lt;/span&gt;
    &lt;a href="#"&gt; !!php dynamic title of the node!!  &lt;/a&gt;
  &lt;/h3&gt;   
  &lt;div class="content"&gt; 
    &lt;p&gt; !!php dynamic content(body) of the node!! &lt;/p&gt;
    &lt;div class="read-more" &gt;
      &lt;a href="#"&gt; !!php dynamic read more text!! &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt; &lt;!-- end: content --&gt;
&lt;/div&gt; &lt;!-- end: post1 --&gt;


How can I achieve to manage the above dynamic node (and let's suppose I want to achieve an exact, specific markup)?
Ok my question maybe was not the best but at least I hope the following will help new themers get on track. 


I created a custom content type called: seminar
I created this node--seminar.tpl.php and placed it inside /sites/all/themes/awesome (the name of my theme)  
Inside this file I copy pasted the code found in /modules/system/node/node.tpl.php and I tweaked the code as follows.

&lt;div id="node-&lt;?php print $node-&gt;nid; ?&gt;" class="&lt;?php print $classes; ?&gt; post clearfix"&lt;?php print $attributes; ?&gt;&gt;            
&lt;?php print render($title_prefix); ?&gt;
  &lt;?php if (!$page): ?&gt;
    &lt;h3 class="title"&gt; 
      &lt;span class="date"&gt;
        &lt;span class="day"&gt; &lt;?php print $date_day; ?&gt; &lt;/span&gt;
        &lt;span class="month"&gt; &lt;?php print $date_month;?&gt; &lt;/span&gt;         
      &lt;/span&gt;
      &lt;a href="&lt;?php print $node_url; ?&gt;"&gt;&lt;?php print $title; ?&gt; &lt;/a&gt;
    &lt;/h3&gt;
  &lt;?php endif; ?&gt;       
  &lt;?php print render($title_suffix); ?&gt; 
  &lt;div class="content"&lt;?php print $content_attributes; ?&gt;&gt;
    &lt;?php 
      hide($content['comments']);
      hide($content['links']);
      print render($content); 
    ?&gt;          
    &lt;div class="read-more"&gt;
      &lt;?php print render($content['links']); ?&gt;
    &lt;/div&gt;  
  &lt;/div&gt; &lt;!-- end: content --&gt;
&lt;/div&gt; &lt;!-- end: post1 --&gt; 



Keep in mind that in order to achieve this 

&lt;span class="day"&gt; &lt;?php print $date_day; ?&gt; &lt;/span&gt;
&lt;span class="month"&gt; &lt;?php print $date_month;?&gt; &lt;/span&gt;


so that $date_day and $date_month correspond to sth meaningful, I had to go through this. Othewise by default drupal outputs sth like &lt;span&gt; Apr 30 &lt;/span&gt; and we can't target Apr and 30 seperately for CSS styling.