GetSimple Support Forum

Full Version: Custom Theme PHP File Include Issue
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
Hello,

I am having an issue where I created a custom PHP file, that gets all the pictures in an image directory, and displays them on the page in correctly formatted DIV/IMG tags.

It will work correctly when I use it in a "Standalone" scenario, however...When I include it in the template.php file, the img tags do not show up, I believe this is because of a permission issue when included?

However I also noticed that I cannot use get_theme_url() function either, it says it is undefined.
what version of GS.....
(2015-09-09, 04:15:51)shawn_a Wrote: [ -> ]what version of GS.....

GetSimple CMS – Version 3.3.7
(2015-09-09, 04:26:44)korey.badgley Wrote: [ -> ]
(2015-09-09, 04:15:51)shawn_a Wrote: [ -> ]what version of GS.....

GetSimple CMS – Version 3.3.7

Should note... I am using a self-modified version of the Innovation Theme
are you using functions.php or including your own php file from your template ?
(2015-09-09, 04:15:51)shawn_a Wrote: [ -> ]what version of GS.....

I should reword that....

I cannot use the get_theme_url() in the php file that I am trying to use.


Code:
$folder = 'assets/images/projects/';
$filetype = '*.*';
$images = glob($folder.$filetype);

$j = 0;

$column1 = array();
$column2 = array();
$column3 = array();

foreach($images as $i){
   //echo "<img id='imagesLine' onmouseover='changeImage(\"".$i."\")' src='".$i."' />";
   switch ($j) {
       case 0:
           $column1[] = $i;
           $j = $j+1;//set for next
           break;
       case 1:
           $column2[] = $i;
           $j = $j+1;//set for next
           break;
       case 2:
           $column3[] = $i;
           $j = 0;//set for next
           break;
   }
   
}

   foreach($column1 as $i) {
       echo $i . "<br />";
   }

   echo "<div class='imageContainer'>";
   echo "<div class='col-3'>";
   foreach($column1 as $i){
       echo "<img class='project' src='http://localhost/WebDesignerWebsiteCMS/theme/Innovation/". $i."' />";
   }
   echo "</div>";
   echo "<div class='col-3'>";
   foreach($column2 as $i){
       echo "<img class='project' src='".$i."' />";
   }
   echo "</div>";
   echo "<div class='col-3 last'>";
   foreach($column3 as $i){
       echo "<img class='project' src='".$i."' />";
   }
   echo "</div>";
   echo "</div>";

The above is what I am trying to use, and the place where I'd like to use the function get_theme_url() is...


Code:
$folder = get_theme_url . 'assets/images/projects/';
(2015-09-09, 04:40:12)shawn_a Wrote: [ -> ]are you using functions.php or including your own php file from your template ?

Trying to include my own php file. 

Named: images.inc.php
well first off its
get_theme_url(false)
(2015-09-09, 04:52:02)shawn_a Wrote: [ -> ]well first off its
get_theme_url(false)

Just tried that, still has the same issue.
Google Drive link to Image
theme_functions is only included on front end
so you will want to do that

include_once(GSADMININCPATH.'theme_functions.php');
PHP Code:
function getImages() {

$folder get_theme_url(false) . '/assets/images/projects/';
$filetype '*.*';
$images glob($folder.$filetype);

$j 0;

$column1 = array();
$column2 = array();
$column3 = array();

foreach(
$images as $i){ 
    
 
   switch ($j) {
 
       case 0:
 
           $column1[] = $i;
 
           $j $j+1;//set for next
 
           break;
 
       case 1:
 
           $column2[] = $i;
 
           $j $j+1;//set for next
 
           break;
 
       case 2:
 
           $column3[] = $i;
 
           $j 0;//set for next
 
           break;
 
   }
 
   


 
   foreach($column1 as $i) {
 
       echo $i "<br />";
 
   }

 
   echo "<div class='imageContainer'>";
 
   echo "<div class='col-3'>";
 
   foreach($column1 as $i){ 
 
       echo "<img class='project' src='http://localhost/WebDesignerWebsiteCMS/theme/Innovation/"$i."' />";
 
   
 
   echo "</div>";
 
   echo "<div class='col-3'>";
 
   foreach($column2 as $i){ 
 
       echo "<img class='project' src='".$i."' />";
 
   
 
   echo "</div>";
 
   echo "<div class='col-3 last'>";
 
   foreach($column3 as $i){ 
 
       echo "<img class='project' src='".$i."' />";
 
   
 
   echo "</div>";
 
   echo "</div>";



I put all of the above inside a function, inside the themes_functions.php, and it still does not populate.
well not sure why you put it there, you shouldn't modify core files.

But
glob($folder.$filetype);
$folder is not a folder its a url, you asked for url...

You are probably looking for
PHP Code:
GLOBAL $TEMPLATE;
$folder GSTHEMESPATH .$TEMPLATE
I would put my project files in uploads though not themes unless they are assets.
(2015-09-09, 07:36:36)shawn_a Wrote: [ -> ]well not sure why you put it there, you shouldn't modify core files.

But
glob($folder.$filetype);
$folder is not a folder its a url, you asked for url...

You are probably looking for

PHP Code:
GLOBAL $TEMPLATE;
$folder GSTHEMESPATH .$TEMPLATE
I would put my project files in uploads though not themes unless they are assets.

It seems that I am still not understanding....Sorry....

The images.inc.php file is being used to create front-end code. It creates all the tags, except the <img /> tags.

The reason i am using the assets>images folder, is because I wasn't sure how to get the data>uploads folder, using php code...without it puking back at me, saying there were no images.

Thank you for all the help you are providing me, this is one of the reasons why I wanted to stick with GS...Support.
Well like I said you are using a url as a file path.
You should at least use debugLog() for tracing stuff.

And the sa_dev plugin for front end debugging
What about doing a scandir on GSTHEMESPATH . $TEMPLATE . '/assets/images/' , then prepend global $SITEURL to each result and output. Voila.
(2015-09-09, 08:41:54)shawn_a Wrote: [ -> ]Well like I said you are using a url as a file path.
You should at least use debugLog() for tracing stuff.

And the sa_dev plugin for front end debugging

Bad news, using the sa_dev plugin makes my front-end jquery scroller break....
(2015-09-09, 09:03:12)Tyblitz Wrote: [ -> ]What about doing a scandir on GSTHEMESPATH . $TEMPLATE . '/assets/images/' , then prepend global $SITEURL to each result and output. Voila.

Globals are not working properly... which does not make sense... 

GSCMS is acting like the file I created, and put into my custom theme folder, is not connected, nor does it understand how to use it.

I even tried taking all the PHP code, and placing it DIRECTLY into the template.php file, and it still does not create the <img /> tags... 
Hehe you gotta take smaller steps man.

You keepmsaying img tags.

How about you just take it one peice at a time.

Print_r($folder);
Print_r($images);

And fix one piece at a time.
(2015-09-09, 10:49:15)shawn_a Wrote: [ -> ]Hehe you gotta take smaller steps man.

You keepmsaying img tags.

How about you just take it one peice at a time.

Print_r($folder);
Print_r($images);

And fix one piece at a time.

Thank you for working with me.....

Print_r("Folder: " . $folder); http://localhost/WebDesignerWebsiteCMS/theme/Innovation/assets/images/projects/

Print_r("Images" . $images); Returns nothing and has no error message.

It seems the following glob() is not working? Is there something that could be preventing glob() from running?


PHP Code:
$folder get_theme_url(false) . '/assets/images/projects/';
$filetype '*.*';
$images glob($folder.$filetype); 
Your folder is still a url....
Lol
The folder should be named... path..... it needs to be a URL, as it needs to get the directory for the glob to search, and find the files that meet the *.* criteria (All files in this case.)
I should also mention I have tried...

$folder = 'assets/images/projects/';

it gives the path + file names, yet the IMG tags still will not echo to the page.
Folders have to be full paths.

You do know the difference between urls and paths?
(2015-09-09, 12:22:12)shawn_a Wrote: [ -> ]Folders have to be full paths.

You do know the difference between urls and paths?

Yes.....
The problem is that on the index.php (Page loading all other pages into it.) it will not take a relative path, it must be an absolute path.
I can create the absolute path, but that does not help when it loads, and cannot find the files in the directory that is specified.

I put...


Code:
glob($folder.$filetype, GLOB_NOCHECK);

This will return the path, if there are no results....
It is returning the full path,

http://localhost/WebDesignerWebsiteCMS/theme/Innovation/assets/images/projects/*.*

as it is unable to scan the directory as intended.

The IMG tags are not being created, as the SRC is not being populated, as there is nothing being put into $image .
This only happens when I use the file in the template.php by adding <?php include('images.inc.php'); ?>
if I try the file on it's own, it will work without a problem.
Code:
<img class="project" src="http://localhost/WebDesignerWebsiteCMS/theme/Innovation/assets/images/projects/*.*">

The above code is what is being echo'd, as glob($pattern, GLOB_NOCHECK)will return the full pattern when there are no results that match the pattern.

It seems that the glob function cannot read the directory? Could this be a permissions issue when it is included in another file?
Pages: 1 2