Jump to content

[SOLVED] Image path incomplete


mike62
 Share

Recommended Posts

I am new to PW, and am trying to get an image to display, from a field in my template. Here's the code I'm using:

<?php 
	$image = $page->home_header_image;
	echo "<img src='{$image->url}' alt='{$image->description}' />";
?>

I'm following the tutorial on this here.

When I save the template and reload the page, the path to the image is incomplete. If just echoes:

<img src="/site/assets/files/1/" alt="">

It omits the name of the image, at the end of the path.

Here's the site I'm working on:

http://dev.delucaswpg.webfactional.com

A couple caveats:

  1. I'm using ProcessWire 2.3.0 (tried updating the site and everything went berserk because of some plugin dependencies; point being: I can't update to the latest PW).
  2. I tried using the ->size thing and it gave me an error, saying it couldn't use 'size' in this context. Which I also thought was weird.

Any ideas? Thanks!

Link to comment
Share on other sites

Regarding your no URL issue, most like you image field $image is set to hold multiple images (hence returns an array - whether it has only one image or or more). If that's the case, you will need to loop through it. 

Edited by kongondo
  • Like 1
Link to comment
Share on other sites

Hi @mike62,

thats much at once, updating from 2.3 to the latest version. Depending on the used third party modules in that site, you may be able to update to version 2.7.3, what was the last version before changing to 3.0.x, what included a change to use PHP namespace.

So, why exactly do you want to upgrade? Do you need some special module that isn't available for pw 2.3.x?

With that $image thing, please check if you are using a single image field or if it is a multiimage field. If it is a multi image field (that is by default), you need to to select one image out of the collection, maybe ->first(). Also you should check if there is at least one image stored within the field:

$image = $page->home_header_image->first();
if('' != $image->url) echo "<img src='{$image->url}' alt='{$image->description}' />";

 

  • Like 2
Link to comment
Share on other sites

Just wondering, since this is a dev site, is it a new site? If yes, was there a reason to install ProcessWire 2.3 or that's how the site was handed over to you?

Edit: Welcome to the forums and ProcessWire.. :).

Edited by kongondo
  • Like 2
Link to comment
Share on other sites

@kongondo The site was handed to me like this, and there's too much to rework to start from scratch, so I'm just doing a re-skin. 

@horst I don't need to update the site. Just mildly concerned about using outdated (and possibly not secure?) software.

The below code now works great, thanks for the tip!

<?php 
	$image = $page->home_header_image->first()->size(1280,420);
	echo "<img src='{$image->url}' alt='{$image->description}' />";
?>

I had no idea that the "Image" field was for more than one image. I don't see a way to make a "single image" image field... am I missing something? I don't really need it at this point, since the code change works. Just curious. Thanks again!

Link to comment
Share on other sites

Ignore this (is there a way to delete a post in the forum completely?)

Edited by mike62
Template file was getting cached and wasn't displaying correctly for me, making me think something wasn't working.
Link to comment
Share on other sites

On 10/25/2017 at 12:57 PM, mike62 said:

I'm using ProcessWire 2.3.0 (tried updating the site and everything went berserk because of some plugin dependencies; point being: I can't update to the latest PW).

If I was actively developing a site, I would take the time to fix any plugin dependencies - you are missing out on so much by being on such an old version. I have updated many site from 2.3/2.4 to 3.x with minimal problems.  Sometimes errors pop up that look bad, but only take a few minutes to fix.

Just my 2cents worth!

  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...