2015-08-30 5 views
1

У меня есть функция в smarty, которая проверяет, является ли строка с именем «mikaphotos» пустой. Если строка пуста, это нормально и ничего не происходит, и если она не пуста, она принимает значение в переменной $ path. Теперь мой Assin является:smarty function assign php

$smarty->assign("mikaPhotos", getTheImages("SOMEPATH",400), true); 

и моя функция getTheImages является:

getTheImages($path,$width){ 
$dirname = $path; //the path 
$images = glob($dirname."*.png");//get the png images from directory 
foreach($images as $image) { 
echo '<img src="'.$dirname.'/'.$image.'" width="'.$width.'" /><br />';//echo all the images in SOMEPATH 
} 
} 

сейчас в моем file.tpl .. я поставил: {$ mikaPhotos} и это не работает. Я думаю, что в моем коде есть какая-то проблема, но я не знаю, как это сделать. любая помощь, пожалуйста?

+1

Что вы подразумеваете под 'это не working'? Можете ли вы еще объяснить это? У нас нет никого, если бы все просто жаловались, что «это не работает!». Скажите нам, что не работает. Что вы получаете, чего вы ожидаете получить. Есть ли ошибки? –

+0

привет @ ЧарлтетеДунуас вы правы. Я имею в виду, что в моем tpl нет изображений, это белая страница без ошибок, и я ожидаю, что функция будет эхо всех изображений в папке на моем tpl или на моей странице. Теперь это яснее? –

+0

Пожалуйста, активируйте php-ошибки в php.ini. Установите 'error_reporting' на' E_ALL' и 'display_errors' на' On'. –

ответ

0

Функция assign в Smarty правопреемников (!) возвращает значение getTheImages функции mikaPhotos переменной. Итак, ваша функция getTheImages должна вернуть строку вместо эха. Например, что-то вроде:

getTheImages($path,$width){ 
    $result = ''; 
    $dirname = $path; //the path 
    $images = glob($dirname."*.png");//get the png images from directory 
    foreach($images as $image) { 
     $result .= '<img src="'.$dirname.'/'.$image.'" width="'.$width.'" /><br />'; 
    } 

    return $result; // return html for all your images as a string 
}  
+0

, так что я могу сделать, чтобы сделать {$ mikaPhotos}, чтобы автоматически эхо все изображения в данной папке? –

+0

Я сказал - верните все изображения в виде укуса и повторите их в шаблоне. –

+0

я судимый сделать .... нет никаких ошибок, но никаких результатов –

0

ок спасибо парни я получил правильный код:

function getTheImages($path,$width){ 
             $result = ''; 
             /*$dirname = "../uploads/reko/".$path.""; //the path 
             $images = glob($dirname."*.png");//get the png images from directory 
             foreach($images as $image){ 
              $result .= '<img src="uploads/reko/'.$path.'/'.$image.'" width="'.$width.'" /><br />'; 
             }*/ 
             $handle = opendir("uploads/reko/".$path.""); 
     while($file = readdir($handle)){ 
      if($file !== '.' && $file !== '..'){ 
       $result .= '<img src="uploads/reko/'.$path.'/'.$file.'" width="'.$width.'" /><br />'; 
      } 
     } 
             return $result; 
            } 
Смежные вопросы