Avatar billede daniel_d Nybegynder
24. januar 2006 - 17:03 Der er 10 kommentarer og
1 løsning

har modificeret et script - nu mangler jeg en løkke?

jeg har en php side som forbereder udskrift af nogle billeder samt siden hvor billederne bliver udskrevet.

Siden hvor billederne bliver udskrevet henter data fra 1. side f.eks. via:
{product_image}<br />
{more_images}

More images var tidligere et link til en anden side med flere billeder, men nu har jeg lavet det om så den istedet viser billderne på siden. Problemet er imidlertidig, at den ikke kører en løkke og dermed kun viser det 1. billede.

Hvordan kan jeg ændre på det?

på siden der forbereder billederne er der bl.a. denne kode: (udklip fra siden)


  /* MORE IMAGES ??? */
    $more_images = "";
  if( !empty($images->images) ) {
     
    mm_showMyFileName( __FILE__ );
   
    $flypage = mosGetParam($_REQUEST, "flypage", FLYPAGE);
    $product_id = intval(mosgetparam($_REQUEST, "product_id"));
    $page = mosgetparam($_REQUEST, "page", null);
    $image_id = intval(mosgetparam($_REQUEST, "image_id", "product"));
    $Itemid = intval(mosgetparam($_REQUEST, "Itemid"));
   
    if( !empty($product_id) ) {
   
      require_once( CLASSPATH . "ps_product.php" );
      $ps_product =& new ps_product();

      $dbi = new ps_DB();
     
  $dbi->query( "SELECT * FROM #__{vm}_product_files WHERE file_product_id='$product_id' AND file_is_image='1'" );
  $images = $dbi->record;
  $i = 0;
  foreach( $images as $image ) {
    $info = pathinfo( $image->file_name );
   
    $src = dirname($image->file_url) ."/resized/". basename($image->file_name, ".".$info["extension"])."_".PSHOP_IMG_WIDTH."x".PSHOP_IMG_HEIGHT.".".$info["extension"];
    $alt = $image->file_title;
    $height = 100;
    $width = 100;
   
    $href = $_SERVER['PHP_SELF']."?option=com_virtuemart&page=$page&product_id=$product_id&image_id=".$image->file_id."&Itemid=".$Itemid;

    $more_images = "<a href=\"$mosConfig_live_site/index.php?option=com_virtuemart&page=shop.view_images&flypage=".@$_REQUEST['flypage']."&product_id=$product_id&category_id=$category_id&Itemid=$Itemid\">";
    $more_images .= "<div style=\"text-align:center;overflow:auto;\"><img src=\"$src\" alt=\"$alt\" align=\"center\" width=\"$width\" border=\"$border\" /></div></a>";           

//    echo "<a href=\"$href\" target=\"_self\" title=\"$title\"><img src=\"$src\" alt=\"$alt\" align=\"center\" width=\"$width\" border=\"$border\" /></a>\n&nbsp;&nbsp;&nbsp;";

  }   

}

-----------

$template = str_replace( "{more_images}", $more_images, $template );
Avatar billede daniel_d Nybegynder
24. januar 2006 - 17:05 #1
Uden at vide ret meget om php vil jeg tro løkken skal laves om:

$template = str_replace( "{more_images}", $more_images, $template );

Men jeg er som sagt ikke særlig php kyndig :/
Avatar billede daniel_d Nybegynder
24. januar 2006 - 17:07 #2
Eller også skal jeg bare holde min kæft og vente på, at der er nogen der siger noget klogt :)
Avatar billede nielle Nybegynder
24. januar 2006 - 17:41 #3
Et bud:

/* MORE IMAGES ??? */
$more_images = "";
if (!empty($images->images))
{
    mm_showMyFileName( __FILE__ );

    $flypage = mosGetParam($_REQUEST, "flypage", FLYPAGE);
    $product_id = intval(mosgetparam($_REQUEST, "product_id"));
    $page = mosgetparam($_REQUEST, "page", null);
    $image_id = intval(mosgetparam($_REQUEST, "image_id", "product"));
    $Itemid = intval(mosgetparam($_REQUEST, "Itemid"));
   
    if (!empty($product_id))
    {
        require_once(CLASSPATH . "ps_product.php");
        $ps_product =& new ps_product();

        $dbi = new ps_DB();
        $dbi->query("SELECT * FROM #__{vm}_product_files WHERE file_product_id='$product_id' AND file_is_image='1'");
       
        while ($dbi->next_record())
        {
            $images = $dbi->record();
            $i = 0;
            foreach ($images as $image)
            {
                $info = pathinfo($image->file_name);
                $src = dirname($image->file_url) . "/resized/" . basename($image->file_name, "." . $info["extension"]) . "_" . PSHOP_IMG_WIDTH . "x" . PSHOP_IMG_HEIGHT . "." . $info["extension"];
                $alt = $image->file_title;
                $height = 100;
                $width = 100;
                $href = $_SERVER['PHP_SELF'] . "?option=com_virtuemart&page=$page&product_id=$product_id&image_id=" . $image->file_id . "&Itemid=" . $Itemid;
                $more_images = "<a href=\"$mosConfig_live_site/index.php?option=com_virtuemart&page=shop.view_images&flypage=" . @$_REQUEST['flypage'] . "&product_id=$product_id&category_id=$category_id&Itemid=$Itemid\">";
                $more_images .= "<div style=\"text-align:center;overflow:auto;\"><img src=\"$src\" alt=\"$alt\" align=\"center\" width=\"$width\" border=\"$border\" /></div></a>";           

                //echo "<a href=\"$href\" target=\"_self\" title=\"$title\"><img src=\"$src\" alt=\"$alt\" align=\"center\" width=\"$width\" border=\"$border\" /></a>\n&nbsp;&nbsp;&nbsp;";
            }
        }
    }
}
Avatar billede daniel_d Nybegynder
24. januar 2006 - 17:45 #4
så får jeg fejl:
Fatal error: Call to undefined function: record() in /var/www/html/administrator/components/com_virtuemart/html/shop.product_details.php on line 276

hvilke svarer til denne linie:

$images = $dbi->record();
Avatar billede nielle Nybegynder
24. januar 2006 - 18:30 #5
Ret det tilbage til:

$images = $dbi->record;
Avatar billede daniel_d Nybegynder
24. januar 2006 - 18:58 #6
Ja, altså der kommer ingen fejl, men stadig kun 1 billede...
Avatar billede nielle Nybegynder
24. januar 2006 - 19:13 #7
Lad mig gætte ... det var det sidste billede den viste?

Prøv dette i stedet:

/* MORE IMAGES ??? */
$more_images = "";
if (!empty($images->images))
{
    mm_showMyFileName( __FILE__ );

    $flypage = mosGetParam($_REQUEST, "flypage", FLYPAGE);
    $product_id = intval(mosgetparam($_REQUEST, "product_id"));
    $page = mosgetparam($_REQUEST, "page", null);
    $image_id = intval(mosgetparam($_REQUEST, "image_id", "product"));
    $Itemid = intval(mosgetparam($_REQUEST, "Itemid"));
   
    if (!empty($product_id))
    {
        require_once(CLASSPATH . "ps_product.php");
        $ps_product =& new ps_product();

        $dbi = new ps_DB();
        $dbi->query("SELECT * FROM #__{vm}_product_files WHERE file_product_id='$product_id' AND file_is_image='1'");

        $more_images = "";
        while ($dbi->next_record())
        {
            $images = $dbi->record;
            $i = 0;
            foreach ($images as $image)
            {
                $info = pathinfo($image->file_name);
                $src = dirname($image->file_url) . "/resized/" . basename($image->file_name, "." . $info["extension"]) . "_" . PSHOP_IMG_WIDTH . "x" . PSHOP_IMG_HEIGHT . "." . $info["extension"];
                $alt = $image->file_title;
                $height = 100;
                $width = 100;
                $href = $_SERVER['PHP_SELF'] . "?option=com_virtuemart&page=$page&product_id=$product_id&image_id=" . $image->file_id . "&Itemid=" . $Itemid;
                $more_images .= "<a href=\"$mosConfig_live_site/index.php?option=com_virtuemart&page=shop.view_images&flypage=" . @$_REQUEST['flypage'] . "&product_id=$product_id&category_id=$category_id&Itemid=$Itemid\">";
                $more_images .= "<div style=\"text-align:center;overflow:auto;\"><img src=\"$src\" alt=\"$alt\" align=\"center\" width=\"$width\" border=\"$border\" /></div></a>";           

                // echo "<a href=\"$href\" target=\"_self\" title=\"$title\"><img src=\"$src\" alt=\"$alt\" align=\"center\" width=\"$width\" border=\"$border\" /></a>\n&nbsp;&nbsp;&nbsp;";
            }
        }
    }
}
Avatar billede daniel_d Nybegynder
24. januar 2006 - 19:18 #8
Det var det sidste billede ja... Jeg prøver lige dit forslag af :)
Avatar billede daniel_d Nybegynder
24. januar 2006 - 19:20 #9
Nu nærmere det sig... den viste alle billderne denne gang. Men den viste dem 2 gange. Der er måske en løkke for meget et sted.
Avatar billede daniel_d Nybegynder
24. januar 2006 - 19:23 #10
Det var:
while ($dbi->next_record())

Der bare skulle væk... nu viser den billerne 1 gang som den skal. KANOOOOON!.

Jamen jeg siger tak for hjælpen - smider du ikke et svar :)
Avatar billede nielle Nybegynder
24. januar 2006 - 19:39 #11
Svar :^)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester