Changeset 1537:a3ac778e9132 for inc/public/lib.tpl.context.php
- Timestamp:
- 08/20/13 22:29:42 (12 years ago)
- Branch:
- ticket #1406-2
- Children:
- 1538:b956d78197c5, 1539:e3954ad1f103
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
inc/public/lib.tpl.context.php
r1179 r1537 416 416 global $core, $_ctx; 417 417 418 $media = new dcMedia($core); 419 $sizes = implode('|',array_keys($media->thumb_sizes)).'|o'; 420 if (!preg_match('/^'.$sizes.'$/',$size)) { 421 $size = 's'; 422 } 423 $p_url = $core->blog->settings->system->public_url; 424 $p_site = preg_replace('#^(.+?//.+?)/(.*)$#','$1',$core->blog->url); 425 $p_root = $core->blog->public_path; 426 427 $pattern = '(?:'.preg_quote($p_site,'/').')?'.preg_quote($p_url,'/'); 428 $pattern = sprintf('/<img.+?src="%s(.*?\.(?:jpg|jpeg|gif|png))"[^>]+/msui',$pattern); 429 430 $src = ''; 431 $alt = ''; 432 433 # We first look in post content 434 if (!$cat_only && $_ctx->posts) 435 { 436 $subject = ($content_only ? '' : $_ctx->posts->post_excerpt_xhtml).$_ctx->posts->post_content_xhtml; 437 if (preg_match_all($pattern,$subject,$m) > 0) 418 try { 419 $media = new dcMedia($core); 420 $sizes = implode('|',array_keys($media->thumb_sizes)).'|o'; 421 if (!preg_match('/^'.$sizes.'$/',$size)) { 422 $size = 's'; 423 } 424 $p_url = $core->blog->settings->system->public_url; 425 $p_site = preg_replace('#^(.+?//.+?)/(.*)$#','$1',$core->blog->url); 426 $p_root = $core->blog->public_path; 427 428 $pattern = '(?:'.preg_quote($p_site,'/').')?'.preg_quote($p_url,'/'); 429 $pattern = sprintf('/<img.+?src="%s(.*?\.(?:jpg|jpeg|gif|png))"[^>]+/msui',$pattern); 430 431 $src = ''; 432 $alt = ''; 433 434 # We first look in post content 435 if (!$cat_only && $_ctx->posts) 438 436 { 439 foreach ($m[1] as $i => $img) { 440 if (($src = self::ContentFirstImageLookup($p_root,$img,$size)) !== false) { 441 $dirname = str_replace('\\', '/', dirname($img)); 442 $src = $p_url.($dirname != '/' ? $dirname : '').'/'.$src; 443 if (preg_match('/alt="([^"]+)"/',$m[0][$i],$malt)) { 444 $alt = $malt[1]; 437 $subject = ($content_only ? '' : $_ctx->posts->post_excerpt_xhtml).$_ctx->posts->post_content_xhtml; 438 if (preg_match_all($pattern,$subject,$m) > 0) 439 { 440 foreach ($m[1] as $i => $img) { 441 if (($src = self::ContentFirstImageLookup($p_root,$img,$size)) !== false) { 442 $dirname = str_replace('\\', '/', dirname($img)); 443 $src = $p_url.($dirname != '/' ? $dirname : '').'/'.$src; 444 if (preg_match('/alt="([^"]+)"/',$m[0][$i],$malt)) { 445 $alt = $malt[1]; 446 } 447 break; 445 448 } 446 break;447 449 } 448 450 } 449 451 } 450 } 451 452 # No src, look in category description if available 453 if (!$src && $with_category && $_ctx->posts->cat_desc) 454 { 455 if (preg_match_all($pattern,$_ctx->posts->cat_desc,$m) > 0) 456 { 457 foreach ($m[1] as $i => $img) { 458 if (($src = self::ContentFirstImageLookup($p_root,$img,$size)) !== false) { 459 $dirname = str_replace('\\', '/', dirname($img)); 460 $src = $p_url.($dirname != '/' ? $dirname : '').'/'.$src; 461 if (preg_match('/alt="([^"]+)"/',$m[0][$i],$malt)) { 462 $alt = $malt[1]; 452 453 # No src, look in category description if available 454 if (!$src && $with_category && $_ctx->posts->cat_desc) 455 { 456 if (preg_match_all($pattern,$_ctx->posts->cat_desc,$m) > 0) 457 { 458 foreach ($m[1] as $i => $img) { 459 if (($src = self::ContentFirstImageLookup($p_root,$img,$size)) !== false) { 460 $dirname = str_replace('\\', '/', dirname($img)); 461 $src = $p_url.($dirname != '/' ? $dirname : '').'/'.$src; 462 if (preg_match('/alt="([^"]+)"/',$m[0][$i],$malt)) { 463 $alt = $malt[1]; 464 } 465 break; 463 466 } 464 break;465 467 } 466 } 467 }; 468 } 469 470 if ($src) { 471 if ($no_tag) { 472 return $src; 473 } else { 474 return '<img alt="'.$alt.'" src="'.$src.'" class="'.$class.'" />'; 475 } 468 }; 469 } 470 471 if ($src) { 472 if ($no_tag) { 473 return $src; 474 } else { 475 return '<img alt="'.$alt.'" src="'.$src.'" class="'.$class.'" />'; 476 } 477 } 478 479 } catch (Exception $e) { 480 $core->error->add($e->getMessage()); 476 481 } 477 482 } … … 485 490 $base = $info['base']; 486 491 487 $media = new dcMedia($core); 488 $sizes = implode('|',array_keys($media->thumb_sizes)); 489 if (preg_match('/^\.(.+)_('.$sizes.')$/',$base,$m)) { 490 $base = $m[1]; 491 } 492 493 $res = false; 494 if ($size != 'o' && file_exists($root.'/'.$info['dirname'].'/.'.$base.'_'.$size.'.jpg')) 495 { 496 $res = '.'.$base.'_'.$size.'.jpg'; 497 } 498 else 499 { 500 $f = $root.'/'.$info['dirname'].'/'.$base; 501 if (file_exists($f.'.'.$info['extension'])) { 502 $res = $base.'.'.$info['extension']; 503 } elseif (file_exists($f.'.jpg')) { 504 $res = $base.'.jpg'; 505 } elseif (file_exists($f.'.jpeg')) { 506 $res = $base.'.jpeg'; 507 } elseif (file_exists($f.'.png')) { 508 $res = $base.'.png'; 509 } elseif (file_exists($f.'.gif')) { 510 $res = $base.'.gif'; 511 } elseif (file_exists($f.'.JPG')) { 512 $res = $base.'.JPG'; 513 } elseif (file_exists($f.'.JPEG')) { 514 $res = $base.'.JPEG'; 515 } elseif (file_exists($f.'.PNG')) { 516 $res = $base.'.PNG'; 517 } elseif (file_exists($f.'.GIF')) { 518 $res = $base.'.GIF'; 519 } 492 try { 493 $media = new dcMedia($core); 494 $sizes = implode('|',array_keys($media->thumb_sizes)); 495 if (preg_match('/^\.(.+)_('.$sizes.')$/',$base,$m)) { 496 $base = $m[1]; 497 } 498 499 $res = false; 500 if ($size != 'o' && file_exists($root.'/'.$info['dirname'].'/.'.$base.'_'.$size.'.jpg')) 501 { 502 $res = '.'.$base.'_'.$size.'.jpg'; 503 } 504 else 505 { 506 $f = $root.'/'.$info['dirname'].'/'.$base; 507 if (file_exists($f.'.'.$info['extension'])) { 508 $res = $base.'.'.$info['extension']; 509 } elseif (file_exists($f.'.jpg')) { 510 $res = $base.'.jpg'; 511 } elseif (file_exists($f.'.jpeg')) { 512 $res = $base.'.jpeg'; 513 } elseif (file_exists($f.'.png')) { 514 $res = $base.'.png'; 515 } elseif (file_exists($f.'.gif')) { 516 $res = $base.'.gif'; 517 } elseif (file_exists($f.'.JPG')) { 518 $res = $base.'.JPG'; 519 } elseif (file_exists($f.'.JPEG')) { 520 $res = $base.'.JPEG'; 521 } elseif (file_exists($f.'.PNG')) { 522 $res = $base.'.PNG'; 523 } elseif (file_exists($f.'.GIF')) { 524 $res = $base.'.GIF'; 525 } 526 } 527 } catch (Exception $e) { 528 $core->error->add($e->getMessage()); 520 529 } 521 530
Note: See TracChangeset
for help on using the changeset viewer.