Jump to content

Release: Thumbnails


apeisa

Recommended Posts

I did run some local test, and I absolutely love it now! :)

apeisa & smd, thanks for the awesome module.

I think I will definately use it in a future projects, and in my moms gallery website now. Wohooh! ;)

---

Just tested again to see if thumbs get deleted, and they don't (after deleting image on page). What's the current state regarding this?

Link to comment
Share on other sites

Thanks Soma for kind words. I also like how this turned out, very nice to use.

Just tested again to see if thumbs get deleted, and they don't (after deleting image on page). What's the current state regarding this?

This is on the "not essential, but definitely nice to have - will be done in next version". There is no promise or schedule for next version. Might be next week or next year. Depends on my needs (or someone else's needs).

Link to comment
Share on other sites

I'm not sure if this is a bug or it's something else I've done, but I can't seem to remove an image description. I can alter the text but not completely delete it.

This actually is a bug, but not todo with this module.

My Boss experienced it a few days ago, and I forgot to report... :)

You can only delete it if you put a space char inside the textfield.

Link to comment
Share on other sites

  • 1 month later...

Antti - just wanted to say I've (finally) just started using this module and it's amazing! Great work! :)

The only suggestion I have is that it would be nice to have a way to make the configurations for thumbnails somehow able to link to certain templates, for example if I want a specific thumbnail size for news article images then I'm unlikely to want that thumbnail option anywhere other than when I'm creating a news article.

I know, it's not straightforward, but rather than make it too technical, I thought maybe this could still be specified in the same place, but add extra parameters on the end if you want it only available to specific templates:

thumbnail,100,100
portrait,100,150
largethumb,200,200
newsthumb,250,180,news_home,news_article

In the above example, the first three thumb settings would be available to all cropimage fields, and the newsthumb would only be available to the news_home and news_article templates.

Something like that anyway, and it's just a thought (although it might be worth somehow being able to specify fields as well as templates?).

Link to comment
Share on other sites

I have had the exactly same thought when using this and I will probably implement that when first client project comes which requires this.

Or actually I was thinking about making it work with specific fields, but that template option seems to be even better. Thanks for the suggestion!

Link to comment
Share on other sites

No problem :)

My first thought was making it something you can set per-template in the template settings, but that sounded too difficult and you would have to write some code when editing a template to check it has a cropimage field and then have a setting just for that. It also seemed too detached from the field itself.

My second thought was to define it per cropimage field as it would be a bit more intuitive editing it there, but I don't like creating duplicates of the Images field just for things like this where you'll only ever define different settings once or twice in a website's lifetime I think.

Which brings us back to the module configuration itself - seems to be the most sensible place and certainly the easier option to code!

Link to comment
Share on other sites

  • 2 weeks later...

Antti, thanks for such great module! I've used it a couple of times and it's a great time-saver!! I've just found a strange error and I can't tell what's wrong. I have a laptop and a desktop both running Mac Os and MAMP (for a localhost environment). Recently I've exported my working PW site from the desktop to the laptop (via a mysql dump). Both machines are running the same files (via dropbox) and now have the same data in each of the local databases.

In my laptop local site I get the following error (debug on):

Fatal error: Exception: Fieldtype 'FieldtypeCropImage' does not exist (in /Users/......./....../....../wire/core/Field.php line 200) #0

The log shows the following:

: Unknown User:/?/:ProcessWire Error:Exception: Fieldtype 'FieldtypeCropImage' does not exist (in /Users/..../...../wire/core/Field.php line 200)  #0

.... and it goes on

The desktop machine keeps running the site just fine. Am I missing something here?

Link to comment
Share on other sites

For me it seems like your install doesn't know about cropImages. Please try clicking check for new modules and removing modules cache. I am pretty sure problems are in how you have transferred the site? Do you have any other 3rd party modules installed?

Link to comment
Share on other sites

It seems that way. The problem is that the site is blocked by the error (white screen with error message) this is the only module installed (3rd party) is there a way to uninstall the module like this? So then I can install it again.

Link to comment
Share on other sites

Hey Antti - I just tried creating a CropImage field on the latest version of PW (2.2) and while the field shows up, the "Crop Setups" section (under the field where you can preview and define the crop area for the image) does not show up. Basically, it looks like a standard image field on the edit page.

I tried the following code in my template anyway:

echo $page->my_photo->eq(0)->getThumb('thumbnail');

And I get the following error:

Error Exception: Method Pageimage::eq does not exist or is not callable in this context

Any ideas? Anyone else had the same problem with this module in the latest version of PW?

Link to comment
Share on other sites

Fixed it. This just needs tidying up and putting into the source, but if you open InputfieldCropImage module and find the relevant function below and replace it with the code below:

protected function renderItem($pagefile, $id, $n) {

       $out = parent::renderItem($pagefile, $id, $n);

       $crops = $this->modules->get('ProcessCropImage')->crops;
       if (strlen($crops)>3) {
           $cropUrl = "../image-crop/";
           $cropStr = "\n\t\t\t<div class='ui-widget-content crops'><p class='description'>Thumbnails (hover to preview, click to crop)</p>". $this->_getCropLinks($crops, $cropUrl, $pagefile) . "</div>";
       }

       // We add our crop string at the end of the list item that holds image
       $out .= $cropStr;//str_ireplace('</li>', $cropStr, $out);

       return $out;
   }
Link to comment
Share on other sites

Hey Antti (and others) - I went ahead and made it so that the module can now accept comma-separated lists of templates per thumbnail config.

For example, in the module config, enter a new crop setup called bigthumb like this:

bigthumb,320,240,home,search

The two extra parameters on the end are templates that this is applicable to. You can keep adding templates to the list to your hearts' content, and in this case it won't show you a thumbnail option for the images field on the basic-page template since you narrowed it to a specific list.

If you want the thubmnail to be available to all templates, simply don't add any more parameters after the first three :)

The code, oddly enough, is in the same function as my last post, so change that entire function in InputCropImage.module to the following:

	protected function renderItem($pagefile, $id, $n) {

	$out = parent::renderItem($pagefile, $id, $n);

	$crops = $this->modules->get('ProcessCropImage')->crops;
	if (strlen($crops)>3) {
		// If we've defined one or more templates for specific crops, we need to check the current page's template to see if we actually have any applicable crops to show to the user
		$page = $this->pages->get($this->input->get->id);
		$applicableCrops = array();
		$cropArray = explode("\n", $crops);
		foreach ($cropArray as $k => $v) {
			$cropItems = explode(',', $v);
			if (count($cropItems) > 3) {
				if (in_array($page->template, array_slice($cropItems, 3))) {
					$applicableCrops[] = $cropArray[$k];
				}
			} else { // Any non-template-specific crops are automatically added to the list for all cropimage fields
				$applicableCrops[] = $cropArray[$k];
			}
		}
		$applicableCrops = implode("\n", $applicableCrops);

		if (!empty($applicableCrops)) {
			$cropLinks = $this->_getCropLinks($crops, $cropUrl, $pagefile);
			if (!empty($cropLinks)) {
				$cropUrl = "../image-crop/";
				$cropStr = "\n\t\t\t<div class='ui-widget-content crops'><p class='description'>Thumbnails (hover to preview, click to crop)</p>". $this->_getCropLinks($applicableCrops, $cropUrl, $pagefile) . "</div>";
				// We add our crop string at the end of the list item that holds image
				$out .= $cropStr;
			}
		}
	}

	return $out;
}

If no crops are applicable to a particular template, it simply doesn't render the thumbnails box below each image.

  • Like 1
Link to comment
Share on other sites

Ryan did send me an email and warned that there might be problems with Thumbnails module on latest build. Haven't had the time yet to see what is needed to fix it, but it seems that Pete have done the hard work and more.

Pete: if possible can you send me an pull request in Github? This way you get proper mention on your contribution.

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
×
×
  • Create New...