Dotclear


Ignore:
Timestamp:
08/20/13 22:29:42 (12 years ago)
Author:
Lepeltier kévin
Branch:
ticket #1406-2
Children:
1538:b956d78197c5, 1539:e3954ad1f103
Message:

Ticket #1406 : on encapsule new dcMedia dans des try catch pour crriger plusieurs bug.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • inc/public/lib.tpl.context.php

    r1179 r1537  
    416416          global $core, $_ctx; 
    417417           
    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) 
    438436               { 
    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; 
    445448                              } 
    446                               break; 
    447449                         } 
    448450                    } 
    449451               } 
    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; 
    463466                              } 
    464                               break; 
    465467                         } 
    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()); 
    476481          } 
    477482     } 
     
    485490          $base = $info['base']; 
    486491           
    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()); 
    520529          } 
    521530           
Note: See TracChangeset for help on using the changeset viewer.

Sites map