Navigation
Supportsider
Senest Online
flj03:22:39
helmuth21:20:15
orgermer 1 Dag
AlexF 1 Dag
HenningS 2 Uger
Niller 2 Uger
kobm 2 Uger
inga 3 Uger
gittedl 3 Uger
Henrik Bendtsen 4 Uger
Besøgende
Gæster online: 10

Brugere online: 0

Antal brugere: 179
Nyeste bruger: Michael Mogensen
Se indlæg
PHP-Fusion - Danmark » PHP-Fusion version 7 » MODs & Infusioner v7
 Udskriv debat
Forskellige bannere
Jeppe
Jeg vil gerne have at mine brugere selv kan vælge hvilket banner de vil have vist på min side. Så jeg har under fusion_users oprettet et felt, hvori standardværdien er nul (0). Går man ind under rediger profil, kan man så sætte user_banner til henholdsvis 0 og 1, hvor 0 = flashbanner og 1 = jpg-banner

Nu har jeg så fået lavet selve indstillingen og samtidig har jeg fået det kodet ind, så systemet kan se om en bruger har valgt 0 eller 1 under sine indstillinger.

Men det er så her jeg går i stå. For det er jo i "includes/theme_functions_include.php" det hele kontrolleres.

Selve koden der viser de to forskellige bannere ser således ud (Markeret med rødt):



/*-------------------------------------------------------+
| PHP-Fusion Content Management System
| Copyright (C) 2002 - 2008 Nick Jones
| http://www.php-fusion.co.uk/
+--------------------------------------------------------+
| Filename: theme_functions_include.php
| Author: Nick Jones (Digitanium)
+--------------------------------------------------------+
| This program is released as free software under the
| Affero GPL license. You can redistribute it and/or
| modify it under the terms of this license which you
| can read by viewing the included agpl.txt or online
| at www.gnu.org/licenses/agpl.html. Removal of this
| copyright header is strictly prohibited without
| written permission from the original author(s).
+--------------------------------------------------------*/
if (!defined("IN_FUSION")) { die("Access Denied"); }

function check_panel_status($side) {
   
   global $settings;
   
   $exclude_list = "";
   
   if ($side == "left") {
      if ($settings['exclude_left'] != "") {
         $exclude_list = explode("\r\n", $settings['exclude_left']);
      }
   } elseif ($side == "upper") {
      if ($settings['exclude_upper'] != "") {
         $exclude_list = explode("\r\n", $settings['exclude_upper']);
      }
   } elseif ($side == "lower") {
      if ($settings['exclude_lower'] != "") {
         $exclude_list = explode("\r\n", $settings['exclude_lower']);
      }
   } elseif ($side == "right") {
      if ($settings['exclude_right'] != "") {
         $exclude_list = explode("\r\n", $settings['exclude_right']);
      }
   }
   
   if (is_array($exclude_list)) {
      $script_url = explode("/", $_SERVER['PHP_SELF']);
      $url_count = count($script_url);
      $base_url_count = substr_count(BASEDIR, "/")+1;
      $match_url = "";
      while ($base_url_count != 0) {
         $current = $url_count - $base_url_count;
         $match_url .= "/".$script_url[$current];
         $base_url_count--;
      }
      if (!in_array($match_url, $exclude_list) && !in_array($match_url.(FUSION_QUERY ? "?".FUSION_QUERY : ""), $exclude_list)) {
         return true;
      } else {
         return false;
      }
   } else {
      return true;
   }
}

function showbanners() {
   global $settings;
   ob_start();
   if ($settings['sitebanner2']) {
      eval("?>
".stripslashes($settings['sitebanner2'])."
\n    }

if ($userdata['user_banner'] != "0") {
      eval("?>".stripslashes($settings['sitebanner1'])."\n } else {
      echo "'".$settings['sitename']."'\n";
}

   $output = ob_get_contents();
   ob_end_clean();
   return $output;
}

function showsublinks($sep = "·", $class = "") {
   $sres = dbquery(
      "SELECT link_window, link_visibility, link_url, link_name FROM ".DB_SITE_LINKS."
      WHERE ".groupaccess('link_visibility')." AND link_position>='2' AND link_url!='---' ORDER BY link_order ASC"
   );
   if(dbrows($sres)) {
      $i = 0;
      $res = "
    \n";
          while ($sdata = dbarray($sres)) {
             $link_target = $sdata['link_window'] == "1" ? " target='_blank'" : "";
             $li_class = ($i == 0 ? " class='first-link".($class ? " $class" : "")."'" : ($class ? " class='$class'" : ""));
             if (strstr($sdata['link_url'], "http://") || strstr($sdata['link_url'], "https://")) {
                $res .= "".$sep."".$sdata['link_name']."\n";
             } else {
                $res .= "".$sep."".$sdata['link_name']."\n";
             }
             $i++;
          }
          $res .= "
\n";
      return $res;
   }
}

function showsubdate() {
   global $settings;
   return ucwords(showdate($settings['subheaderdate'], time()));
}

function newsposter($info,$sep = "",$class = "") {
   global $locale;
   $res = "";
   $link_class = $class ? " class='$class' " : "";
   $res = THEME_BULLET." ".$info['user_name']." ";
   $res .= $locale['global_071'].showdate("longdate", $info['news_date']);
   $res .= $info['news_ext'] == "y" || $info['news_allow_comments'] ? $sep."\n" : "\n";
   return "".$res;
}

function newsopts($info, $sep, $class = "") {
   global $locale; $res = "";
   $link_class = $class ? " class='$class' " : "";
   if (!isset($_GET['readmore']) && $info['news_ext'] == "y") $res = "".$locale['global_072']." ".$sep." ";
   if ($info['news_allow_comments']) $res .= "".$info['news_comments'].($info['news_comments'] == 1 ? $locale['global_073b'] : $locale['global_073'])." ".$sep." ";
   if ($info['news_ext'] == "y" || $info['news_allow_comments']) $res .= $info['news_reads'].$locale['global_074']."\n";
   $res .= $sep." '".$locale['global_075']."'\n";
   return "".$res;
}

function articleposter($info, $sep = "", $class = "") {
   global $locale; $res = "";
   $link_class = $class ? " class='$class' " : "";
   $res = THEME_BULLET." ".$locale['global_070']."".$info['user_name']."\n";
   $res .= $locale['global_071'].showdate("longdate", $info['article_date']);
   $res .= $info['article_allow_comments'] ? $sep."\n" : "\n";
   return "".$res;
}

function articleopts($info, $sep) {
   global $locale; $res = "";
   if ($info['article_allow_comments']) { $res = "".$info['article_comments'].($info['article_comments'] == 1 ? $locale['global_073b'] : $locale['global_073'])." ".$sep."\n"; }
   $res .= $info['article_reads'].$locale['global_074']." ".$sep."\n";
   $res .= "'".$locale['global_075']."'\n";
   return "".$res;
}

function itemoptions($item_type, $item_id) {
   global $locale, $aidlink; $res = "";
   if ($item_type == "N") {
      if (iADMIN && checkrights($item_type)) { $res .= " · '".$locale['global_076']."'\n"; }
   } elseif ($item_type == "A") {
   if (iADMIN && checkrights($item_type)) { $res .= " · '".$locale['global_076']."'\n"; }
   }
   return $res;
}

function showcopyright($class = "") {
   $link_class = $class ? " class='$class' " : "";
   $res = "Powered by PHP-Fusion copyright © 2002 - ".date("Y")." by Nick Jones.
\n";
   $res .= "Released as free software without warranties under GNU Affero GPL v3.\n";
   return $res;
}

function showcounter() {
   global $locale,$settings;
   return "".number_format($settings['counter'])." ".($settings['counter'] == 1 ? $locale['global_170'] : $locale['global_171']);
}

function panelbutton($state, $bname) {
   if (isset($_COOKIE["fusion_box_".$bname])) {
      if ($_COOKIE["fusion_box_".$bname] == "none") {
         $state = "off";
      } else {
         $state = "on";
      }
   }
   return ">";
}

function panelstate($state, $bname) {
   if (isset($_COOKIE["fusion_box_".$bname])) {
      if ($_COOKIE["fusion_box_".$bname] == "none") {
         $state = "off";
      } else {
         $state = "on";
      }
   }
   return "
\n";
}

// v6 compatibility
function opensidex($title, $state = "on") {
   
   openside($title, true, $state);

}

function closesidex() {

   closeside();

}

function tablebreak() {
   return true;
}
?>


Men det giver følgende notice:
Notice: Undefined variable: userdata in /includes/theme_functions_include.php on line 70

Smokeman foreslog at indsætte $userdata = ""; lige over den røde kode, hvilket fjerne ovenstående notice, men giver en ny notice:
Notice: Uninitialized string offset: 0 in /includes/theme_functions_include.php on line 71

Men notice eller ej, så virker koden slet ikke efter hensigten - Det er hele tiden flashbanneret som bliver vist :(
Så håber stærkt på at der er en herinde der kan hjælpe mig lidt på vej :)
Redigeret af Jeppe d. 11-08-2008 17:51
Find piercingsmykker pÅ BodyMod.dk Shop
216 kroner doneret til PHP-Fusion Smile
 
http://www.bodymod.dk/
Josso
Find global $settings; nogle linjer ovenover og ændre linjen til:

global $settings, $userdata;

;)
img186.imageshack.us/img186/7947/macuserbar1oz3.png
 
http://mymix.dk
Jeppe
Mange tak for den forholdsvis simple men værdsatte hjælp Grin Det virker efter hensigten nu
Find piercingsmykker pÅ BodyMod.dk Shop
216 kroner doneret til PHP-Fusion Smile
 
http://www.bodymod.dk/
Josso
Jamen, det var da godt. Smile
img186.imageshack.us/img186/7947/macuserbar1oz3.png
 
http://mymix.dk
Jeppe
Og så alligevel ikke :)
Det virker fint når man er logget ind, men når man ser på siden som gæst, kommer følgende fejl over banneret:

Notice: Undefined index: user_banner in /mounted-storage/home51a/sub002/sc35376-QEUD/bodymod.dk/includes/theme_functions_include.php on line 71

Find piercingsmykker pÅ BodyMod.dk Shop
216 kroner doneret til PHP-Fusion Smile
 
http://www.bodymod.dk/
Josso
Prøv dette:

if (iMEMBER && $userdata['user_banner'] != "0") {
      eval("?>".stripslashes($settings['sitebanner1'])."\n } else {
      echo "'".$settings['sitename']."'\n";
}


Så bør den automatisk vælge løsning nummer to.
Hvis du vil have den til at vælge løsning nr. 1, så indsæt dette lige før:

if (iGUEST) $userdata['user_banner'] = 1;

img186.imageshack.us/img186/7947/macuserbar1oz3.png
 
http://mymix.dk
Jeppe
Sådan du, så skulle den være på plads Smile

Endnu engang tak for hjælpen
Find piercingsmykker pÅ BodyMod.dk Shop
216 kroner doneret til PHP-Fusion Smile
 
http://www.bodymod.dk/
Spring til debat: