SitePoint Sponsor

User Tag List

Results 1 to 3 of 3
  1. #1
    SitePoint Member
    Join Date
    May 2005
    Posts
    4
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Help (please)! - Need new variable in a .TPL file

    Help (please)! - Need new variable in a .TPL file

    I need a solution to what's bound to be a really simplistic problem. I'm running a php/mysql script on my site and one of the functions it performs to display a news/text post and dynamically link it to a corresponding image file. If you're thinking "webcomic" you're right on the money. The news posts are formatted according to a .tpl file.

    The script itself is Comikaze and I've tried contacting the creator, but I've not heard anything back for quite some time and after several attempts.

    The thing I need help with is that I need to insert a link into that .tpl (news_print.tpl) file that will dynamically link from the news post to the corresponding image page. I've discovered that simply inserting PHP into the news_print.tpl file does not work. What I thought I'd do would be to define a new variable that I'd be able to use inside the news_print.tpl file.

    Variables that already exist are {NES_AVATAR}, {NEWS_POST}, {NEWS_DATE}, {NEWS_POSTER}, and a few others.

    The variable I need is already used by the script elsewhere as $comic_id; the comic rotation/navigation uses it to, well "navigate." However how to turn it into something that news_print.tpl can use... that's what I'm not sure about. I did some serious digging and I found this specific file that looks like it has to do with the news_print.tpl, and is called newsDO.class.php. Inside the code on line #48 begins the following code:
    PHP Code:
    function formatNewsPost($poster,$email,$avatar,$title,$post,$time,$nl2br) {
        
    $post $this->nl2brNewsPost($post,$nl2br);
        if (!empty(
    $avatar))
            
    $avatar "<img src=\"$avatar\" alt=\"$poster\" border=\"0\" />";
        
    $replace['{NEWS_POSTER}'] = $poster;
        
    $replace['{NEWS_EMAIL}'] = $email;
        
    $replace['{NEWS_AVATAR}'] = $avatar;
        
    $replace['{NEWS_TITLE}'] = $title;
        
    $replace['{NEWS_POST}'] = $post;
        
    $replace['{NEWS_DATE}'] = $time;
            
        return 
    $this->_common->getTemplate('news_print.tpl'$replace);

    I thought that if I added $comic_id into the function call on the first line and the $replace['{COMIC_ID}'] = $comic_id; down with the rest that this would allow me to use {COMIC_ID} as a variable with the news_print.tpl file. Unfortunately, all it does when I attempt to use it is spits out this error:
    Code:
    Warning: Missing argument 8 for formatnewspost() in /var/www/html/smcomikaze/includes/classes/newsDO.class.php on line 48
    My website is essentially done, this is the last bit of code I need to wedge into it and *poof* off it goes. Once I can get this to work it's keg time!

    Thanks to anyone who's taken the time to read this over!

  2. #2
    SitePoint Wizard silver trophy
    Join Date
    Mar 2006
    Posts
    6,132
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    the function you posted accepts 7 arguments. im assuming you have not posted the correct version of that function, because you have modified it to accept an 8th argument(im assuming $comic_id)

    when you call this function now, you must pass all 8 arguments. the function was called on line 48 in the file /var/www/html/smcomikaze/includes/classes/newsDO.class.php

    you must edit this to match your new argument list.

    you may also want to read about variable scope as well:
    http://www.php.net/manual/en/languag...bles.scope.php
    because that $comic_id variable must be in scope on line 48 for this to work.

    there is a chance you may need to reference the variable as $this->comic_id instead of $comic_id when you call the function on line 48.

  3. #3
    SitePoint Member
    Join Date
    May 2005
    Posts
    4
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Yes!!!

    You were right on the money, I was forgetting to update the actual function calls themselves, not just the function definition. It took me about fifteen minutes of looking around and figuring out the correct variable to use. Once I updated all the function calls it was nearly working; instead of returning any errors it was simply returning a ID value of null. I looked around and some of the other code in one of the files where the function was being called and rolled the roulette on $comicID instead of $comic_id and it all fell into place perfectly. Every post on every page points to the correct comic.

    Suu-Eeet! Thanks for your help CC, I totally, totally appreciate it!


Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •