Ver Mensaje Individual
  #4 (permalink)  
Antiguo 10/04/2010, 05:26
manzarinaa
 
Fecha de Ingreso: noviembre-2007
Mensajes: 382
Antigüedad: 17 años, 1 mes
Puntos: 16
Respuesta: sobre jquery.lightbox

Gracias por responder.
Pongo código a ver si se ve mejor.
tengo un archivo img.class.php
este genera un select con todos los nombres de las imagenes de una carpeta que viene dada en función del lugar a la que pertenecen las imagenes. categorías, contenidos, produtos,...
al seleccionar un nombre de imagen se ve una vista previa de ella

Código PHP:
$this->addFunction('vistaPrevia''select'
            
'var arx = select.options[select.selectedIndex].value;' .
            
'if (arx == "") {' .
                
'this.byId("imgId").src = "'$this->_defaultImg '";' .
                
'this.byId("imgId_link").href = "'$this->_defaultImg '";' .
            
'}' .
            
'else {' .
                
'this.byId("imgId").src = arx;' .
                
'this.byId("imgId_link").href = arx;' .
            
'}'); 
de aqui sale la ruta de la imagen y el src y el href para el enlace.
Después de tratar variables, comprobar tipos y tal... Llego a este código:

Código PHP:
$options '';
        
$oneSelected false;

        while(
$nom $media->nextFile()) {
            
$arx $media->getUrl($fileType) . '/' $nom;

            
$selected '';
            if (
$nom == $data) {
                
$selected 'selected="selected"';
                
$oneSelected true;
            }
            
            
$options .= '<option value="' $arx '"  ' $selected '>'$nom '</option>';
        }
        
        if (
$oneSelected) {
            
$options '<option value=""><t>Sense arxiu</t></option>' $options;
        }
        else {
            
$options '<option value="" selected="selected"><t>Sense arxiu</t></option>' $options;
        }
        
        if (!
$data) {
            
$data $this->_defaultImg;
        }
        else {
            
$data Media_Files::getUrl($fileType) . '/' .  $data;
        }
$html = <<<HTMLCODE
            
            <table style="width:100%; text-align:center;">
                
                <tr>
                    <td>
                        <t>Vista prèvia</t><br />
                        
                        <div id="gallery">
                        <a href="$data" id="$imgIdLink"> 
                        <img id="$imgId" name="$imgId" width="100" height="100" border="1" src="$data" />
                        </a>
                        </div>
                    </td>
                    <td style="width:100%">
                        <select id="$selectId" name="$name" size="7" style="width:90%;" onchange="$onChange">$options</select>
                    </td>
                </tr>
                <tr>
                    <td style="padding-left:20px;" colspan="3">
                        <input type="button" value="<t>Administrador Multimèdia</t>" onclick="$setType;$administrar" class="buttonsGrans"/> 
                    </td>
                </tr>
            </table>
            <script type="text/javascript">$setType;</script>
HTMLCODE;

        return 
$html
este me genera el html del select y de su su vista previa
Aqui ya tengo el div id="gallery", lo que creo que pasa, es que este código puede ser llamado una o más veces
por lo que me encuentro con que el id gallery se me repite varias veces en un mismo template.
cuando estoy con el navegador en este template la primera imagen me hace bien el efecto.
Pero cuando me voy a las demás imagenes, el enlace no hace el efecto si no que me manda a la ruta del enlace y ya está.


Por ejemplo tengo una Categoría para editar.
tengo campo título, keywords, imagen de cabecera (por que el diseño lo requiera, esto, todos los campos son generados dinamicamente), descripción de la categoría e imagen de la categoría.
la imagen de vista previa de la imagen de cabecera hace el efecto bien
pero la imagen de la categoría no.

no sé si me he explicado.
Gracias