Muchas gracias Triby y Gator, a varios tutoriales, profes y demás porque encontré el éxito.
Ahora el drama es ingeniarse alguna forma para que en "template.php" en vez de mostrar los div: "right" y "left" directamente dependan de una condición. La intención es que si la fila de la columna "arrayUrl_column" está vacía no muestre (se oculte) el div "left" y por el contrario si este tiene texto muestre al div "right" y "left".
¿Habrá alguna forma de darle lógica a esto?
Una idea así se me ocurre:
if (['arrayUrl_column'] = ['']){
echo '<div id="right">'.$content['right'].'</div>';
}
else {
echo '<div id="left">'.$content['left'].'</div>';
echo '<div id="right">'.$content['right'].'</div>';
}
<?php
if(['arrayUrl_column'] = ['']){?>
<div id="left"><?php echo $content['left']; ?></div>
<?php }else{ ?>
<div id="right"><?php echo $content['right']; ?></div>
<?php } ?>
Imagen de la tabla de la BD:
Helper.php:
Código:
class Helper {
//Propiedades
private static $host = 'localhost';
private static $user = 'root';
private static $pass = '';
private static $dbname = 'pruebaarray';
private static $dbh;
private static $error;
private static $router;
public static function construct(){
// Set DSN -- Donde se conecta
$dsn = 'mysql:host=' . self::$host . ';dbname=' . self::$dbname;
// Set options
$options = array(
PDO::ATTR_PERSISTENT => true,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
);
// Create a new PDO instance, crear el objeto de acceso a base de datos
try{
self::$dbh = new PDO($dsn, self::$user, self::$pass, $options);
//funcion para crear el menu desde la base de datos
self::setRouter();
}
// Catch any errors
catch(PDOException $e){
self::$error = $e->getMessage();
}
}
public static function setRouter() {//Le cargo a 'router' los valores de inicialización
$array = array();
$stmt = self::$dbh->prepare('SELECT * FROM arrayurl');//stmt = statement = Sentencia, consulta
$stmt->execute();
// Luego recorres el juego de resultados:
while($row = $stmt->fetch(PDO::FETCH_ASSOC))
{
$array[$row['arrayUrl_name']] = array('column' => $row['arrayUrl_column'],'content' => $row['arrayUrl_content']);
}
self::$router = $array;
}
public static function getColumn($file = null ) {
self::construct();
if (array_key_exists($file, self::$router) && isset(self::$router[$file]['column'])) {
ob_start();
if(is_file(self::$router[$file]['column']))
require_once(self::$router[$file]['column']);
return ob_get_clean();
}
}
public static function getContent($file = null) {
self::construct();
if (array_key_exists($file, self::$router) && is_file(self::$router[$file]['content'])) {
ob_start();
require_once(self::$router[$file]['content']);
return ob_get_clean();
}
}
}
index.php:
Código:
defined("DS")
|| define("DS", DIRECTORY_SEPARATOR);
defined("ROOT_PATH")
|| define("ROOT_PATH", realpath(dirname(__FILE__)));
require_once(ROOT_PATH.DS.'classes'.DS.'Helper.php');
$page = '/';
$uri = $_SERVER['REQUEST_URI'];
if (!empty($uri) && $uri != '/') {
$uri = explode('?', $uri);
$page = $uri[0];
}
$content = array(
'right' => Helper::getContent($page),
'left' => Helper::getColumn($page)
);
if (!empty($_GET['ajax'])) {
echo json_encode($content);
} else {
require_once('template/template.php');
}
template.php:
Código:
...
...
<div id="container">
<div id="left">
<?php echo $content['left']; ?>
</div>
<div id="right">
<?php echo $content['right']; ?>
</div>
</div>
...
...
mikehove.-