Edición de «Ejemplo de web adaptada a moviles»

De KumbiaPHP Framework Wiki

Advertencia: no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si inicias sesión o creas una cuenta, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.

Puedes deshacer la edición. Antes de deshacer la edición, comprueba la siguiente comparación para verificar que realmente es lo que quieres hacer, y entonces guarda los cambios para así efectuar la reversión.

Revisión actual Tu texto
Línea 1: Línea 1:
{{cleanupbox
 
|image=[[Archivo:Information_icon4.png|45px]]
 
|texto ='''Este Artículo cumple con todos los quererimientos de los Kumbieros.'''<br />
 
}}
 
 
 
 
== INTRODUCCION ==
 
== INTRODUCCION ==
  
Línea 10: Línea 4:
  
 
Veremos dos formas distintas de hacer el acceso a nuestra web movil:
 
Veremos dos formas distintas de hacer el acceso a nuestra web movil:
* '''usando un subdominio'''. Ejemplo: Si se quiere acceder a la web adaptada, se accede a http://m.example.com  
+
* usando un subdominio. Ejemplo: Si se quiere acceder a la web adaptada, se accede a http://m.example.com  
* '''usando la detección del navegador'''. En este caso, se detecta el navegador/sistema operativo del cliente y se le muestra la web adaptada.
+
* usando la detección del navegador. En este caso, se detecta el navegador/sistema operativo del cliente y se le muestra la web adaptada.
  
Personalmente prefiero la primera pero como hay quien prefiere la segunda, he creado una librería que nos permita utilizar ambas.
+
Personalmente prefiero la primera pero como hay quien prefiere la segunda, he creado una librería que nos permita gastar ambas.
  
 
'''IMPORTANTE:''' El siguiente código es para Spirit Beta1, que como sabeis es suficiente estable como para desarrollar aplicaciones con ella. En Spirit Beta2 este ejemplo NO SIRVE.
 
'''IMPORTANTE:''' El siguiente código es para Spirit Beta1, que como sabeis es suficiente estable como para desarrollar aplicaciones con ella. En Spirit Beta2 este ejemplo NO SIRVE.
Línea 25: Línea 19:
 
<source lang=php>
 
<source lang=php>
 
<?php
 
<?php
class TestController extends ApplicationController
+
class TestController extends ApplicationController {
{
+
   public function index() {
   public function index()
 
  {
 
 
     $this->mensaje = "Este mensaje se recibe desde el metodo ".$this->action_name." del controller ".$this->controller_name;
 
     $this->mensaje = "Este mensaje se recibe desde el metodo ".$this->action_name." del controller ".$this->controller_name;
 
     $this->hora = date('Y-m-d');  
 
     $this->hora = date('Y-m-d');  
Línea 42: Línea 34:
 
   </head>
 
   </head>
  
   <body>
+
   <body bgcolor="blue">
 
     <h1>Contenido</h1>
 
     <h1>Contenido</h1>
 
     <?php View::Content(); ?>
 
     <?php View::Content(); ?>
Línea 51: Línea 43:
 
'''/app/views/test/index.phtml'''
 
'''/app/views/test/index.phtml'''
 
<source lang=php>
 
<source lang=php>
<p>Mensaje: <?php echo $mensaje; ?></p>
+
<b>Mensaje:</b> <?php echo $mensaje; ?><br />
<p>Hora: <?php echo $hora; ?></p>
+
<b>Hora:</b> <?php echo $hora; ?>  
 
</source>
 
</source>
  
Línea 58: Línea 50:
 
== PREPARANDO LOS CAMBIOS ==
 
== PREPARANDO LOS CAMBIOS ==
  
Bien, lo primero que necesitamos para nuestra "web reducida" es una plantilla distinta. En nuestro caso de ejemplo será simple: he cambiado el color de fondo, quitado el H1 y ajustado el viewport para que se vea mejor en estos dispositivos.
+
Bien, lo primero que necesitamos para nuestra "web reducida" es una plantilla distinta. En nuestro caso de ejemplo será simple: he cambiado el color de fondo, quitado el H1 y ajustado el viewport.
  
 
'''/app/views/templates/mobile.phtml'''
 
'''/app/views/templates/mobile.phtml'''
Línea 64: Línea 56:
 
<html>
 
<html>
 
   <head>
 
   <head>
     <title>Plantilla por defecto para móvil</title>
+
     <title>Plantilla por defecto para movil</title>
    <meta name="viewport" content="initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" />
 
 
   </head>
 
   </head>
  
   <body>
+
   <body bgcolor="gray">
     <h1>Móvil</h1>
+
     <b>Contenido</b>
 
     <?php View::Content(); ?>
 
     <?php View::Content(); ?>
 
   </body>
 
   </body>
Línea 76: Línea 67:
  
  
Ahora, hay que crear una vista distinta para el método ''index''. Esta vista será la que se muestre junto con la plantilla adecuada. Para esto, vamos a crear una subcarpeta llamada ''mobile'' dentro de la carpeta de vistas del controller. En esta carpeta se deben ir metiendo las vistas de cada método igual que hacemos siempre, pero sólo de las versiones reducidas.
+
Ahora, hay que crear una vista distinta para el método index. Esta vista será la que se muestre junto con la plantilla adecuada.
  
 
'''/app/views/test/mobile/index.phtml'''
 
'''/app/views/test/mobile/index.phtml'''
 
<source lang=php>
 
<source lang=php>
<p>Mensaje: <?php echo $mensaje; ?></p>
+
<b>Mensaje:</b> <?php echo $mensaje; ?><br />
<p>Hora: <?php echo $hora; ?></p>
+
<b>Hora:</b> <?php echo $hora; ?>  
<p>Esta página esta optimizada para dispositivos móviles</p>
+
<i>Esta pagina esta optimizada para dispositivos moviles</i>
 
</source>
 
</source>
 +
  
 
== LIBRERIA AUXILIAR ==
 
== LIBRERIA AUXILIAR ==
Línea 93: Línea 85:
 
<?php
 
<?php
 
class Mobile {
 
class Mobile {
public static function mobileURL() {
+
public function mobileURL() {
 
// Lista de URLs
 
// Lista de URLs
 
$mobile_urls = array( "m.example.com", "mobile.example.com" );
 
$mobile_urls = array( "m.example.com", "mobile.example.com" );
Línea 101: Línea 93:
 
}
 
}
  
public static function mobileBrowser() {
+
public function mobileBrowser() {
 
$mobile_browser = '0';
 
$mobile_browser = '0';
  
Línea 151: Línea 143:
 
Ya tenemos nuestra aplicacion, nuestra plantilla y vista adaptadas, y la librería que nos permite detectar el navegador y/o la URL de acceso. Solo nos queda juntar las piezas.
 
Ya tenemos nuestra aplicacion, nuestra plantilla y vista adaptadas, y la librería que nos permite detectar el navegador y/o la URL de acceso. Solo nos queda juntar las piezas.
  
Primero, vamos a hacer el ejemplo con detección por subdomínio, que es la más fácil de probar desde nuestro ordenador. Lo que haremos sera cargar la librería '''Mobile''' y preguntar al método ''mobileURL''. Si el resultado es positivo, cambiaremos el ''template'' y la ''vista'' usando los métodos de KumbiaPHP.
+
Primero, vamos a hacer el ejemplo con detección por subdomínio, que es la más fácil de probar desde nuestro ordenador. Lo que haremos sera cargar la librería "Mobile" y preguntar al método mobileURL. Si el resultado es positivo, cambiaremos el template y la vista usando los métodos de KumbiaPHP.
 
 
Para cambiar el template, lo que tenemos que hacer es cambiar el atributo ''template'' y decirle al controller que utilice el conjunto de vistas ''mobile'', es decir, todas aquellas que estan dentro de la subcarpeta ''/app/views/test/mobile''.
 
  
 
Dejamos el controlador así:
 
Dejamos el controlador así:
Línea 171: Línea 161:
 
       $this->set_response("mobile");
 
       $this->set_response("mobile");
 
     }
 
     }
  }
 
 
}
 
}
 
</source>
 
</source>
  
Ahora, podemos visitar nuestra app, en su URL normal http://example.com, así como en la web reducida http://m.example.com para ver las diferencias. Recomiendo hacer la visita desde un smartphone para ver la diferencia en poner el ''<meta>'' del viewport y sin él.
+
Ahora, podemos visitar nuestra app, en su URL normal http://example.com, así como en la web reducida http://m.example.com para ver las diferencias. Recomiendo hacer la visita desde un smartphone para ver la diferencia en poner el <meta> del viewport y sin él.
  
Si somos de los que preferimos hacer la detección del navegador y obligar al usuario a que vea ese tipo de web, solo tenemos que cambiar el método al que preguntamos de la librería '''Mobile''':
+
Si somos de los que preferimos hacer la detección del navegador y obligar al usuario a que vea ese tipo de web, solo tenemos que cambiar el método al que preguntamos de la librería Mobile:
  
 
Dejamos el controlador así:
 
Dejamos el controlador así:
Línea 195: Línea 184:
 
       $this->set_response("mobile");
 
       $this->set_response("mobile");
 
     }
 
     }
  }
 
 
}
 
}
 
 
</source>
 
</source>
  
Línea 214: Línea 201:
  
 
Saludos,
 
Saludos,
 +
 
Soukron
 
Soukron
[[Categoría:Tutoriales KumbiaPHP]]
 

Ten en cuenta que todas las contribuciones a KumbiaPHP Framework Wiki pueden ser editadas, modificadas o eliminadas por otros colaboradores. Si no deseas que las modifiquen sin limitaciones, no las publiques aquí.
Al mismo tiempo, asumimos que eres el autor de lo que escribiste, o lo copiaste de una fuente en el dominio público o con licencia libre (véase Proyecto:Derechos de autor para más detalles). ¡No uses textos con copyright sin permiso!

Para editar esta página, responde la pregunta que aparece abajo (más información):

Cancelar Ayuda de edición (se abre en una ventana nueva)

Plantilla usada en esta página: