Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/01/2008, 14:05
neojordan
 
Fecha de Ingreso: enero-2008
Mensajes: 97
Antigüedad: 16 años, 3 meses
Puntos: 3
Problemilla con joomla

O más bien problemón.

Buenas, soy nuevo por aquí y necesito ayuda con joomla.

Resulta que necesitaba incluir un código php en un contenido estático de joomla, pero este lo traduce todo a html "por seguridad".

Encontré un modulo (runphp) que sí me deja usar php, pero cuando el código php lo complicas un poquito, empezó a fallarme.

Mi duda es como poder usar el código, que es el siguiente:

Código PHP:
<?php

// La conexión y selección base de datos
$dblink mysql_connect('usuario','contraseña','servidor');
mysql_select_db('base de datos'$dblink);

// Sentencia SQL 1
$sql "SELECT id FROM content WHERE sectionid = '8'";
$total_resultados mysql_num_rows(mysql_query($sql)); // Total de resultados

$resultados_pag 30// Resultados por página

$total_pags ceil($total $resultados); // Total de páginas

// Comprovaciones de página
if (!isset($_GET['p'])) {
    
$_GET['p'] = 1;
} elseif (
$_GET['p'] > $total_pags) {
   die(
"La página no existe");
}

$inicio = ($_GET['p'] - 1) * $resultados_pag// Fila en la que se inicia la selección

// Sentencia SQL 2
$sql "SELECT id, title, title_alias FROM content WHERE sectionid = '8' ORDER BY id DESC LIMIT $inicio, $resultados_pag";
$sql mysql_query($sql);

// Mostrar los datos
echo '<table>';

// Número de filas
$num mysql_num_rows($sql);

$i 1;
while (
$row mysql_fetch_assoc($sql)) {
    if ((
$i == 1) || ((($i 1) % 3) == 0)) {
        echo 
'<tr>';
    }
    echo 
'<td align="center"><a href="www.web.net/'.$row['id'].'/"><img src="imagenes/'.$row['title_alias'].'.jpg"/><br />'.$row['title'].'</a></td>';

    if (((
$i 3) != 0) && ($i == $num)) {
        while (((
$i 3) != 0)) {
            echo 
'<td></td>';
            
$i++;
        }
    } elseif (((
$i 3) == 0) {
        echo 
'</tr>';
    }
    
$i++;
}
echo 
'</table>';

?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="get">
<select name="p">
    <?php
    
for ($i 1$i <= $total_pags$i++) {
        echo 
'<option ';
        if (
$_GET['p'] == $i) {
            echo 
'selected="selected" ';
        }

        echo 
'value="'.$i.'">Página '.$i.'</option>';
    }
    
?>
</select>
<input type="submit" value="Ir" />
</form>
Como ya he dicho, probé con los modulos, pero falla la última parte, la que empieza con "<form..."

Al final se me ocurrió crear un archivo php con ese código e instalarlo como mambot, pero lo que hace es mostrarlo correctamente pero en todas las páginas, es decir, que arriba de cada artículo o de cada sección, muestra eso, y luego ya muestra lo que debe mostrar.

¿Se puede hacer que un mambot se muestre solo cuado abras un determinado artículo de contenido estático? Es que si fuera así, podría hacer que se viera solo con un artículo y dejar ese artículo en blanco, con lo que se mostraría el código que quiero.

La última opción que he probado ha sido copiar el archivo index.php y donde pone que muestre frontend le he puesto que mostrara el archivo con el código. Luego lo he guardado con otro nombre, de forma que cuando accedes a el te muestra el código que yo quiero.

Problema? Pues resula que los módulos, head y footer no los carga el index sino el frontend, con lo que estamos con las mismas. Luego he probado a modificar el frontend para que no muestre los artículos y cargarle el código, pero eso ya era demasiado, no he podido.

¿Alguna idea? Me bastaría con que se cargaran los módulos, las barras laterales y eso, el header y el footer, y sustituir el frontend por el código que yo tengo...

salu2