Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1

    E' possibile modificare questo file..?

    Ciao a tutti ho un quesito da chiedervi..

    ho un file che è parte di joomla che ha la funzione di visualizzare un numero dichiarato di immagini scelte a caso da una tabella del database..

    questo è il codice:

    Codice PHP:
    <?php


    // no direct access
    defined'_VALID_MOS' ) or die( 'Restricted access' );

    // language-specific stuff
    define ('_CLICK_OPEN_IMAGE','Guarda la galleria');
    define ('_CLICK_OPEN_ALBUM','');

    // Get parameters
    $moduleclass_sfx $params->get'moduleclass_sfx' );
    $pretext         $params->get'pretext' );
    $size            $params->get'size' );
    $width           $params->get'width' );
    $count           $params->get'count' );
    $linkimage       $params->get'linkimage' );
    $border          $params->get'border' );
    $showtitle       $params->get'showtitle' );
    $showalbum       $params->get'showalbum' );
    $showauthor      $params->get'showauthor' );
    $showhits        $params->get'showhits' );
    $showdate        $params->get'showdate' );
    $albumlabel      $params->get'albumlabel' );
    $authorlabel     $params->get'authorlabel' );
    $hitslabel       $params->get'hitslabel' );
    $datelabel       $params->get'datelabel' );
    $orientation     $params->get'orientation' );
    $exclusions      $params->get'exclusions' );
    $approved        $params->get'approved' );

    // Format the exclusions as a part of the DB query
    if ($exclusions)
    {
        
    $exclusions str_replace(" ","",$exclusions);
        while (
    substr($exclusions,0,1) == ",")
            
    $exclusions substr($exclusions,1,strlen($exclusions)-1);
        while (
    substr($exclusions,strlen($exclusions)-1) == ",")
            
    $exclusions substr($exclusions,0,strlen($exclusions)-1);
        
    $exclusions str_replace","") AND (catid != ","AND (catid != ".$exclusions.")");
    }

    // Approved only?
    if ($approved)
        
    $approved "AND approved";

    // Query every published record in the image table
    $database->setQuery("SELECT * FROM #__ponygallery WHERE published $approved $exclusions");
    $images $database->loadObjectList();

    // How many images are there?
    $totalimages count($images);
    $imagesused "~";

    // We need to use a table for this to work
    $content "<table width='100%'>\n<tr>\n";

    // Display the random image
    if ($width)
        
    $width "width='$width'";

    // Produce as many images as requested
    for ($i=0$i<$count$i++)
    {
        
    // Select one at random
        
    do
            
    $selection $images[rand(1,$totalimages-1)];
        while (
    stripos($imagesused,"~".$selection->id."~"));
        
    $imagesused .= $selection->id."~";

        if ( 
    $size == "thumb" )
        {
            
    $imgsrc "



    [img]"
    .$GLOBALS[[/img]imgthumbname."' border=".$border.$width />\n";
        }
        else
        {
            
    $imgsrc "[img]".$GLOBALS[[/img]imgfilename."'  border=".$border.$width />\n";
        }

        
    // See if we need to make the image clickable
        
    if ( $linkimage )
            
    $content .= "<td>[url='".$GLOBALS[']id."' title='"._CLICK_OPEN_IMAGE."'>".$imgsrc."[/url]";
        else
            
    $content .= "<td>$imgsrc";

        // See if we need to add any text
        if ( 
    $showalbum )
        {
            
    $database->setQuery( "SELECT name FROM #__ponygallery_catg WHERE cid=$selection->catid" );
            
    $album $database->loadResult();
            if ( 
    $linkimage $album "[url='".$GLOBALS[']catid."' title="._CLICK_OPEN_ALBUM.">".$album."[/url]";
            
    $content .= "
    ".
    $albumlabel.$album."\n";
        }
        if ( 
    $showtitle  and $selection->imgtitle != '' )   $content .= "
    ".
    $selection->imgtitle."\n";
        if ( 
    $showauthor and $selection->imgauthor != '' )
        {
            // see if Community Builder is installed
            if (file_exists(
    $GLOBALS['mosConfig_absolute_path']."/components/com_comprofiler"))
            {
                
    $database->setQuery("SELECT FROM #__users WHERE username='$selection->owner'");
                
    $database->loadObject($user);
                
    $content .= "
    "
    .$authorlabel."[url='".$GLOBALS[']id'>".$selection->imgauthor."[/url]\n";
            }
            else
                
    $content .= "
    ".
    $authorlabel.$selection->imgauthor."\n";
        }
        if ( 
    $showdate   and $selection->imgdate != '' )    $content .= "
    ".
    $datelabel.date($showdate,$selection->imgdate)."\n";
        if ( 
    $showhits   and $selection->imgcounter != '' ) $content .= "
    ".
    $hitslabel.$selection->imgcounter."\n";

        if ((
    $i < ($count-1)) && ($orientation == "vertical"))
            
    $content .= "<hr></td>\n</tr>\n<tr>\n";
        else
            
    $content .= "</td>\n";
    }

    $content .= "</tr></table>";

    // Display any pretext specified
    if (
    $pretext)
        
    $content = $pretext.$content;

    ?>

    La mia domanda è:

    sarebbe difficile modificarlo in modo tale che anzichè visualizzare un certo numero di immagini a caso, vengano visualizzate tutte le immagni presenti nella tabella e basta??

    sono un pecorone in php e quindi non riesco a capire se è possibile farlo??

    un grazie a chi mi aiuta!!!

  2. #2
    modifica questo
    Codice PHP:
    "SELECT * FROM #__ponygallery WHERE published $approved $exclusions
    in questo modo
    Codice PHP:
    "SELECT * FROM #__ponygallery" 
    poi
    questo
    Codice PHP:
    $selection->imgthumbname 
    con
    Codice PHP:
    $images->imgthumbname 
    poi questo
    Codice PHP:
    $selection->imgfilename 
    con
    Codice PHP:
    $images->imgfilename 
    dovrebbe andare nn so..

  3. #3
    intanto grazie per la risposta!!
    ho provato a sostituire il codice ma niente da fare.. il risultato delle modifiche è che si vedono solo il titolo e l'autore dell'opera ma le immagini sono sparite.. e comunque girano sempre sotto la funzione random..
    in effetti ho dato poche spiegazioni sulla faccenda...
    mi sono imbarcato nel creare un sito di una cooperativa di artisti e la mia intenzione sarebbe quella di utilizzare un cms già bello e fatto ed ho scelto joomla..
    ovviamente ci dovrebbero essere un sacco di gallerie per le immagini delle opere degli artisti..ho scelto il componente ponygallery che è molto semplice ed ha tutto quello che mi serve..
    l'unica cosa che mi manca è quella di creare un menù per ogni artista che contenga tutte le thumbnails delle immagini della galleria con le sue opere .. allora visto che esiste già questo modulo aggiuntivo che si chiama ponyrandom ,( che si occupa di visualizzare in modalità random, una quantità di immagini opzionabile) ho pensato che forse non sarebbe difficile modificarlo per fare ciò che mi serve.. boh.. e quindi dopo aver passato due giorni ad analizzare i file sono giunto alla conclusione che non sono in grado e quindi eccomi qui a chiedere aiuto....

  4. #4
    credo che ora funzioni...provalo
    Codice PHP:
    <?php


    // no direct access
    defined'_VALID_MOS' ) or die( 'Restricted access' );

    // language-specific stuff
    define ('_CLICK_OPEN_IMAGE','Guarda la galleria');
    define ('_CLICK_OPEN_ALBUM','');

    // Get parameters
    $moduleclass_sfx $params->get'moduleclass_sfx' );
    $pretext         $params->get'pretext' );
    $size            $params->get'size' );
    $width           $params->get'width' );
    $count           $params->get'count' );
    $linkimage       $params->get'linkimage' );
    $border          $params->get'border' );
    $showtitle       $params->get'showtitle' );
    $showalbum       $params->get'showalbum' );
    $showauthor      $params->get'showauthor' );
    $showhits        $params->get'showhits' );
    $showdate        $params->get'showdate' );
    $albumlabel      $params->get'albumlabel' );
    $authorlabel     $params->get'authorlabel' );
    $hitslabel       $params->get'hitslabel' );
    $datelabel       $params->get'datelabel' );
    $orientation     $params->get'orientation' );
    $exclusions      $params->get'exclusions' );
    $approved        $params->get'approved' );

    // Format the exclusions as a part of the DB query
    if ($exclusions)
    {
        
    $exclusions str_replace(" ","",$exclusions);
        while (
    substr($exclusions,0,1) == ",")
            
    $exclusions substr($exclusions,1,strlen($exclusions)-1);
        while (
    substr($exclusions,strlen($exclusions)-1) == ",")
            
    $exclusions substr($exclusions,0,strlen($exclusions)-1);
        
    $exclusions str_replace","") AND (catid != ","AND (catid != ".$exclusions.")");
    }

    // Approved only?
    if ($approved)
        
    $approved "AND approved";

    // Query every published record in the image table
    $database->setQuery("SELECT * FROM #__ponygallery");
    $images $database->loadObjectList();

    // How many images are there?
    $totalimages count($images);
    $imagesused "~";

    // We need to use a table for this to work
    $content "<table width='100%'>\n<tr>\n";

    // Display the random image
    if ($width)
        
    $width "width='$width'";

    // Produce as many images as requested
    for ($i=0$i<$count$i++)
    {

        
    $imagesused .= $images->id."~";

        if ( 
    $size == "thumb" )
        {
            
    $imgsrc "



    [img]"
    .$GLOBALS[[/img]imgthumbname."' border=".$border.$width />\n";
        }
        else
        {
            
    $imgsrc "[img]".$GLOBALS[[/img]imgfilename."'  border=".$border.$width />\n";
        }

        
    // See if we need to make the image clickable
        
    if ( $linkimage )
            
    $content .= "<td>[url='".$GLOBALS[']id."' title='"._CLICK_OPEN_IMAGE."'>".$imgsrc."[/url]";
        else
            
    $content .= "<td>$imgsrc";

        // See if we need to add any text
        if ( 
    $showalbum )
        {
            
    $database->setQuery( "SELECT name FROM #__ponygallery_catg WHERE cid=$images->catid" );
            
    $album $database->loadResult();
            if ( 
    $linkimage $album "[url='".$GLOBALS[']catid."' title="._CLICK_OPEN_ALBUM.">".$album."[/url]";
            
    $content .= "
    ".
    $albumlabel.$album."\n";
        }
        if ( 
    $showtitle  and $images->imgtitle != '' )   $content .= "
    ".
    $images->imgtitle."\n";
        if ( 
    $showauthor and $images->imgauthor != '' )
        {
            // see if Community Builder is installed
            if (file_exists(
    $GLOBALS['mosConfig_absolute_path']."/components/com_comprofiler"))
            {
                
    $database->setQuery("SELECT FROM #__users WHERE username='$images->owner'");
                
    $database->loadObject($user);
                
    $content .= "
    "
    .$authorlabel."[url='".$GLOBALS[']id'>".$images->imgauthor."[/url]\n";
            }
            else
                
    $content .= "
    ".
    $authorlabel.$images->imgauthor."\n";
        }
        if ( 
    $showdate   and $images->imgdate != '' )    $content .= "
    ".
    $datelabel.date($showdate,$images->imgdate)."\n";
        if ( 
    $showhits   and $images->imgcounter != '' ) $content .= "
    ".
    $hitslabel.$images->imgcounter."\n";

        if ((
    $i < ($count-1)) && ($orientation == "vertical"))
            
    $content .= "<hr></td>\n</tr>\n<tr>\n";
        else
            
    $content .= "</td>\n";
    }

    $content .= "</tr></table>";

    // Display any pretext specified
    if (
    $pretext)
        
    $content = $pretext.$content;

    ?>

  5. #5
    niente da fare.. ora non si vede più nulla.. non visualizza ne immagini ne titoli vari..

  6. #6
    Io credo che il problema sia qui:
    codice:
    // Produce as many images as requested 
    for ($i=0; $i<$count; $i++) 
    {
    quando lui costruisce la query seleziona tutte le immagini "valide" secondo alcuni criteri ma tra tutti i risultati della query ne prende solo tanti quanto vale $count ed inoltre c'è aggiunta la casualità sull'ID grazie al random di poco dopo:
    codice:
    // Select one at random 
        do 
            $selection = $images[rand(1,$totalimages-1)]; 
        while (stripos($imagesused,"~".$selection->id."~"));
    quindi la limitazione sul numero di immagini visualizzate è data dal ciclo FOR e quindi dalla variabile $COUNT, devi quindi intervenire lì.

    O modificando quel FOR (e di conseguenza il random che non servirebbe più) oppure sostituire il FOR con un ciclo tipo il WHILE.

  7. #7
    Anzi ti aggiungo una cosa che forse ti risolve il problema...prova a modificare solo qui:

    Originale:
    codice:
    // Produce as many images as requested
    for ($i=0; $i<$count; $i++)
    {
        // Select one at random

    Sistutizione:
    codice:
    // Produce as many images as requested
    for ($i=0; $i<$totalimages; $i++)
    {
        // Select one at random
    in questo modo dovrebbe farti comparire TUTTE le immagini (in ordine casuale).

  8. #8
    grande!! giusto!!!!!!!!!
    anche se mi ha piazzato 44353 thumbnails al posto del random
    ma questo è perchè adesso bisognerebbe fare in modo che vengano selezionate le fotografie di una determinata categoria e non tutte quelle che ci sono...ehehe ... non ci avevo pensato porcacci !!!

  9. #9
    allora..ho spulciato un po il database ed ho visto che ad ogni album viene assegnato una colonna chiamata "catid" nella tabella richiamata nel codice .. quindi "#__ponygallery"..
    quindi per poter far sì che si visualizzino solo le immagini contenute nell'album di un dato artista dovrei dirgli di andarmi a leggere solo quella colonna lasciando perdere tutte le altre.. quindi il totalimage va sempre bene... eheheh come si fa? .. grazie per le risposte già date.. finirete nei ringraziamenti del sito quando sarà pubblicato...

  10. #10
    Guardando il codice la parte relativa alla costruzione della query al database è questa:
    codice:
    // Format the exclusions as a part of the DB query
    if ($exclusions)
    {
        $exclusions = str_replace(" ","",$exclusions);
        while (substr($exclusions,0,1) == ",")
            $exclusions = substr($exclusions,1,strlen($exclusions)-1);
        while (substr($exclusions,strlen($exclusions)-1) == ",")
            $exclusions = substr($exclusions,0,strlen($exclusions)-1);
        $exclusions = str_replace( ",", ") AND (catid != ","AND (catid != ".$exclusions.")");
    }
    
    // Approved only?
    if ($approved)
        $approved = "AND approved";
    
    // Query every published record in the image table
    $database->setQuery("SELECT * FROM #__ponygallery WHERE published $approved $exclusions");
    $images = $database->loadObjectList();
    dove, leggendo i dati proveninenti dai parametri passati tramite GET si escludono determinate categorie e si escludono tutte le immagini non approvate.

    Quindi è su questa parte di codice che si deve agire...sarebbe utile avere un esempio del link che porta alla visualizzazione delle immagini in modo da avere un quadro migliore della situazione.

    Comunque credo, ma è una mia opinione, che la strada più rapida è invece di escludere determinate categorie, fare il contrario...ovvero selezionare solo alcune (meglio se una sola) categorie.

    Sostanzialmente ciò si tradurrebbe sostituendo:
    codice:
        $exclusions = str_replace( ",", ") AND (catid != ","AND (catid != ".$exclusions.")");
    con:
    codice:
        $exclusions = str_replace( ",", ") AND (catid != ","AND (catid = ".$exclusions.")");
    oppure con:
    codice:
        $exclusions = str_replace( ",", ") AND (catid = ","AND (catid = ".$exclusions.")");
    però questo dipende ovviamente dai parametri passati....

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.