Php


Hace poco participé en la fase de análisis para un proyecto de Periódicos Digitales, durante mi investigación encontré varias posibilidades, pues hoy en día es algo más que habitual que encontremos los períodicos accesibles desde Internet. Esto ha servido para que emprendedores o empresarios encontraran un gran mercado virgen y por explorar. Cada cual aporta buenas soluciones en función a las necesidades de cada cliente. Estan desde los que te ofrecen un CMS para que lo administres a tu gusto (claro con formación ;D) hasta los que hacen todo por ti partiendo de una publicación en papel.

EL MODELO DE NEGOCIO

No hay un único modelo de negocio pues en función al producto que se elija, a la periodicidad de actualización, al volumen de información, a la asistencia, a los módulos y muchos factores más varían los precios. Pero si se pueden separar en dos modelos claros, la suscripción y la licencia.

En el caso de la suscripción el cliente tendrá que pagar una cuato mensual, trimestral, semestral o anual y que suele llevar además un compromiso de permanencia (jejeje, esto me suena a operadores móviles o provedores de servicios de telecomunicación). Este modelo tiene beneficios para ambas partes, pues no requiere de una gran inversión por parte del cliente y por parte del empresario se asegura entradas periódicas.

En el caso de la licencia, este es más grande (si me refiero a costoso :P) pero tiene muchos beneficios más, pues suele ser un desarrollo más completo, con módulos avanzados que no se suelen encontrar en desarrollos lowcost. Lo veo claramente enfocado hacia un mercado o perfil de clientes más serios con publicaciones a gran escala, quiero decir de tirada nacional G R A N D E.

LAS CARACTERÍSTICAS

En general casi todos tienen las partes comunes de un periódico digital, algunos más que otros, pero aquí dependerá de las necesidades de cada uno escoger el que más se acomple en cuanto a funcionalidad, flexibilidad y demás. Las características comunes son:

  • Hemeroteca
  • RSS
  • Canales / Categorías / Secciones
  • Newsletter
  • Gestores de publicidad
  • Posicionamiento SEO
  • Galerías fotográficas y de video
  • Gestión de usuarios / perfiles / roles
  • Diseño y maquetación
  • Gestión de alojamiento y dominio

Esto es más o menos lo que ofrecen, no todos lo tienen todo, algunos tienen más y otros menos, pero en general con esto nos podemos hacer una idea de lo que hay en el mercado y creo que todavía queda mucho por hacer :D.

LO QUE HAY

Aquí expongo algunos de los productos o servicios que encontré y que estudié para ofrecer una solución a mi cliente, jejeje, dejaré para el final el resultado (si es que lo hay :P).

LO QUE SE LLEVA

Hay que hacer una revisión a los principales periódicos digitales para saber que está de moda, conocer las tendencias, las demandas de los usuarios y las iniciativas de los medios por explotar este canal. Así que algunos de los preiódicos digitales que estuve mirando para hacerme una idea de por donda van los tiros son los siguientes:

LO QUE YO HICE

Utilicé Drupal un CMS libre, me gustó porque ya lo conocía, jejeje :D, porque es muy fácil de utilizar, porque utiliza taxonomías para los contenidos, porque tiene el módulo vistas, porque tiene el módulo panels y sobre todo porque en un principio era un reto y que al cliente le pareció bien invertir en investigación para desarrollar nuestra propia aplicación.

Recordando los post que escribió Juan (Zárate) en su día sobre los frameworks (¿Ahora picar frameworks propios es malo? y Frameworks propios, parte 2), todo depende de las necesidades del cliente, de tus habilidades, del tiempo de desarrollo, de la pasta de por medio y alguna que otra cosa más. En este caso fué posible la investigación y extender (hacer) nuestro propio desarrollo.

Pues eso es todo, saludos!!!

Hace poco hablaba con mis amigos Álvaro y Joan sobre como cargar contenidos en php que se encuentran en la parte privada de nuestro servidor y les dije que en cuanto tuviera un rato libre escribiría un tutorial, así es que aquí lo tienen.

Introducción, por lo general nuestro servidor suele venir con alguna de las siguientes carpetas:

  • web
  • www
  • httpdocs

En estas carpetas es donde se almacena todo el contenido al que el usuario puede acceder mediante http (salvo restringirlo mediante un fichero .htaccess).

Supongamos que tenemos un proyecto en el que necesitamos guardar los contenidos en la parte privada, es decir, en una carpeta por ejemplo al mismo nivel que nuestra carpeta pública (web, www, httpdocs) para así evitar que se acceda a estos contenidos mediante una petición http, pero que la aplicación necesitará acceder a estos contenidos. Aquí es donde viene tiene sentido este post, jejeje :D.

Bueno, para poder acceder a estos contenidos necesitamos contar con tres piezas:

La primera la tenemos que conseguir de alguna forma a través de nuestra aplicación, la segunda partirá del tipo de fichero y la tercera la obtenemos a partir de la primera, jejeje.

Ahora si, sin más historias pongo el código de ejemplo que hice para este pequeño tutorial:

<?php
//Configuramos la tabla de tipo
$tipos = array();
$tipos['xml'] = array("text", "xml");
$tipos['swf'] = array("application", "x-shockwave-flash");
$tipos['pdf'] = array("application", "pdf");
$tipos['ppt'] = array("application", "vnd.ms-powerpoint");
$tipos['doc'] = array("application", "vnd.ms-word");
$tipos['xls'] = array("application", "vnd.ms-excel");
$tipos['zip'] = array("application", "x-zip-compressed");
$tipos['rar'] = array("application", "x-rar-compressed");
$tipos['gif'] = array("image", "gif");
$tipos['png'] = array("image", "png");
$tipos['jpg'] = array("image", "jpg");
$tipos['flv'] = array("video", "x-flv");

//Definimos la ruta base de los ficheros
$ruta_base_fichero = "../contenidos/fichero_";

//Recogemos el tipo de fichero que nos solicitan
$tipo_fichero = $_GET['fichero'];

//Obtenemos la ruta del fichero combinando la rutaBaseFichero y el tipo_fichero
$ruta_fichero = $ruta_base_fichero . $tipo_fichero . "." . $tipo_fichero;

//Verificamos que el fichero exista, en caso contrario interrumpimos la ejecucion del proceso.
if(!file_exists($ruta_fichero)) die("El fichero solicitado no existe.");

//Obtenemos el tamanyo del fichero
$tamano_fichero = @filesize($ruta_fichero);

//Indicamos en la cabecera el tipo de fichero, para esto utilizamos la tabla de tipos que creamos en la parte superior
header("Content-Type:" . $tipos[$tipo_fichero][0] . "/" . $tipos[$tipo_fichero][1]);

//Indicamos en la cabecera el nombre del fichero, para esto utilizamos la variable $ruta_fichero, esto es para que el navegador entienda que el fichero no es contenidos.php sino el fichero solicitado
header("Content-Disposition: inline; filename=\"" . rawurlencode(basename($ruta_fichero)) . "\"");

//Indicamos en la cabecera el tamanyo del fichero
header("Content-Length:" . $tamano_fichero);
header("Accept-Ranges:" . $tamano_fichero);
@readfile($ruta_fichero);
?>

El código está comentado, casi línea a línea, para que quede más claro. Puede optimizarse muchísimo el código, se pueden encapsular constantes, crear clases para reutilizarlo y muchísimas más cosas, pero el fin de este ejemplo es que sirva para iniciarse y entender como consumir contenidos en php de la parte privada de nuestro sevidor.

A continuación los ejemplos:

Todos los ficheros están en la parte privada de mi servidor, por tanto desde http no se puede acceder a ellos, de tal forma que para acceder a ellos se pasa por un router que es un fichero php que puede acceder a los ficheros y devolverlos.

Un beneficio muy importante que obtenemos al hacer uso de esta metodología es que podemos almacenar en un fichero de log o en base de datos todas las peticiones que se hagan y así tener más controlado el acceso a estos ficheros, pero bueno este tema da para otro post así que lo dejamos de momento aquí :P.

Espero haberme explicado claramente, si tienen cualquier duda para eso están los comentarios. Ojalá les sea de utilidad. Saludos!!!

Artículos relacionados:

Hoy en el curro he descubierto una clase súper útil para trabajar con ficheros SWF desde Php, entre otras cosas nos permite conocer y modificar el tamaño del fichero (width y height), la versión para la que fué publicado, el color de fondo, el framerate y la protección para importación.

Basically, other than returning all the main information from an swf file, such as the bg color, framerate, player version, compression, protection used, movie size.. it allows to modify some of those parameters.
For example it can change the framerate, background, protection.

Es un desarrollo del máquina de Alessandro Crugnola, viene acompañado con un ejemplo donde se explica como utilizarla, pero a mi personalmente no me funcionó tal cual, así que tuve que instalar un par de clases en el class path de php, para ser exactos me hacian falta las clases PEAR y File, una vez instaladas todo fué de maravilla.

Más información:

Entradas relacionadas:

Get Adobe Flash playerPlugin by wpburn.com wordpress themes