Allegato | Dimensione |
---|---|
![]() | 19.92 KB |
![]() | 2.95 KB |
![]() | 34.31 KB |
C'è un modo, all'interno di un tema per processare le immagini, im modo tale da fare scalarle in maniera proporzionata, sovrascrivendo le impostazioni definite in style?
<img style="width: 200px; height: 100px" src="...">
Quello che a me interessa è che il tema faccia in modo di scalare l'immagine in maniera proporzionata impostando un width: 100%;
Purtroppo non riesco a scalare in maniera proporzionale, usando i css xkè style non mi pare sovrascrivibile.
C'è forse qualche phptemplate_prepocess che può aiutarmi?
---------------
Allego i File del Modulo Mobile Plugin. All'interno di sono delle funzioni che riescono a manipolare width e height delle immagini.
Cortesemente potete aiutarmi a fare il porting delle funzioni necessarie in modo che funzionino inserendole in template.php del tema mobile? Io da solo non sono in grado di farlo.
Interessante anche la soluzione per youtube.
Userei volentieri il modulo Mobile Plugin... se solo non si incartasse con altri moduli.
Qualcuno mi può aiutare a fare il porting di queste funzioni del Modulo Mobile Plugin, fino a renderle funzioni prensenti in template.php funzionati con phptemplate ?
/**
* Optimizes html content for mobile view.
* @param map an associative array of html markup to optimize
*/
function _mobileplugin_optimize(&$map) {
require_once(dirname(__FILE__) . '/simple_html_dom.php');
// Prepare group configuration.
$group_setup = mobileplugin_get_group_setup();
$imgact = _mobileplugin_get_setup_val($group_setup, 'imageact', 'scale');
$width = $height = 180;
if ($imgact == 'scale') {
list($w, $h) = explode('x', _mobileplugin_get_setup_val($group_setup, 'imagesize', ''));
$w = intval(trim($w));
$h = intval(trim($h));
if ($w > 0 && $h > 0) {
$width = $w;
$height = $h;
}
}
$bw = intval(_mobileplugin_get_setup_val($group_setup, 'breakwords', 30));
// Optimize given key values.
$values = array();
foreach ($map as $key => $value) {
if (!empty($value)) {
$dom = str_get_html($value);
module_invoke_all('mobileplugin_optimize_dom', $group_setup, $dom);
// Do image processing.
$dom = str_get_html($dom->save());
switch ($imgact) {
case 'scale':
foreach ($dom->find('img') as $i) {
$res = _mobileplugin_image_scaled($i->src, $width, $height);
if (is_array($res)) {
$i->width = $res[0];
$i->height = $res[1] > 0 ? $res[1] : null;
} else {
$i->src = base_path() . $res;
$i->width = null;
$i->height = null;
}
}
break;
case 'remove':
foreach ($dom->find('img') as $i) {
$i = null;
}
break;
default:
break;
}
// Break long words.
if ($bw > 0) {
foreach ($dom->find('text') as $t) {
if ($t->parent()->tag != 'script') {
$t->outertext = _mobileplugin_break_long_words($t->outertext, $bw);
}
}
}
$map[$key] = $dom->save();
}
}
}
/**
* Gets a setting or a default value. Usable helper for modules implementing mobileplugin hooks.
* @param group a group settings array
* @param key a stored key
* @param default a default value
* @return a stored value or default
*/
function _mobileplugin_get_setup_val(&$group, $key, $default) {
if (isset($group[$key])) {
return $group[$key];
}
return $default;
}
/**
* Scales an image down if possible.
* @param url an image url
* @param width a maximum width
* @param height a maximum height
* @return new image url or size array
*/
function _mobileplugin_image_scaled($url, $width, $height) {
$copydir = file_directory_path() . '/mobileplugin';
$sizedir = $copydir . '/' . $width . 'x' . $height;
$basename = md5($url) . substr($url, strrpos($url, '.'));
$targetname = $sizedir . '/' . $basename;
if (file_exists($targetname)) {
return $targetname;
}
// Get the image through http to be sure.
$urlinfo = parse_url($url);
if (!$urlinfo['host'] || $urlinfo['host'] == $_SERVER['SERVER_NAME']) {
$bpath = base_path();
$bpathl = strlen($bpath);
if (substr($urlinfo['path'], 0, $bpathl) == $bpath) {
$file = urldecode(substr($urlinfo['path'], $bpathl));
// Try to activate imagecache.
if (!file_exists($file)) {
drupal_http_request($urlinfo['path'], array(), 'GET', null, 1);
if (!file_exists($file)) {
return array($width, 0);
}
}
// Scale using imageapi if available.
file_check_directory($copydir, true);
file_check_directory($sizedir, true);
drupal_get_messages();
if (module_exists('imageapi') && imageapi_default_toolkit()) {
$image = imageapi_image_open($file);
if ($image->info['width'] > 0) {
if (imageapi_image_scale($image, $width, $height) && imageapi_image_close($image, $targetname)) {
return $targetname;
}
}
}
if (image_scale($file, $targetname, $width, $height)) {
return $targetname;
}
}
}
return array($width, 0);
}
Cerco un modo per scalare le immagini agendo su width e height per il tema mobile.... ed il Modulo Mobile Plugin lo fa ma non posso utilizzarlo xkè ha i suoi bug e rotture varie.
http://www.sanisapori.eu
imagecache?
Passione per Drupal
http://retialternative.it
No!.. xkè le immagini non sono necessariamente dei file depositati sul server, anzi quelle sul server sono meno dell'1%. Serve uno strumento che lavori sull'url.
In tal caso, non è + semplice modificare width e height...con una funzione per la scalabilità? Imagecache non va bene, in questo caso.
Considerate anche che il sito è uno... cambiano solo i temi.
In più l'immagine sono normalmente parte del content e non sono gestite da alcun campo cck, questo proprio xkè non è richisto l'upload del file ma si richiede di poter lavorare con una url dell'immagine stessa che puà trovarsi ovunque nel web.
http://www.sanisapori.eu
Qui c'è una soluzione via css http://css.html.it/articoli/leggi/2430/immagini-liquide-ed-elastiche/
http://www.sanisapori.eu
Mi dovrò arrangiare da solo? :(
Sarà impresa durissima.
Mi duole il cuore non trovare aiuto per questa cosa!
http://www.sanisapori.eu
Non c'è nessun suggerimento... per poter iniziare a procedere?!.... io non sono nemmeno da dove cominciare!
http://www.sanisapori.eu
Ragazzi, qualcuno ha voglia di darmi una mano nel creare delle apposite funzioni che agiscano sulla scalabilità delle immagini e sui video di youtube partendo dalle funzioni che sono presenti nei file allegati a questa discussione?
Devo riprendere in mano questo lavoro... se no non vado avanti e mi serve proprio un pò d'aiuto.
http://www.sanisapori.eu
hai provato....
http://drupal.org/project/immage
e poi
http://drupalorg/project/lightbox2
?????
prova, me le hanno consigliate... ah... se haio qualche esperienza nella creazione dei mtemplate per drupal... mi farebbe comodo....
Non ci sto capendo nulla!
www.dragossido.com drupal 7.x
www.io-ho.com drupal 7.x
www.io-imparo.com drupal 7.x
www.spettacolando.com drupal 7.x
www.napolisgulf.com php
NON LO SO FARE!!... Cavolo!
Eppure, da un punto di vista di logica degli algoritmi utilizzati guardando le funzioni che mi interessano.. sembra tutto molto chiaro.
Le funzioni principali del file mobileplugin.module.txt che mi interessano sono queste:
/**
* Optimizes html content for mobile view.
* @param map an associative array of html markup to optimize
*/
function _mobileplugin_optimize(&$map) {
e poi
/**
* Scales an image down if possible.
* @param url an image url
* @param width a maximum width
* @param height a maximum height
* @return new image url or size array
*/
function _mobileplugin_image_scaled($url, $width, $height) {
Mi rendo conto di una cosa... mi manca il Know How legato al meccanisco di Drupal che richiama le funzioni definite all'interno di un modulo. Dico questo xkè le funzioni in esame non fanno direttamente il parsing del content... ma vengono eseguite senza che queste si occupino del parsing. Quindi c'è un'altro modo che NON so.
Molto interessante in queste funzioni l'utilizzo dei parametri del DOM per rintracciare e agire sull'html presente nel content :-).
Per favore, qualcuno mi aiuti!
http://www.sanisapori.eu
Ehm!... non ho capito nulla di quello che mi stai chiedendo. il primo url non esiste... il secondo non è quello che serve.
Non ho idea di cosa sia un mtemplate. Se intendi i temi per il mobile, io questi li realizzo come un qualsiasi altro tema.
http://www.sanisapori.eu
... grazie per la considerazione! :):):):)
guarda questo
http://drupal.org/search/apachesolr_search/image
www.dragossido.com drupal 7.x
www.io-ho.com drupal 7.x
www.io-imparo.com drupal 7.x
www.spettacolando.com drupal 7.x
www.napolisgulf.com php
Mi spiace, ma quella che proponi è una via già battuta :-) ...e trovata insoddisfacente!!
L'unica via al momento valida è proprio quella adottata dal modulo mobile_plugin.
A me servirebbe giusto un modo per fare il parsing del nodo ed applicare alcuni accorgimenti delle funzioni del modulo mobile_plugin sia per immagini che per i video di youtube.
Per favore, aiutatemi!
Ho la soluzione ad un problema importante tra le dite delle mie mani e non sono in grado di utilizzarla!...
http://www.sanisapori.eu