Gestor de imágenes compatible con CKEditor

En un proyecto en el que estoy involucrado he usado uno de los mejores editor HTML que existe, CKEditor. Este editor WYSIWYG es muy completo a falta de un gestor de imágenes.

Para gestionar las imágenes existe un complemento ideal que es CKFinder pero tiene la pega de ser un producto de pago.

Por ello he desarrollado un gestor de imágenes muy similar a CKFinder haciendo uso de jQuery.

El gestor de imágenes lo podéis descargar de la sección de software.

CKEditor Media Embed con múltiples instancias

En un proyecto en el que estoy involucrado he usado uno de los mejores editor HTML que existe, CKEditor. Este editor WYSIWYG es muy completo a falta de un gestor de imágenes.

Para incrustar videos de YouTube, Vimeo, etc.., existe un plugin llamado MediaEmbeb el cual realiza su cometido perfectamente.

Al usarlo en mi proyecto me he dado cuenta que si en una misma página tenemos más de un editor de HTML, al ir a incrustar un video en uno de los primeros editores, lo inserta realmente en el último de ellos.

He estado revisando el código y la solución es muy sencilla.

  1. Buscaremos la carpeta del plugin en «../ckeditor/plugins/mediaembed/»
  2. En dicha carpeta localizaremos y abriremos el fichero «plugin.js»
  3. Localizaremos la línea:
    CKEDITOR.dialog.add( 'MediaEmbedDialog', function ()
  4. Y la sustituiremos por:
    CKEDITOR.dialog.add( 'MediaEmbedDialog', function (editor)

Con este simple cambio todo funcionará correctamente.In a project I’m involved I’ve used one of the best HTML editor there, CKEditor. The WYSIWYG editor is very complete lack of an image manager.

Serializar un objeto a JSON en C#

En ocasiones nos interesa serializar un objeto en JSON, como por ejemplo al usar el AJAX de jQuery. Es tan fácil como esto:

static public string ToJSON(object obj)
{
    System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
    return serializer.Serialize(obj);
}

Obtener un parámetro de la URL desde JavaScript

Función que nos permite obtener un parámetro de la URL pasado por GET desde JavaScript. En el caso de que el parámetro no exista nos devuelve un null.

// Helper function to get parameters from the query string.
function getUrlParam(paramName) {
    var reParam = new RegExp('(?:[\?&]|&)' + paramName + '=([^&]+)', 'i');
    var match = window.location.search.match(reParam);
    return (match && match.length > 1) ? match[1] : null;
}

Devolver un código 301 (Moved Permanently) en C#

En algunos casos necesitamos informar a terceros que una página nuestra, o incluso un dominio entero ha sido movido a otro sitio.

Un ejemplo claro podría ser que teníamos el dominio www.newagedesign.com y ahora lo hemos movido a www.newagedesign.es. Lo ideal es avisar a todo el mundo que la dirección de nuestra web ha cambiado, pero esto a veces no es posible o puede llevar mucho tiempo. En estos casos lo ideal es redireccionar al visitante pero  indicándole que le redirigimos porque la web ha cambiado de lugar. Esto se consigue devolviéndole un error 301.

Todo esto comentado sobre un dominio también es aplicable a una página concreta.

En el caso de .NET esto se haría insertando el siguiente código en la página que queremos redirigir:

Response.Status = "301 Moved Permanently";
Response.AddHeader("Location","http://www.newagedesign.es/");
Response.End();