Textpattern CMS support forum
You are not logged in. Register | Login | Help
- Topics: Active | Unanswered
... grab the id of the article image from within a form?
I’ve waded through all the global variable posts and articles. I know I can get article_image from $thisarticle, but I don’t want the whole tag — I only want the numerical id of the article image to use as a variable in a TXP form.
using article_image and exploding it, etc. would probably be long and hard for me, a non-PHP guru.
Lumilux – A Photoblog
Offline
Re: ... grab the id of the article image from within a form?
Try this:
<txp:php>
echo $thisarticle['article_image'];
</txp:php>
As a further example employing this hackery way of extracting global variables from the Textpattern core code, I’ve added a short write-up to my site on a related issue, How to define a »Sorry, no search matches« message.
HTH,
Robert
Last edited by wet (2006-01-22 12:00:13)
Offline
Re: ... grab the id of the article image from within a form?
…but I thought $thisarticle[‘article_image’] is the same as the output of the <txp:article_image /> tag…
Well, here’s what I’m trying right now, but it ain’t working:
<txp:php>
global $thisarticle;
$id = $thisarticle['article_image'];
$img = 'http://lumilux.org/images/'.$id.'.jpg';
$h = imagesy($img);
if($h==389) {
echo 'position: absolute; top: 422px; margin-top: 32px;';
}
</txp:php>
Last edited by Hans (2006-01-22 13:48:19)
Lumilux – A Photoblog
Offline
Re: ... grab the id of the article image from within a form?
> Hans wrote:
…but I thought $thisarticle[‘article_image’] is the same as the output of the <txp:article_image /> tag…
Depends. It returns whatever you enter as an article’s image, either a numerical id
or a literal URL. But: If $thisarticle['article_image']
is numeric, txp:article_image
resolves it for you and thus returns an article image’s URL anyway.
That given:
- Put only image
ids
into article properties. Most image handling plugins depend on that being so, anyway. - Enjoy.
Offline
Re: ... grab the id of the article image from within a form?
All my article_image
s are defined by their image id
s; they’re numerical.
How would txp:article_image help me? As I said in my original post, it’s of no use because it spits out the whole <img /> tag.
Lumilux – A Photoblog
Offline
Re: ... grab the id of the article image from within a form?
> Hans wrote:
How would txp:article_image help me?
Not at all. I used it to illustrate as you cited the (not suitable) output of the tag in your original post.
I have tested the snippet I posted in my very first reply on a 4.0.3 installation of textpattern in which it simply returns the contents of the corresponding article’s image id.
What is the resulting contents of 'http://lumilux.org/images/'.$id.'.jpg';
from your sample code actually?
Last edited by wet (2006-01-22 13:57:50)
Offline
Re: ... grab the id of the article image from within a form?
It appears that $thisarticle[‘article_image’] isn’t working, since it just gives me http://lumilux.org/images/.jpg
.
I changed the $id to $imgid just in case there was some variable name conflict, but it wasn’t the case…
It might be worth mentioning that I’m trying to use this variable in a form besides the actual article form—on the same page, just not in the article form.
Even this doesn’t work:
<txp:if_custom_field name="wide" val="yes">position: absolute; top: 422px; margin-top: 32px;</txp:if_custom_field>
Last edited by Hans (2006-01-22 14:18:54)
Lumilux – A Photoblog
Offline
Re: ... grab the id of the article image from within a form?
> Hans wrote:
It might be worth mentioning that I’m trying to use this variable in a form besides the actual article form-
So you use txp:output_form
to echo the image id? That won’t work. txp:article form="foo"
with foo
being a form containing the php snippet will work.
Offline
Re: ... grab the id of the article image from within a form?
So basically I need to create an article form with the PHP in it (without really using an article) for the variable to work?
Let me try that. OK, I turned my footer into an article form. The PHP still won’t work.
However, if I manually say that the image is wider than usual (in a custom field), the following works:
<txp:if_custom_field name="wide" val="yes">position: absolute; top: 422px; margin-top: 32px;</txp:if_custom_field>
Last edited by Hans (2006-01-22 15:49:25)
Lumilux – A Photoblog
Offline
Re: ... grab the id of the article image from within a form?
OK, I’ve figured out how to get the image id the hard way… by grabbing it from the output of <txp:article_image />
. Well, at least that’s what I’m trying to do with the following; but for some reason the result is always empty!
<txp:php>
$aitag = "<txp:article_image />";
list($img, $h, $w, $t) = sscanf($aitag, '<img src="%s" height="%d" width="%d" alt="%s" />');
if($h==389) {
echo 'position:absolute; top:422px; margin-top:0px;z-index:100;';
}
</txp:php>
Lumilux – A Photoblog
Offline
Re: ... grab the id of the article image from within a form?
YES! I was actually, um, using imagesy() totally wrong, as shown by this page. The following code works beautifully.
(Yes, I used article_id instead, since my article_ids are the same as my article_image ids.)
<txp:php>
$imgid = article_id(array());
$imgurl = 'http://lumilux.org/images/'.$imgid.'.jpg';
$img = @imagecreatefromjpeg($imgurl);
if ($img) {
$h = imagesy($img);
if($h==389) {
echo 'position:absolute;top:422px;margin-top:0;z-index:100;';
}
ImageDestroy($img);
}
</txp:php>
Lumilux – A Photoblog
Offline
Re: ... grab the id of the article image from within a form?
Have you looked the image tags in upm_img_popper? You could do <txp:upm_article_image form="myform" />
and then in myform just use <txp:upm_img_id />
to spit back the id. Although I don’t completely understand what you want to do.
Shoving is the answer – pusher robot
Offline