[themes] targeting variables in my node-blog.tpl.php file

brendan, fresh-off.com hello at fresh-off.com
Thu Apr 16 00:36:13 UTC 2009


WOW!!!  THANKS EVERY SO MUCH!!!  I would have never gotten that far on my
own!  I really, really, really appreciate that CK Ng!!!!

 

Brendan 

 

From: themes-bounces at drupal.org [mailto:themes-bounces at drupal.org] On Behalf
Of Ng Chin Kiong
Sent: Tuesday, April 14, 2009 2:59 AM
To: A list for theme developers
Subject: Re: [themes] targeting variables in my node-blog.tpl.php file

 

If you want to remove blog_usernames_blog from $link, put this in
template.php

 

/* duplicate theme_links() and add the 3rd line (marked with HERE) */

function phptemplate_links($links, $attributes = array('class' => 'links'))
{

  $output = '';

 

  // HERE: just add this line, the rest are from theme_links() 

  unset($links['blog_usernames_blog']);

  

  if (count($links) > 0) {

    $output = '<ul'. drupal_attributes($attributes) .'>';

 

    $num_links = count($links);

    $i = 1;

 

    foreach ($links as $key => $link) {

      $class = $key;

 

      // Add first, last and active classes to the list of links to help out
themers.

      if ($i == 1) {

        $class .= ' first';

      }

      if ($i == $num_links) {

        $class .= ' last';

      }

      if (isset($link['href']) && ($link['href'] == $_GET['q'] ||
($link['href'] == '<front>' && drupal_is_front_page()))) {

        $class .= ' active';

      }

      $output .= '<li'. drupal_attributes(array('class' => $class)) .'>';

 

      if (isset($link['href'])) {

        // Pass in $link as $options, they share the same keys.

        $output .= l($link['title'], $link['href'], $link);

      }

      else if (!empty($link['title'])) {

        // Some links are actually not links, but we wrap these in <span>
for adding title and class attributes

        if (empty($link['html'])) {

          $link['title'] = check_plain($link['title']);

        }

        $span_attributes = '';

        if (isset($link['attributes'])) {

          $span_attributes = drupal_attributes($link['attributes']);

        }

        $output .= /*'<span'. $span_attributes .'>'.*/ $link['title']
/*.'</span>'*/;

      }

 

      $i++;

      $output .= "</li>\n";

    }

 

    $output .= '</ul>';

  }

 

  return $output;

}

 

 

For changing $submitted, add to your template.php

function phptemplate_node_submitted($node) {

  // make your changes

  return t('By !username (posted on @datetime)'),

    array(

      '!username' => theme('username', $node),

      '@datetime' => format_date($node->created),

    ));

}

 

 

For phptemplate_preprocess_node, if you want to introduce new variables or
modify existing one. Of course it can be used to change submitted as well,
but not $links as it has been generated.

 

function phptemplate_preprocess_node(&$vars, $hook) {

  $author = theme('username', $vars['node']);

  $date = format_date($vars['node']->created, 'medium');

  $vars['submitted'] = $author . ' - ' . $date;

}

 

 

Cheers,
CK Ng

forDrupal Premium Themes (http://fordrupal.com)
- we make drupal beautiful



On Tue, Apr 14, 2009 at 1:50 PM, brendan, fresh-off.com
<hello at fresh-off.com> wrote:

Here's as far as I was able to get using CK Ng's suggestion:

 

function phptemplate_preprocess_node(&$vars, $hook) {

  //try to remove 'blog_usernames_blog' from links array

  $vars['links'] = unset($links[0]);

}

 

 

it throws this error on the template.php page:

Parse error: syntax error, unexpected T_UNSET

 

As I said, writing php from scratch is difficult for me.  Am I even on the
right track?

 

Thanks for any help!

 

Brendan

 

 

From: themes-bounces at drupal.org [mailto:themes-bounces at drupal.org] On Behalf
Of brendan, fresh-off.com
Sent: Monday, April 13, 2009 6:02 PM


To: 'A list for theme developers'
Subject: Re: [themes] targeting variables in my node-blog.tpl.php file

 

Thanks for your responses CK  Ng and J. Sint Jago!

I don't think my PHP skills are good enough to write the necessary function
from scratch. However, I'm usually able to modify existing examples.  

 

CK, Based on your response to Sebastian and the reading on Drupal.org, it
seems I need to add phptemplate_preprocess_node() to template.php.  But  I'm
not sure exactly how its supposed to be written.

 

Using the Devel Mod I got the following info (or see attached screenshot): 

 

---

parents: node.tlp.php < page.tlp.php

function called:  theme_links()

Candidates Function names:  myTheme_links < phptemplate_links < theme_links

 

Next it lists 2 arrays for the theme_links() function.  Those elements are:
links array & attributes array

The links array has 3 elements, the first of which is the array I don't want
to display:  blog_usernames_blog 

----

 

 

I think that's all of the information I need, but I'm still not sure what to
do next, or where to find an example of the code to modify and insert into
template.php to keep it from showing blog_usernames_blog.

 

I'm stuck, any further suggestions?

 

 

From: themes-bounces at drupal.org [mailto:themes-bounces at drupal.org] On Behalf
Of Ng Chin Kiong
Sent: Friday, April 10, 2009 2:09 AM
To: A list for theme developers
Subject: Re: [themes] targeting variables in my node-blog.tpl.php file

 

brendan,

 

You can use template preprocessor. See my latest reply on "Re: how to stop a
'view' from showing a field?"

 


Cheers,
CK Ng

forDrupal Premium Themes (http://fordrupal.com)
- we make drupal beautiful

On Fri, Apr 10, 2009 at 3:53 PM, brendan, fresh-off.com
<hello at fresh-off.com> wrote:

Hello, 

I can't seem to figure out how to effectively target two different values in
my node-blog.tpl.php file:

 

$submitted

$links

 

For the $submitted value, I'd like to insert some xhtml tags in there so
that I can target them with CSS.  

 

Currently it writes the data to the page like this:

 

---

Submitted by super_user on April 9, 2009 - 2:49pm

---

 

But I'd like to get some xhtml tags around the User and the Month.  It would
also be nice if I could delete the hour - but that's not as important.

 

For the $links value, I'd like to figure out how to remove the Author.
Currently, the $links value writes:"Author's Blog", "Read More...", and "Add
comments" to the teaser.  How do I remove just the "Authors blog" info from
the $links value?   

 

Unfortunately, I know enough PHP to get myself confused a lot, and I've been
googling and searching Drupal.org all day with no luck.  

Hopefully the nice folks on this list can help!!

 

 

brendan, fresh-off.com

Creative Direction & Consultation: Web | Print | Brand

 

http://fresh-off.com

hello at fresh-off.com

206.328.1067

seattle.usa

 

 


_______________________________________________
themes mailing list
themes at drupal.org
http://lists.drupal.org/mailman/listinfo/themes

 


_______________________________________________
themes mailing list
themes at drupal.org
http://lists.drupal.org/mailman/listinfo/themes

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.drupal.org/pipermail/themes/attachments/20090415/5d0e5f7c/attachment-0001.htm>


More information about the themes mailing list