Re: [support] Calling a field in a node template - need PHP help
@David Metzler Thank you!! your solution worked but with modification. This caused an error:
if ($node->$node->field_file[0]['filepath']) print l(t('Download Article'), file_create_url($node->field_file[0]['filepath']));
recoverable fatal error: Object of class stdClass could not be converted to string but i removed the first $node-> to have this:
if ($node->field_file[0]['filepath']) print l(t('Download Article'), file_create_url($node->field_file[0]['filepath']));
and it worked! thank you, im still learning PHP syntax and didnt know how to do a simple if else statement like this. @Francisco, the reason i didn't go with standard drupal behavior is because i didn't want the title of the node to be the link text. That is how it was showing up in my configuration when i selected Generic Files. If there is a way to take take the Label and make it a link to the file in the CCK manage fields admin dialog, i would love to learn about it. thanks so much for everyone's help. andrea
Message: 4 Date: Thu, 4 Jun 2009 09:50:58 -0700 From: andrea burton <andrea.burton@gmail.com> Subject: [support] Calling a field in a node template - need PHP help To: support@drupal.org Message-ID: <D8BC1E3E-464D-4962-AB73-0047F1CFDD72@gmail.com> Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes
Hi,
I am stuck on this problem.
I have a News content type with a File field called field_file.
I am trying to figure out how to write the code in the node- news.tpl.php to show the field but only if a file has been uploaded and thus filled that field.
Right now, I have this code to pull in the body and the file_field:
print $body; print l(t('Download Article'), file_create_url($node->field_file[0] ['filepath']));
but "Download Article" shows up in the nodes that do not have a file uploaded into that node.
Im thinking all i need is an if-else statement that says:
If field_file exists, then print l(t('Download Article'), file_create_url($node->field_file[0]['filepath'])); else just print $body
but nothing i have tried works.
Can anyone help me?
thanks! andrea
------------------------------
Message: 5 Date: Thu, 4 Jun 2009 19:33:36 +0200 From: Francesco <entuland@gmail.com> Subject: Re: [support] Calling a field in a node template - need PHP help To: support@drupal.org Message-ID: <5803c9860906041033h62604942hd13955cdd3e3137e@mail.gmail.com> Content-Type: text/plain; charset=ISO-8859-1
Hi Andrea,
I have a News content type with a File field called field_file.
I am trying to figure out how to write the code in the node- news.tpl.php to show the field but only if a file has been uploaded and thus filled that field.
Why don't you rely on the standard behavior? Put the text "Download Article" as the field label, and let Drupal show or hide them both (label and field) depending on the field content.
If you want finer control, go ahead and use php, but instead of checking if field_file exists, check if item 0 is empty or not. The fact is that item 0 of each field is always present, regardless of it being filled or not.
Just my two cents, hope this helped.
Regards, Francesco
------------------------------
Message: 6 Date: Thu, 4 Jun 2009 11:42:31 -0700 From: "Metzler, David" <metzlerd@evergreen.edu> Subject: Re: [support] Calling a field in a node template - need PHP help To: <support@drupal.org> Message-ID: <52177C930FA90F4D9888B0343FDB79FBA58C0B@birch.evergreen.edu> Content-Type: text/plain; charset="us-ascii"
I'm not 100% sure but have you tried this?
if ($node->$node->field_file[0]['filepath']) print l(t('Download Article'), file_create_url($node->field_file[0]['filepath']));
participants (1)
-
andrea burton