Archivo

Archivo para la categoría ‘General’

Integración de FCK Editor en cakephp 1.2

Miércoles, 29 de Julio de 2009

A la hora de desarrollar nuestras aplicaciones web es bastante importante contar con un editor para los cuadros de texto, cakephp 1.2 aún no tiene uno integrado pero es bastante fácil integrar editores open source como fkceditor y tinymce.

Acá aprenderemos a integrar FCK editor con nuestras aplicaciones cakephp, más adelante veremos como integrar tinymce.

  1. Ingresamos al sitio de fckeditor y descargamos la última versión.
  2. Copiaremos la carpeta editor y los siguientes archivos en la carpeta app/webroot/js de nuestro cakephp fckeditor_php4.php, fckeditor_php5.php, fckeditor.js, fckconfig.js, fckstyles.xml and fcktemplates.xml. En el interior de la carpeta editor/filemanager/connectors/ podemos borrar todas las carpetas y dejar sólo la carpeta php.
  3. Ahora pasamos a crear el Helper

Crea el archivo en /app/views/helper/fck.php


<?php
class FckHelper extends HtmlHelper {

var $Width = 500;
var $Height = 300;

function load($id, $width=null, $height=null, $toolbar = 'Default') {
$did = Inflector::camelize(str_replace('/', '_', $id));
if($width){ $this->Width = $width; }
if($height){ $this->Height = $height; }
$js = $this->webroot.'js/';
return<<<FCK_CODE
<script type="text/javascript">
fckLoader_$did = function () {
var bFCKeditor_$did = new FCKeditor('$did');
bFCKeditor_$did.BasePath = '$js';
bFCKeditor_$did.ToolbarSet = '$toolbar';
bFCKeditor_$did.Width = $this->Width;
bFCKeditor_$did.Height = $this->Height;
bFCKeditor_$did.ReplaceTextarea();
}
fckLoader_$did();
</script>
FCK_CODE;
}
function fileBrowserInput($fieldName, $htmlAttributes = array(), $return = false) {
$output = $this->input($fieldName, $htmlAttributes, $return);
if (!isset($htmlAttributes['id'])) {
$htmlAttributes['id'] = $this->model . Inflector::camelize($this->field);
}
$output .= '<script type="text/javascript">';
$output .= "//<![CDATA[\n";
$output .= "function openFileBrowser(id){\n";
$output .= "var fck = new FCKeditor(id);\n";
$output .= "fck.BasePath = '".$this->webroot."js/'\n";
$output .= "var url = fck.BasePath + 'editor/filemanager/browser/default/browser.html?Type=Image&amp;amp;Connector=connectors/php/connector.php';\n";
$output .= "var sOptions = 'toolbar=no,status=no,resizable=yes,dependent=yes,scrollbars=yes';\n";
$output .= "sOptions += ',width=640';\n";
$output .= "sOptions += ',height=480';\n";
$output .= "window.SetUrl = function(fileUrl){\n";
$output .= "\$(id).value = fileUrl;\n";
$output .= "}\n";
$output .= "var oWindow = window.open( url, 'FCKBrowseWindow', sOptions ) ;\n";
$output .= "}\n";
$output .= "//]]>\n";
$output .= '</script>';
$output .= '<a href="#" onclick="openFileBrowser(\''.$htmlAttributes['id'].'\'); return false;">select an image...</a>';
return $output;
}
}
?>

Ahora habilitaremos el editor en los controladores que deseamos esté presente (Activa el helper de Ajax):


var $helpers = array('Html', 'Form', 'Javascript', 'Fck', 'Ajax');

Ahora en las vistas donde el editor aparecerá agreguemos esta línea al comienzo de la vista

<?php echo $javascript->link('fckeditor'); ?>

Por último cargaremos el editor en los textarea que lo requieran, para ello nuetro form debe contener lo siguiente


<?php echo $form->create('News');?>
<?php
echo $form->input('title');
echo $form->input('new', array('type' => 'textarea'));
echo $fck->load('NewsNew', 890, 300);
?>
<?php echo $form->end('Enviar);?>

NewsNew equivale al id del textarea en el que deseemos esté ubicado el editor, podemos asignarle uno en el arreglo de opciones del textarea mediante la opción ‘id’ => ‘nombre deseado’ y luego reemplazar el nombre en fck->load.
El 980, 300 equivale al tamaño del textarea, podemos elegir los valores que deseemos.

General, cakephp , , , , ,

Cakephp 1.2.3.8166 Stable

Martes, 2 de Junio de 2009

El 4 de mayo fue liberada una mejora de la versión 1.2 de cakephp. Se ha hecho una gran variedad de correcciones y una importante mejora en la seguridad.

Clic aquí para descargar

General ,

¿¡Qué es CakePHP!?

Viernes, 16 de Enero de 2009

Bienvenidos cakes, si se preguntan que es cakephp y se imaginan cocinando un pastel php no están tan mal.

¿Qué es cakephp?

Cakephp es un framework de código abierto y libre para php que agiliza el desarrollo a través del lenguaje php y provee una arquitectura extensible para desarrollar, mantener y lanzar aplicaciones web. Cakephp usa conocidos patrones de diseño como MVC y ORM (más adelante se entrará en detalle sobre estos temas) dentro de los paradigmas de configuración.

Para comenzar con cakephp, es importante que tengas unos básicos conocimientros sobre php y programación orientada a objetos (OOP). Cakephp hace uso de diferentes tecnologías como MySQL, JavaScript, Ajax… pero acá no sé discutirán sobre ellas, sólo veremos su implementación en cake.

Framework PHP

Un framework php es una colección de código, librerias, clases y entorno de ejecución en tiempo real que ayuda a los desarrolladores a contruir aplicaciones web de una forma ágil y rápida.

Conocidos patrones de diseño

Un patrón de diseño es una solución general a un común y concurrente problema en desarrollo web. No es un código completo, más bien es una descripción de cómo resolver un problema que puede ser manejado en diferentes situaciones.

MVC

El patrón MVC (Model, View, Controller) es uno de los más comunes en desarrollo de software, donde el código es separado en 3 partes: Models: Modelos, Views: Vistas, Controllers: Controladores. El propósito exacto de cada parte depende de la implementación, y puede variar de un framework a otro.

Cakephp será la receta principal de nuestras “exquisitas” aplicaciones.

http://book.cakephp.org/view/4/Beginning-With-CakePHP

General, cakephp , , , , , ,