Smd thumbnail - Multiple image thumbnails of arbitrary dimensions

Overview

smd_thumbnail

Download | Packagist

If you’re bored of one Textpattern thumbnail per image and don’t fancy using an auto-resizing script or relying on the browser to stretch your thumbnails, smd_thumbnail could be the answer! It allows you to create profiles for as many Textpattern thumbnail sizes as you like and will automatically create physical thumbnails at those dimensions for any/all of your images.

Please report bugs and problems with this plugin at the GitHub project’s issues page.

Features

  • Assign any number of thumbnails to Textpattern’s images.
  • Batch assign thumbnails to existing images.
  • Set one thumbnail size as default.
  • Display any of the thumbnail sizes on your site.
  • Keep thumbs in sync with Textpattern’s thumbs if you wish.
  • Conditional thumbnail check available.

Installing

Requires Textpattern 4.7.0+

Download the plugin from either GitHub, or the software page, paste the code into the Plugins administration panel, install and enable the plugin. Visit the forum thread for more info or to report on the success or otherwise of the plugin.

Note: When upgrading from v0.1x to v0.20, your preferences for ‘Keep Textpattern thumbnails in sync with default profile’ will be removed. Please visit the ‘Setup’ area to reinstate the behaviour you desire.

Alternatively, this plugin can be installed using Composer:

$ composer require bloke/smd_thumbnail:*

Usage

Visit the Images panel. Above the list of images is an area labelled Thumbnail profiles. Click it to reveal the control panel. You can toggle this panel open and closed by clicking the heading.

You must define at least one profile to begin with, so click the New profile button. This will reveal edit boxes where you can enter:

  • Name: some descriptive name for this thumbnail profile. You are limited to usual non-weird characters in the name.
  • Description: a brief summary of this thumbnail profile, to jog your memory or inform other users of its purpose.
  • Width: thumbnail width, in pixels. If left blank (or set to 0) and height is specified, the width will be computed in proportion to the height.
  • Height: thumbnail height, in pixels. If left blank (or set to 0) and width is specified, the height will be computed in proportion to the width.
  • Quality (%): The quality of the resulting thumbnail. Generally only of use for JPEG or 24-bit PNG images. The higher the value the better the quality and the bigger the file size. Default: 75.
  • Crop: whether to crop the image when the thumbnail is created, or scale it to fit.
  • Sharpen: whether to apply a sharpening filter to the thumbnail when it is created. Useful for very small images.
  • Active: Enable/disable this thumbnail size so it will/won’t be automatically generated when the next image is uploaded. Click the checkbox to instantly switch the profile on/off. Click the ‘Active’ word in the column heading to toggle the status of all active profiles. Note that the active state governs how the All sizes dropdown entry interacts with the Create and Delete buttons.
  • Default: set this thumbnail profile as the default. The default image will be displayed in the ‘Images’ list and will also be used as the default size to be displayed using <txp:smd_thumbnail/>. If the option to sync with Textpattern’s thumbs is on, it will also become Textpattern’s standard (built-in) thumbnail size from this point forward.

Once you’ve configured your profile, click ‘Save’ to store it. You can always edit it again by clicking its name. Go ahead and create some more profiles for thumbnails of different sizes/parameters. If you wish to delete a profile, click the ‘x’ button and confirm. All thumbnails associated with that profile will be deleted.

At this point, no thumbnails have been created. Let’s rectify that…

Creating thumbnails

Pick one of your images and click to edit it. Beneath the main picture you will see an area labelled ‘Create thumbnail’.

Inside this area is a simple select list containing one entry for each thumbnail profile you have configured, plus the special entry ‘All sizes’. You can select one of these entries and click ‘Create’ to create thumbnail(s) in the selected size or click ‘Delete’ to remove the selected thumbnail(s).

Once created, the thumbnails appear in the panel.

If you select ‘All sizes’ and click ‘Create’, you will get one thumbnail for each active profile. Similarly, if you click ‘Delete’ any thumbnails stored against an active profile for the current image will be removed. By toggling certain thumbnail profiles on/off you can control which ones are created or deleted – by default:

  • When you upload a new image, thumbnails will be automatically created for any active profiles.
  • When you replace an existing image, thumbnails will only be automatically created for active profiles if thumbs do not already exist. This option can be altered with the prefs.

Note that if you use Textpattern’s multi-edit tool to delete images, all corresponding thumbnails for the selected images (including inactive ones) will be removed.

Custom thumbnails

If you prefer to make your own thumbmails in an external program, you can still set up the profiles as normal but instead of clicking ‘Create’ in the ‘Image edit’ screen, you can pick a profile size from the dropdown and use the file picker facility ‘Browse…’ to select a thumbnail from your hard drive. When you click ‘Upload’ the image will be inserted against the selected profile.

At any time you can click one of the thumbnails (or select a size from the dropdown) and choose for another image to replace the existing thumbnail – even ones that have been auto-created. Some things to note about this feature:

  1. The thumbnail must be of the same file type as the original image or the upload will be ignored.
  2. You can click a highlighted image to deselect it.
  3. You cannot ‘Browse…’ for an image (the file upload box is greyed out) unless you have chosen one profile.

Batch thumbnail creation

You can also create thumbnails en-masse. Click the ‘Tools’ button (labelled ‘Setup’ if you have sufficient rights) in the right hand corner of the smd_thumbnail control panel. From there you will see an area that allows you to create thumbnails for:

  1. Only the selected images (the checkboxes next to each image).
  2. All images of a particular category.
  3. All images uploaded by a particular user.
  4. All images.

After selecting the desired option (and if you choose category or author, select one of the entries from the secondary list that apears), click ‘Create’. Once you confirm your action, the plugin will create thumbnails for every active profile for all images that match your criteria. This is a quick way to generate thumbs for your existing images. Note that if you choose the first (empty) category entry, then all images that have not been assigned a category are manipulated.

Because of the nature of this tool – especially with large image pools – the process is done as a background task via AJAX. After clicking the ‘Create’ button (and confirming you are sure) a counter will appear in the top-right of the prefs panel showing how many images it has processed out of the total number of images in the set. When it’s done, if you then refresh your ‘Images’ tab (e.g. click to the ‘Profiles’ pane) you will see your chosen default thumbnails in the list – assuming you’ve set one as default.

Preferences

If you have sufficient privileges, in the lower portion of the ‘Setup’ panel are some options that govern how thumbnails are created for all users. There is no ‘Save’ action here: the checkmarks are stored in real-time and always reflect the current state.

Create smd_thumbnails from

Governs whether the smd_thumbnails are created from the full size image or its (Textpattern) thumbnail. If you have elected not to have Textpattern thumbnails created then it’ll probably not work very well! This preference applies:

  1. When you use any of the batch tools to mass-produce smd_thumbnails.
  2. If you upload a new image.
  3. If you reupload a main image and ‘Recreate thumbnails on re-upload of main image’ is checked.

Keep Textpattern thumbnails in sync with default profile

This option only appears if you have set a profile as default.

Ordinarily, smd_thumbnail works independently of Textpattern’s thumbnails. If you disable the plugin you’ll see that everything goes back to how it was before you installed it. This is great because your hard-graft isn’t lost if you have uploaded your own thumbs. But, if you start creating thumbs with the plugin you will notice that Textpattern’s built in tags such as <txp:article_image thumbnail="1" /> and <txp:thumbnail /> won’t work for newer thumbnails. This might be confusing so you can opt to have smd_thumbnail update your Textpattern thumbnails at the same time.

By ticking either of the checkboxes, the plugin will track any changes to the default profile and mimic them with Textpattern’s thumbnails. This has a few effects worth highlighting…

When the ‘Creation’ checkbox is ticked:

  1. If you batch create thumbs, upload a new image, or replace an existing image, a new Textpattern thumbnail will be created at the default size. Any existing thumbs will be overwritten.
  2. If you change default profile, any Textpattern thumbnails that have been created will remain at the previous size. Only when you start creating, uploading or replacing images will the new thumbnail sizes be created.

When the ‘Deletion’ checkbox is ticked:

  1. If you delete a single thumb that corresponds to the default profile, both the profile thumb and Textpattern’s thumbmail will be deleted.
  2. If you delete an entire profile, all its thumbnails and all Textpattern’s thumbnails will be removed.

Further:

  1. If you have no default profile, the checkboxes disappear and the settings have no effect. Choose a default profile to reinstate the behaviour.
  2. If you deactivate the default profile the checkboxes have no effect unless you delete the profile (since you’re deleting it, its status is ‘lost’ and therefore the checkboxes function as normal). If there’s any doubt, uncheck the ‘Deletion’ checkbox first!

Recreate thumbnails on re-upload of main image

When this checkbox is cleared and you replace a main image (from the ‘Image edit’ screen) any thumbnails that have already been assigned to the image are left as they are – only missing thumbnails will be created from the main image. Conversely, if you set this checkbox, when you upload the replacement image ALL smd_thumbnails for active profiles will be (re)created from the main image.

Note one important exception: Textpattern thumbnails are NOT covered by this option – they are governed by the ‘Keep Textpattern thumbs in sync’ ‘Creation’ checkbox. Thus, if you upload a replacement image and the ‘Creation’ checkbox is on, you will replace Textpattern’s thumbnail regardless of the setting of the ‘Recreate thumbnails…’ option.

Tags

smd_thumbnail tag

<txp:smd_thumbnail />

A direct replacement for the built in txp:thumbnail tag with exactly the same functionality and attributes apart from the additional attributes listed below.

Attributes (in addition to standard txp:thumbnail tag attributes)

; add_stamp="boolean"
: Adds the image file modification time to the end of the thumbnail’s URL. Use add_stamp="1" to switch this feature on. This helps prevent stale images, but may prevent browsers from cacheing the thumbnails properly, thus increasing bandwidth usage.
: Default: 0.
; break="tag"
: HTML tag to apply between each thumbnail when iterating over them.
: Default: unset.
; breakclass="class name"
: HTML class to apply to the break> tag.
: Default: unset.
; class="class name"
: HTML class to apply to the <img> attribute value.
: If omitted, the name of the profile will be used as a class name for the <img> tag.
: If you specify a wraptag and omit the class, the profile name will be used as a class on both the container and the <img> tag.
; force_size="value"
: Usually when you set one or other width/height to 0 in a profile, the browser scales the missing dimension automatically. It does this by omitting the width= or height= attribute in the img tag. This may cause visual artefacts as the page is rendered and the browser calculates the sizes. If you wish the plugin to add the actual dimension to the <img> tag (the size at the time the thumbnail was created), tell the plugin with this attribute. Choose one or both of width or height. Comma-separate as required.
: Default: unset.
; form="form name"
: You can construct your own <img> tags using the given form. If not specified, you may use the tag as a container.
; format="value"
: By default, this tag outputs a full <img> tag. If you just require the image URL so you can make your own image tags, set format="url".
: Default: thumbnail.
; quiet="boolean"
: Use quiet=“1” to suppress warnings about missing images.
: Default: 0.
; size="ratio"
: Only consider images of a particular aspect ratio/size. Choose from: portrait, landscape, or square. Or specify your own aspect ratio width:height, e.g. 16:9 or 4:3, or numeric ratio such as size="1.33" or size="0.8". You may also specify just a width or height, e.g. @size="300:" (only consider images that are exactly 300px wide) or size=":800" (only consider images that are exactly 800px tall).
: Default: unset.
; sort="col dir, col dir, ..."
: Order the images by the given columns and sort direction.
: Default: width DESC, height DESC.
; type="value"
: Use this attribute to display thumbnails of the given profile name (e.g., type="large"). You may comma-separate multiple profile names to iterate over them.
: type=“SMD_ALL” will iterate over all defined profiles.
: type=“SMD_ACTIVE” will iterate over all active profiles.
: If you do not specify this attribute, the default profile will be used. If there is no default profile you’ll see warning messages.

The tag works inside <txp:images> or can be used standalone by specifying the id or name attribute. If using it as a container or with the form attribute you display the various pieces of thumbnail information using the <txp:smd_thumbnail_info> tag.

Examples

Example 1
<txp:images>
    <txp:smd_thumbnail type="big-size" />
</txp:images>

Show all images that have been generated with the ‘big-size’ smd_thumbnail profile.

Example 2: responsive images

See responsive images post in the Textpattern forum.

smd_thumbnail_info tag

<txp:smd_thumbnail_info />

Display various information from the current <txp:smd_thumbnail> tag (in either its form or container).

Attributes

  • class="class name" HTML class to apply to the wraptag attribute value.
  • break="value" Where value is an HTML element, specified without brackets (e.g., break="li") to separate list items.
  • item="item value" List of things you wish to display. Choose from:
    • alt: image alt text.
    • author: image author.
    • category: image category name.
    • category_title: image category title.
    • class: class applied to thumbnail (if not supplied, is same as type).
    • date : raw datestamp of when the image was uploaded.
    • ext: thumbnail file extension.
    • h: thumbnail height (pixels). Note the resulting value is taken directly from your profile setup, so if you have the profile height set to 0 (variable height) then this value will be incorrectly displayed as 0.
    • html_h: HTML-formatted height attribute.
    • html_w: HTML-formatted width attribute.
    • id: thumbnail ID.
    • name: image name.
    • title: image title/caption.
    • type: thumbnail profile name.
    • url: full image URL of the thumbnail.
    • w: thumbnail width (pixels). Note the resulting value is taken directly from your profile setup, so if you have the profile width set to 0 (variable width) then this value will be incorrectly displayed as 0.
  • wraptag="element" HTML element to wrap (markup) list block, specified without brackets (e.g., wraptag="ul").
  • escape="transform" to apply core escape transforms such as trim, tidy, html, textile, etc to the item.
Example
<txp:images>
    <txp:smd_thumbnail type="big-size">
        <meta itemprop="image" content="<txp:smd_thumbnail_info item="url" />">
        <meta itemprop="width" content="<txp:smd_thumbnail_info item="w" />">
        <meta itemprop="height" content="<txp:smd_thumbnail_info item="h" />">
    </txp:smd_thumbnail>
</txp:images>

smd_if_thumbnail tag

<txp:smd_if_thumbnail>

A direct replacement for the built in <txp:if_thumbnail /> tag with exactly the same functionality.

Attributes

  • type: use this attribute to check for thumbnails of the given profile name (e.g., type="Medium"). If you do not specify this attribute, the default profile will be tested. If there is no default profile the tag will always render the <txp:else /> portion.
Example
<txp:images>
    <txp:smd_if_thumbnail type="640w">
        <img alt="<txp:image_info type='alt' />"
            src="<txp:smd_thumbnail type='640w' format='url' />"
            srcset="<txp:image_url link='0' /> 2x, <txp:smd_thumbnail type='640w' format='url' /> 1x">
    <txp:else />
        <img alt="<txp:image_info type='alt' />" src="<txp:image_url link='0' />">
    </txp:smd_if_thumbnail>
</txp:images>

How it works

For reference, when you create a profile a directory is created with that name inside your Textpattern images folder. Inside this folder you will find images of the format id.ext: where id and ext match the corresponding image IDs in the Textpattern database. That’s pretty much it!

You can delete thumbnail files manually from any of these directories and the plugin will figure everything out. But it’s probably not advisable to delete the directories themselves – use the ‘Delete’ buttons in the control panel for that.

History

Please see the changelog on GitHub.

Authors/credits

Written by Stef Dawson. Many thanks to all additional contributors. Special thanks also to the beta test crew who offered feature and workflow advice, especially thebombsite, jakob, jstubbs and maniqui.

Comments
  • silently fails to manually upload a webp thumbnail image

    silently fails to manually upload a webp thumbnail image

    automatic thumbnail generation works fine manual upload fails.

    STR

    • upload a webp image and let TXP / smd_thumbnails generate the thumbnails based on selected profiles. -> OK
    • go to the individual image edit panel for the newly uploaded image
    • select a thumbnail image and delete it
    • from the select widget, choose a profile then upload the appropriate image.

    Expected: image uploaded Actual result: no image is uploaded; no thumbnail is displayed in the panel and the image is nowhere to be found on the file system.

    Debugging mode is turned on but no message is displayed.

    PHP 7.4 on Dreamhost servers (CentOS) PHP 8, Homebrew edition locally (macOS 11)

    The server logs (apache/php) are silent - no error. All 25+ known methods of searching the macOS file system return a blank.

    Manual upload of jpg/png images works fine

    opened by phiw13 6
  • Support for wraptag attribute and error handling

    Support for wraptag attribute and error handling

    The ability to use <+> as a placeholder in the wraptag attribute makes it easier to construct tags without the need for if_exist type tags if you just want to prepend/append a tag. Currently it seems smd_thumbnail doesn't support wraptag, so I wrap it with txp:evaluate to 'retrofit' it with that functionality.

    For some reason, txp:evaluate (even with the addition of the attribute test="smd_thumbnail") doesn't seem to catch no output, so to make a failsafe tag, I need to do the following

     <txp:smd_if_thumbnail type="xl"><txp:evaluate wraptag="<+> 1800w,"><txp:smd_thumbnail type="xl" display="url" /></txp:evaluate></txp:smd_if_thumbnail>
    

    for each smd_thumbnail profile size within a regular txp:images-loop.

    It would be great if I could do just:

     <txp:smd_thumbnail type="xl" display="url" wraptag="<+> 1800w," />
    

    and if no image exists for that profile, then nothing is output. In this example I've hardcoded the width, but one could plug the smd_thumbnail's profile width in there as a tag-in-tag too.

    Does that sound doable?

    opened by jools-r 5
  • Summary/description column in profiles table (and column hiding)

    Summary/description column in profiles table (and column hiding)

    Just some thoughts off the top of my head...

    It would be nice to have a description field as part of the table row to give a (brief) summary of what the profile is for. Handy if multiple users are creating articles/images for a site.

    Also, if their was a column that was designated as permanent, then you could hook the txp-options widget into this plugin for Textopattern 4.7 (in fact, the layout I originally had auto appended a working version of that widget on the table but since you could hide every column it seemed breakable).

    I guess the above go hand-in-hand - in that people that don't need the description field can hide the column.

    opened by philwareham 5
  • Tag error: Undefined variable: alt

    Tag error: Undefined variable: alt

    Hi Stef, I'm getting a tag error message with the following code:

    <txp:images>
        <p itemprop="image" itemscope itemtype="http://schema.org/ImageObject">
            <txp:smd_if_thumbnail type="article-832w">
                <txp:smd_thumbnail type="article-832w">
                    <img itemprop="url" alt="<txp:image_info type='alt' />" src="<txp:smd_thumbnail_info item="url" />" srcset="<txp:image_url /> 2x, <txp:smd_thumbnail_info item="url" /> 1x">
                </txp:smd_thumbnail>
            <txp:else />
                <img itemprop="url" alt="<txp:image_info type='alt' />" src="<txp:image_url />">
            </txp:smd_if_thumbnail>
        </p>
    </txp:images>
    

    Tag error is: "Notice: Undefined variable: alt while parsing form blog on page blog".

    Any idea why this is happening. Is it an issue? I've tried the type='alt' with both single and double quotes but that hasn't helped.

    opened by philwareham 4
  • Provide some example usage cases in the README

    Provide some example usage cases in the README

    It would be real handy to have some usage examples included in the README file. Can be a bit confusing for users (i.e. me) to get our heads around initially - so totes moar infoz is alwayz good, innit?

    opened by philwareham 3
  • Beta release needs a compiled txt version added as a binary

    Beta release needs a compiled txt version added as a binary

    The current release tag (0.4.0-beta) doesn't have a compiled txt file attached to the release. Stef can you please edit the release and attach that file as a binary. Doesn't affect tag at all when you edit and add a binary - so everything else fine.

    opened by philwareham 2
  • Plugin version in PHP is different from manifest.json

    Plugin version in PHP is different from manifest.json

    Just a reminder that the version number appears in two places within repo now - once in the plugin PHP code and once in the manifest.json file. Please ensure they match when ready to tag a release!

    opened by philwareham 2
  • Tidy the layout

    Tidy the layout

    Plugin requires Textpattern 4.6+, although I've only tested in 4.7 so far so I may need to PR some 4.6 fixes after first PR.

    I'd like to get Composer install tested before I fix any 4.6 things, so please merge and I'll test that at the same time that I test 4.6 installs.

    opened by philwareham 2
  • Re-assign Textpack group

    Re-assign Textpack group

    Minor tweak: For the textpack strings to show properly on Textpattern v4.8.5 (perhaps earlier too) it looks like you now need:

    #@owner smd_thumb
    #@admin-side
    #@language en
    …
    #@language fr
    …
    #@language de
    …
    

    at the start of the Textpack.

    opened by jools-r 1
  • Loose semi-column?

    Loose semi-column?

    In the category of really minor issues: Here

    .smd_thumb_switcher { float:right; margin: 0.8rem 0.6rem; 0.5rem}
    

    Either the semi-column is misplaced or the 0.5rem is not needed.

    opened by phiw13 1
  • More white space on some elements of the UI ...

    More white space on some elements of the UI ...

    Hi Stef,

    It has to do with 'taste' but I think smd_thumbnail firstly needs some white space on the two buttons (top/bottom) and at the left of the first column > "screenshot":http://take.ms/wAfHn

    And if the table could be as wide as the toggle you're plugin UI will shine ... :)

    Joop

    PS I've done some tweaking with dev tools (Chrome) and with some margin/padding you're good to go. Let me know if I can help you furthermore. As I will.

    opened by joopvos 1
  • TXP4.9-dev + strict CSP - create thumbnail fails on edit image panel

    TXP4.9-dev + strict CSP - create thumbnail fails on edit image panel

    Environment: TXP-dev 4.9 + PHP 8.2

    STR:

    • turn ON a strict CSP for the admin side in config.php, the provided settings should be OK.
    • on the admin Panel > images, select an image to edit
    • Try to create or delete or upload a thumbnail image.

    Result: failure. The select menu changes value as displayed, nothing happens further. The action is triggered by an event handler (onchange) on the select widget, which is blocked by the CSP settings (script-src-attr 'none').

    The js event handler in full: onchange="return smd_thumb_select_changed()"

    Possible solutions:

    • the user can eventually generate a hash for that event handler and add it to the CSP policy in use.
    • modify the JS to remove the need for said inline handler

    Note: the plugin does its job when uploading an image

    PS - I noticed that the <style /> block for the extension is blocked as well (the nonce is not applied), but that is possibly a core issue.

    opened by phiw13 1
  • Avif support in 4.8.8

    Avif support in 4.8.8

    Plugin need some love to support AVIF images where/when supported TXP 4.8.8 / PHP 8.1 / GD 2.3.3 with support build in. Probably something similar as the .webp support checks

    if (isset($gd_info['WebP Support']) && $gd_info['WebP Support']) {
            $valid_exts['.webp'] = IMAGETYPE_WEBP;
        }
    
    opened by phiw13 4
  • Feature idea: option to turn off auto generation of active profiles

    Feature idea: option to turn off auto generation of active profiles

    In the current process as far as I can see, when uploading a brand new image entry into the CMS the plugin automatically generates thumbnails of all active profiles.

    It would be good if that feature could be optionally turned off (in the setup section).

    In my website builds there are various profile sizes for different areas/content of the site, so not all active profiles are relevant to a specific image (and making profiles inactive removes the option to create that profile size via the dropdown list in image edit).

    Currently I have to delete all, then recreate the ones I need. I know I could leave all the other auto generated ones and simply not use them but it adds cruft to the panels and filesystem.

    opened by philwareham 2
  • warning when generating thumbnails

    warning when generating thumbnails

    Probably known, but I’ll mention it anyway:

    when creating thumbnail image in the Edit Images panel I get the following warning, but images are generated:

    Warning "imagepng(/Users/username/Sites/_emps/images/7t.png): failed to open stream: Permission denied"
    in /Users/username/Sites/_emps/textpattern/lib/class.thumb.php at line 444.
    adminErrorHandler()
    textpattern/lib/class.thumb.php:444 imagepng()
    textpattern/lib/txplib_misc.php(1783) : eval()'d code:398 wet_thumb->write()
    textpattern/lib/txplib_misc.php(1783) : eval()'d code:456 smd_thumb->write_image()
    textpattern/lib/txplib_misc.php(1783) : eval()'d code:644 smd_thumb_make()
    smd_thumb_edit()
    textpattern/lib/txplib_misc.php:1896 call_user_func_array()
    callback_event()
    textpattern/lib/txplib_misc.php:2091 call_user_func_array()
    textpattern/include/txp_image.php:631 pluggable_ui()
    

    latest code to date, post v0.31, TXP 4.6dev

    opened by phiw13 0
Releases(0.6.1)
Owner
Stef Dawson
Part human, mostly code.
Stef Dawson
Smd imagery - A Textpattern CMS plugin for managing images in the Write panel.

smd_imagery Insert images into your Write panel. Very handy for people who run photoblog or image-heavy sites, or those who categorise images for incl

Stef Dawson 5 Nov 15, 2022
Smd tags - A Textpattern CMS plugin for unlimited, structured taxonomy across content types.

smd_tags Tag articles, images, files and links with stuff, then use the public-side tags to display the lists, filter or find related content. Feature

Stef Dawson 4 Dec 26, 2022
Color-managed thumbnails for Kirby 3

ImageKit for Kirby 3 This is not directly related for ImageKit for Kirby 2, but based on the same idea of improving Kirby’s built-in image processing

Fabian Michael 13 Nov 21, 2022
Addon for Cockpit CMS - store thumbnails and meta data for video links

VideoLinkField Addon for Cockpit CMS Copy a url from YouTube or Vimeo, click the Button "Find Values", wait a second and in the background starts a se

Raffael 3 Oct 2, 2022
Made a custom Elementor widget because i wasn't able to find any free version of a slider with thumbnails.

Support my work ❤️ Buy me a coffee ☕ How to install Download -> place in plugin folder -> Activate under WordPress dashboard. How to use Open Elemento

Christian Hansen 6 Dec 25, 2022
Images and thumbnails.

Deutsch English Svenska Image 0.8.16 Images and thumbnails. How to add an image Create an [image] shortcut. The following arguments are available, all

Anna 2 Nov 4, 2022
WordPress plugin renames image filenames to be more SEO friendly, based on the post's data and image metadata.

=== Automatic image Rename === Contributors: wpsunshine Tags: image, images, SEO, rename, optimization Requires at least: 5.0 Tested up to: 6.2.2 Stab

null 8 Jun 11, 2023
Okex API Like the official document interface, Support for arbitrary extension.

It is recommended that you read the official document first Okex docs https://www.okex.com/docs/en Okex Simulation Test API https://www.okex.com/docs/

lin 34 Jan 1, 2023
Base85 encoder and decoder for arbitrary data

All your Base85 Install Install with composer. $ composer require tuupola/base85 This branch requires PHP 7.1 or up. The older 1.x branch supports als

Mika Tuupola 25 Dec 2, 2022
Base62 encoder and decoder for arbitrary data

Base62 This library implements base62 encoding. In addition to integers it can encode and decode any arbitrary data. This is useful for example when g

Mika Tuupola 178 Nov 28, 2022
CloudFlare Image Resizing plugin for WordPress.

Cloudflare Image Resizing plugin for WordPress The current Cloudflare plugin for WordPress does not replace URL's automatically for you to use the Ima

Norbert Boros 43 Jan 7, 2023
🐋📦✂️📋📦 Docker image of packagist mirror

Docker for Packagist Mirror This project allows you to easily create and update a mirror of the packagist having as dependency only the docker. It is

Webysther Nunes 28 Jan 20, 2022
Docker image that provides static analysis tools for PHP

Static Analysis Tools for PHP Docker image providing static analysis tools for PHP. The list of available tools and the installer are actually managed

Jakub Zalas 1.1k Jan 1, 2023
Tom image grid - Plugin for Textpattern CMS : An optionnal grid display for images tab

tom_image_grid tom_image_grid is a plugin for Textpattern CMS. It allows a more compact display (as a grid) of the images list. The plugin adds two bu

Thomas Jund 5 Jun 30, 2019
Docker-magento - Docker image for Magento 1.6 to 1.9

Docker image for Magento 1.x This repo creates a Docker image for Magento 1.x. Please note The primary goal of this repo is to create Docker images fo

Fu Cheng 144 Nov 18, 2022
Magento 2 Module to add simple image resizing capabilities in all blocks and .phtml templates

Magento 2 Image Resizer Magento 2 Module to add simple image resizing capabilities in all blocks and .phtml templates Installation $ composer require

Stämpfli AG 88 Apr 18, 2022
Detect the position of a face in an image.

Face Detector PHP GD 를 이용해 이미지의 얼굴 위치를 식별합니다. mauricesvay/php-facedetection 프로젝트를 기반으로 만들었습니다. js 로 포팅하며 개선한 사항들을 적용하여 error_reporting = E_ALL safe 하게

Song Hyo Jin 4 Jul 27, 2022
Simple, image-based, mathematical captcha, with increasing levels of difficulty

simple-captcha Simple, image-based, mathematical captcha, with increasing levels of difficulty version 1.1.0 see also: ModelView a simple, fast, power

Nikos M. 6 Dec 18, 2022
Allow multiple options for Magento 2 checkout layout. Provides capabilities to AB test checkout changes and more.

Aimes_CheckoutDesigns Features Please note: This module is currently still considered a proof of concept. This module provides the ability to change c

Rob Aimes 30 Aug 8, 2022