I used this simple php gallery from a folder on my Joomla 3 site. Now I'm getting ready to do an update to Joomla 4 and I noticed that I have a problem with displaying images from the directory. if I add "echo $dir;" to test it gives me the correct path, although the image is not displayed. When I click "Open image in new tab" on the space where the image should be, the "Joomla Menu alias" is added to the correct path of the image and no image again.

I would note that this code worked fine on Joomla 3. Where is the error? Note: $alias2 is defined before, but I didn't copy that part of the code because it's irrelevant

$current_directory = getcwd();
$dir = $current_directory . '/2000/images/' . $alias2 . '/tmp/';
$images = glob("$dir*.{jpg,jpeg,gif,png,bmp,webp}", GLOB_BRACE);

$imageCount = count($images);

 foreach ($images as $i) {
   $img = basename($i);
   $caption = substr($img, 0, strrpos($img, "."));
   printf("<figure><img src='2000/images/".$alias2."/tmp/%s'><figcaption>%s</figcaption>", 
     rawurlencode($img), $caption

  • There doesn't appear to be any part of your code posted that is using Joomla, either 3 or 4, which makes me ask have you also changed the PHP version or are testing on a different environment?
    – Irata
    Commented Oct 7, 2023 at 8:21
  • No. same php version, and same server
    – Midhat
    Commented Oct 7, 2023 at 9:16
  • Is it just a copy mistake that the HTML <figure> element is not closed in your code with </figure>?
    – Zollie
    Commented Oct 7, 2023 at 11:00
  • The element is closed in code not shown here
    – Midhat
    Commented Oct 7, 2023 at 14:20

1 Answer 1


The problem was in this line of code:

printf("<figure><img src='2000/images/".$alias2."/tmp/%s'><figcaption>%s</figcaption>", 
     rawurlencode($img), $caption 

I typed the full url here and it works now.

Thanks everyone

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.