Editor de textos en PHP para CMS
5 seguidores
Hola, estoy buscando a ver si hay algun open source o tutorial o inspiracion para desarrollar un editor de "textos" online.
Es decir que el cliente pueda subir noticias o textos pero que se los curre el. con sus negritas sus saltos de linea... todo ello en php, algo asi como cuando subes un post.
gracias
clkwise
gracias a los 2. me lo mirare ahora.
anoche curioseando por ahi encontre esto:
http://www.sony-youth.com/software/eArea/
Usa un js de 6 kb y el codigo esta bastante clarito.
Hartum ahora me miro lo tuyo, y en realidad vivo en una cueva XD
Pues si podria dar señales de vida porq con eso de currar en casa y no salir mas que para ir al gimansio a darme palazos... me voy a convertir en un hermitaño!
pd a ver si ahora me aceptan el presupuesto que les he mandado que mucho daros el coñazo pero luego me diran que se les sale de presupuesto. arggg
hartum
Mirate esta peich:
http://www.innerdiv.net/demo_codigo/
cuando despliegas el menu, hay una opcion que es editor de texto, si te mola dame un toke al mail y te lo envio.
p.d: y ahora que estas en barna dejate ver maldito.
zigotica
creo que esto sí os puede interesar:
http://www.standards-schmandards.com/2007/wysiwyg-editor-test-2/
zigotica
en cuanto al CMS ultimamente he usado wordpress y está bastante bien.
ah si, tener tengo, claro. una nostalgia... te muestro algo para formatear el texto que hicimos con el gran kusor hace siglos, nunca salio a la luz y no se si funciona en los navegdores actuales, pero ahi queda para la posteridad, igual sirve de algo igual no :)
<code>/*******************************************************
* mk API rv-0.0.1 (http://js2py.tuxfamily.org/)
* (c)2003 Sergi Meseguer
* (c)2003 Pedro Palazon
* Licensed under the terms of the GNU Public License v2
* (http://www.gnu.org/copyleft/gpl.html)
========================================================
* Extension allows formatting of text inside textareas
* Everything is handled automatically, aint that cute?
* TODO:
* Fix doctype detection for Mozilla
********************************************************/
TextareaEnhacer = {
init : function(){
// CUSTOMIZABLE PROPERTIES:
var allowURL = 1; // (1/0) allow/avoid URL insertion in textarea.
var cls = "control"; // (string) css class for control buttons
var boldImg = "bold-button.gif";
var italicImg = "italic-button.gif";
var urlImg = "url-button.gif";
TextareaEnhacer.boldTag = "strong"; // "strong" or "b"
TextareaEnhacer.italicTag = "em"; // "em" or "i"
// If you handle these tags using server side scripting you can change to [ and ]
// If [ and ] links will have the shape: [link|url|text]
TextareaEnhacer.openTag = "[";
TextareaEnhacer.closeTag = "]";
// END OF CUSTOMIZABLE PROPERTIES.
/* I THINK WE CAN DO THIS MANUALLY (see above). Doctype detection sucks.
// detecting doctype (only in IE??????):
var dt = document.childNodes.length;
var dtstr = (dt==2)?document.childNodes[0].nodeValue:0; //alert(dtstr);
var doctype = (dtstr.indexOf("xhtml")>-1)?"xhtml":"html";
// defining bold and italics tags (u is deprecated), depending on doctype:
// now manually, see above
var bold = (doctype=="xhtml")?"strong":"b";
var italics = (doctype=="xhtml")?"em":"i";
*/
var area = document.getElementsByTagName("textarea");
for (a=0;a<area.length;a++){
var hasID = (area[a].id)?1:0;
if(hasID==0) area[a].id = area[a].name; // if no id on textarea we take name
var ID = area[a].id;
var fill = document.getElementById(ID);
var enhacer = document.createElement("div");
enhacer.id = "enhacer_" + ID;
enhacer.setAttribute("class", cls);
fill.parentNode.insertBefore(enhacer, fill);
cont = '<a href="javascript:TextareaEnhacer.formatStr(\''+ID+'\', \''+TextareaEnhacer.boldTag+'\')"><img src="'+boldImg+'" alt="bold" border="0"></a>';
cont += '<a href="javascript:TextareaEnhacer.formatStr(\''+ID+'\', \''+TextareaEnhacer.italicTag+'\')"><img src="'+italicImg+'" alt="italic" border="0"></a>';
if(allowURL==1){
cont += '<a href="javascript:TextareaEnhacer.insertLink(\''+ID+'\')"><img src="'+urlImg+'" alt="url" border="0"></a>';
}
document.getElementById("enhacer_" + ID).innerHTML = cont;
}
},
// scott andrew (www.scottandrew.com) wrote this function. thanks, scott!
// adds an eventListener for browsers which support it.
addEvent : function(obj, evType, fn){
if (obj.addEventListener){
obj.addEventListener(evType, fn, true);
return true;
}
else if (obj.attachEvent){
var r = obj.attachEvent("on"+evType, fn);
return r;
}
else {
return false;
}
},
/*Added by kusor to emulate createRange*/
intercalar : function(elm, startPoint, endPoint, v, type){
allString = elm.value;
previa = allString.slice(0,startPoint);
subCadena = allString.slice(startPoint,endPoint);
posterior = allString.slice(endPoint, allString.length);
if(type=="text") modificada = TextareaEnhacer.openTag + v + TextareaEnhacer.closeTag + subCadena + TextareaEnhacer.openTag + '/' + v + TextareaEnhacer.closeTag;
if(type=="link") {
if(TextareaEnhacer.openTag == "<") modificada = '<a href="'+v+'">'+subCadena+'</a>';
else modificada = TextareaEnhacer.openTag + "link|" + v + "|" + subCadena + TextareaEnhacer.closeTag;
}
return (elm.value = previa+modificada+posterior);
},
/*MTFunctions*/
formatStr : function(elm, v){
elm = document.getElementById(elm);
if(document.selection){
var str = document.selection.createRange().text;
if (!str) return;
document.selection.createRange().text = TextareaEnhacer.openTag + v + TextareaEnhacer.closeTag + str + TextareaEnhacer.openTag +'/' + v + TextareaEnhacer.closeTag;
}
else{
var sa = elm.selectionStart;
var se = elm.selectionEnd;
if(sa==se) return;
TextareaEnhacer.intercalar(elm,elm.selectionStart,elm.selectionEnd, v, "text");
}
},
insertLink : function(elm){
elm = document.getElementById(elm);
if(document.selection){
var str = document.selection.createRange().text;
if (!str) return;
var my_link = prompt('Write URL / Escribe URL / Escriu URL', 'http://');
my_link = my_link.replace(/&/g, "&amp;");
if (my_link != null) {
if(TextareaEnhacer.openTag == "<") document.selection.createRange().text = '<a href="'+my_link+'">'+str+'</a>';
else document.selection.createRange().text = TextareaEnhacer.openTag + "link|" + my_link + "|" + str + TextareaEnhacer.closeTag;
}
}
else {
var sa = elm.selectionStart;
var se = elm.selectionEnd;
if(sa==se) return;
var my_link = prompt('Write URL / Escribe URL / Escriu URL', 'http://');
my_link = my_link.replace(/&/g, "&amp;");
if (my_link != null){
TextareaEnhacer.intercalar(elm,elm.selectionStart,elm.selectionEnd, my_link, "link");
}
}
}
}
// run only if browser accepts enough dhtml:
if (document.getElementById && document.getElementsByTagName && document.createElement
&& typeof document.getElementsByTagName("head")[0].innerHTML != "undefined" ) {
TextareaEnhacer.addEvent(window, "load", TextareaEnhacer.init);
}</code>
clkwise
zigotica
hombre, asi a bote pronto, sin saber para que necesitas exactamente el CMS... pues como que no. igual estas matando moscas a cañonazos, no? ademas no dices que el CMS ya esta hecho por otra gente?
Era por curiosidad por si tenias alguno como "favorito". Tus opciones suelen ser cojonudas.
helviox gracias me mirare eso, aunq si sole dice que es una .... me fio de su opinion. En realidad el prespuesto es bastante reducido con lo que queria algo sencillito y no queria mucho jaleo de opciones, solo negrita y negrita subrayado. Asi que me lo acabare haciendo yo (a no ser q sea algo infumable)
Si teneis alguna idea de tuto por ahi...
de todos modos muchas gracias
sole
fck editor es bazura!!
genera un html con unos errores tan incomprensibles a veces...
tiny es mucho mas light y por supuesto tambien lo puedes configurar. De una forma mucho mas sencilla que fck. Esas horas que me he tenido que pasar arreglando los errores que produce fck... :-(
helviox
Por lo que he entendido, quizá FCK Editor te sirva. Además, puedes limitar las opciones de edición.
zigotica
hombre, asi a bote pronto, sin saber para que necesitas exactamente el CMS... pues como que no. igual estas matando moscas a cañonazos, no? ademas no dices que el CMS ya esta hecho por otra gente?
clkwise
quiero un editor de textos para integrar en un cms ya hecho por otra gente.
muy profesional eso que has mandado!! me lo guardo pero buscaba algo menos elaborado. como mucho con negrita, subrayado... lo que estoy pensando ahora es si hacerlo bbcode o wysiwyg. supongo q bbcode es mas sencillo no?
PD. solo por curiosidad que CMS open source me recomendarias. si el editor de textos es tan pro, el CMS no me imagino lo que podra hacer :)
zigotica
¿pero quieres el CMS en PHP o el editor de textos?
si es lo segundo:
http://tinymce.moxiecode.com/