Imagecache module button provides a user interface for adding images provided by imagecache presets.
It allows users select one of the imagecache presets that will handle the selected image. If IMCE is installed, the image URL can be retrieved from IMCE interface, otherwise the user specifies it manually.
A demo is available for testing.
Note that, preview of images won't work since imagecache is not installed in this site. The two preset options (set1 and set2) do not exist.
php:
$imce_url = url('imce');
$filepath = url(file_directory_path());
return "js:
var B = eDefBrowseButton('$imce_url', 'attr_src', 'Browse', 'image');
var form = [
{name: 'src', title: 'Image URL', suffix: B},
{name: 'preset', type: 'select', options: {'': '', set1: 'set1', set2: 'set2'}},
{name: 'alt', title: 'Alternative text'}
];
eDefTagDialog('img', form, 'Image Cache', 'OK', 'imageCacheProcess');
imageCacheProcess = function (tag, form) {
var ps = form.elements['attr_preset'];
var url = form.elements['attr_src'];
if (ps.value) {
url.value = '$filepath/imagecache/'+ ps.value + url.value;
ps.value = '';
}
eDefTagInsert(tag, form);
}
var el = document.forms['eDefForm'].elements, url = el['attr_src'].value, i = url.indexOf('/imagecache/');
if (i != -1) {
url = url.substr(i+12);
i = url.indexOf('/');
el['attr_src'].value = url.substr(i);
el['attr_preset'].value = url.substr(0, i);
}
";
Thanks for this. I added a
Thanks for this.
I added a small bit of code to load and fill up the preset options directly from ImageCache so the list won't need to be maintained manually. Hope this helps someone:
php:
$imce_url = url('imce');
$filepath = url(file_directory_path());
$for_removal = base_path() . file_directory_path();
foreach (imagecache_presets() as $preset) {
$presets .= "'" . $preset['presetname'] . "'" . ': ' . "'" . $preset['presetname'] . "'" . ', ';
}
return "js:
var B = eDefBrowseButton('$imce_url', 'attr_src', 'Browse', 'image');
var form = [
{name: 'src', title: 'Image URL', suffix: B},
{name: 'preset', type: 'select', options: {'': '', $presets }},
{name: 'alt', title: 'Alternate Text'}
];
eDefTagDialog('img', form, 'Image Cache', 'OK', 'imageCacheProcess');
imageCacheProcess = function (tag, form) {
var ps = form.elements['attr_preset'];
var url = form.elements['attr_src'];
if (ps.value) {
url.value = url.value.replace('$for_removal', '');
url.value = '$filepath/imagecache/'+ ps.value + url.value;
ps.value = '';
}
eDefTagInsert(tag, form);
}
var el = document.forms['eDefForm'].elements, url = el['attr_src'].value, i = url.indexOf('/imagecache/');
if (i != -1) {
url = url.substr(i+12);
i = url.indexOf('/');
el['attr_src'].value = url.substr(i);
el['attr_preset'].value = url.substr(0, i);
}
";