WordPress hosting Donate your Car for Money Casino selling a structured settlement Mobile casino mesothelioma charities PHD IN COUNSELING EDUCATION Online colledges Personal Injury Lawyer mesotheliama Criminal lawyer car insurance quotes colorado alabama mesothelioma lawyer Online Christmas cards Seo services mesothelioma attorney california New social media platforms business administration masters google adsense Seo companies DUI lawyer selling structured settlement Php programmers for hire Online Colleges FUTURISTIC ARCHITECTURE Online casino DONATE OLD CARS TO CHARITY Social media platforms mesothelioma symptoms Personal Injury Lawyers most profitable internet business car accident lawyers car insurance quotes ROYALTY FREE IMAGES STOCK ashely madis Make money online Australia saskatchewan auto insurance new mexico mesothelioma lawyer Hire php developers email bulk service Dwi lawyer supportpeachtreecom Casino reviews chicago hair laser removal DONATE A CAR IN MARYLAND Hire php developer life insurance quotes Sell Annuity Payment dui lawyer scottsdale miami personal injury lawyer Motor Insurance Quotes truck accident attorney texas Live casino orlando criminal attorney best consolidation loan student Mortgage Adviser Met auto ONLINECLASSES PSYCHIC FOR FREE Virtual Data Rooms NEUSON DONATE CARS IN MA Car insurance quotes MN CAR INSURANCE QUOTES UTAH Photo Christmas cards Service business software Php programmers Car Insurance Quotes Hire php programmers Webex Costs baltimore mesothelioma attorneys donating used cars to charity boulder personal injury lawyers city college in miami home phone internet bundle NUNAVUT CULTURE AUTOMOBILE ACCIDENT ATTORNEY online colledges car insurance quotes mn Life Insurance Co Lincoln Life insurance co Lincoln Cheap Auto Insurance in VA hughes net business Social media campaigns Forensics Online Course Online Stock Trading CAR ACCIDENT LAWYERS accident car florida lawyer Car Donate Register free domains MASSAGE SCHOOL DALLAS TEXAS Criminal defense lawyer mesothelioma lawyer houston World Trade Center Footage Bankruptcy lawyer Psd to html Donate a Car in Maryland canada personals yahoo Computer science classes online best mesothelioma lawyers HOME PHONE INTERNET BUNDLE Mesothelioma Law Firm BEST CRIMINAL LAWYER IN ARIZONA Best social media platforms for business Donate Your Car Sacramento Psychic for Free Car Insurance Companies Donating a car in Maryland Better Conference Calls structured annuity settlement Online Classes business email web hosting Attorney Donate Car for Tax Credit Business finance group Online Criminal Justice Degree mesothelioma lawsuit WordPress theme designers Social media platforms for business buy structured settlements Custom WordPress theme designer illinois mesothelioma lawyer Best Criminal Lawyers in Arizona Best Seo company domain registration yahoo Business management software Donate your car for kids Best social media platforms Cheap car insurance for ladies Seo company Custom Christmas cards FORENSICS ONLINE COURSE Low credit line credit cards WordPress themes for designers Psd to WordPress Social media examiner donate your car for kids Online College Course Social media management Nunavut Culture Tech school st louis mesothelioma attorney Html email Learning adobe illustrator HOLLAND MICHIGAN COLLEGE Hard drive Data Recovery Services Donate Cars in MA Auto Mobile Insurance Quote Christmas cards Proud Italian cook lawsuit mesothelioma Italian cooking school Adobe illustrator classes life insurance co lincoln ONLINE MOTOR INSURANCE QUOTES Social media strategies Psychic for free Injury Lawyers injury attorney baton rouge Social media tools Dedicated Hosting Dedicated Server Hosting car donate World trade center footage Dallas Mesothelioma Attorneys Car Insurance in South Dakota Donate Car to Charity California domain name yahoo Car Insurance Quotes PA Donating a Car in Maryland bus accident attorney los angeles Car Insurance Quotes Colorado small business administration sba DAYTON FREIGHT LINES How to Donate A Car in California ANNUITY SETTLEMENT Donate Car To Charity CALIFORNIA compare life assurance Donate Your Car for Kids CHEAP CAR INSURANCE IN VIRGINIA Asbestos Lawyers Structures Annuity Settlement Cheap Domain Registration Hosting houston mesothelioma attorney PhD in counseling education colorado auto accident attorney register free domains Annuity Settlements Donate car for tax credit Dayton Freight Lines Royalty free images stock mesothelioma settlements amounts Motor Replacements Donate your car Sacramento DONATE YOUR CAR SACRAMENTO Health Records Personal Health Record Auto Accident Attorney Donate Cars Illinois personal injury law firm Criminal Defense Attorneys Florida DALLAS MESOTHELIOMA ATTORNEYS broward county dui lawyer structured settlements companies Car Insurance Quotes Utah CRIMINAL DEFENSE ATTORNEYS FLORIDA Holland Michigan College Online Motor Insurance Quotes PAPERPORT PROMOTIONAL CODE CAR INSURANCE QUOTES COLORADO Paperport Promotional Code DONATE YOUR CAR FOR KIDS
miércoles, 1 de junio de 2011
Filled Under: Blogger, BPT, JavaScript
Un poco de moderación en los comentarios – Register
Socialize It →
|
|
|
Últimamente no hago más que mostrar cosas queparece que sirven para algo, pero que en el fondono resuelven del todo los problemas para los que se les supone la utilidad. Pero no me lo toméis a mal. Lo hago sólo para practicar cosillas, aprender cómo funcionan algunos códigos y de paso, como contraejemplo de lo que no funciona del todo bien.En este caso vamos a ver un script muy sencillo que nos permite reemplazar palabras situadas dentro de cualquier tipo deDIV que tenga asociada unaID. Lo vimos enSimplex Design gracias a un graznido de@pizcos. Tranquilos si no entendéis del todo el funcionamiento, porque no he entrado demasiado en detalle y sólo he pretendido explicar a grandes rasgos qué hace cada cosa.En este ejemplo lo vamos a utilizar como forma de moderación de comentarios, de manera que determinadas palabras sean eliminadas o mejor dicho, sobreescritas con asteriscos. Esta es la parte JavaScript y habrá que insertarla antes de/head:
script type='text/javascript'//![CDATA[function filtropalabras(ID){var comm = document.getElementById(ID);var comment = comm.innerHTML;var palabras = /palabra1|palabra2|Palabra3/gi;var comment1 = comment.replace(palabras, "****");comm.innerHTML = comment1;comm.style.display = "block";}///script
Se trata sólo de una función. Para los más novatos, una función es una rutina que toma unos datos de entrada, los procesa de determinada manera y devuelve otros. Lo más práctico de las funciones es que sirven para ejecutar tareas repetitivas desde un mismo trozo de código. Esta en concreto la usaremos en el bucle que va escribiendo los distintos comentarios que tienen las entradas, por lo que se repetirá el proceso con cada uno de ellos.La función que hemos llamadofiltropalabras recibe el dato de laID a tratar (lo que hay entre paréntesis) y en primer lugar captura la capa correspondiente (getElementById), que es guardada temporalmente encomm. ConinnerHTML se guarda en un variable (comment) el contenido de dicha capa, para que después pueda ser tratado sin alterar el contenido original. En la variablepalabras, es dónde tenemos que introducir a mano la lista de palabras que queremos eliminar.La siguiente línea es la principal. El comandoreplace comprueba en todo el contenido que tenemos guardado (comment), la existencia de palabras coincidentes con las de nuestra lista (palabras). Cuando encuentra una la sustituye por lo entrecomillado, cuatro asteriscos. Todo el resultado se va guardando encomment1.Lo último que hacemos es colocar todo este resultado coninnerHTML, de nuevo en la capa que antes extrajimos de su sitio y luego darle una visibilidad de bloque.Ya podemosGuardar y ya tenemos nuestra función preparada, pero ninguna hace nada si no se le llama antes desde algún sitio y se le pasan los valores que necesita. Eso lo vamos a hacer desde la parte HTML del blog.Siguiendo con el ejemplo, conExpandir plantillas de artilugios marcado, localizamos la parte queimprime los comentarios. Tiene este aspecto:pdata:comment.body//p
Bien, pues eso lo sustituimos por todo esto:pdiv expr:id='data:comment.id' style='display:none;'data:comment.body//div/pscript type='text/javascript'filtropalabras("data:comment.id/");/script
LasDATA son variables específicas de Blogger que guardan datos de nuestro blog.data:comment.body es la que contiene el texto de cada comentario. Lo que le hemos añadido ha sido una capa no visible (div style="display:none;") con unID que también hemos aprovechado de las variables Blogger. A continuación es cuando se coloca la llamada a la función que antes situamos antes del/head y como parámetro, le pasamos laID que hemos insertado.Para incluir más palabras sólo hay que respetar los símbolos y letras al principio y al final devar palabras e incluir una barra vertical (| ) entre cada dos. Los asteriscos también pueden ser sustituidos por cualquier cosa que os apetezca.Ahora ya sí que está todo completo y tenemos una lista negra de palabras que no podrán usar en los comentarios de nuestro blog. Podéis probar a escribircaca, culo, pedo opis en un comentario de esteblog de pruebas y observaréis que cuando guardáis, aparecen en su lugar los susodichos asteriscos¿Y dónde está el pero...? El pero está en la lista en sí misma, pues tendría que ser muy completa para que cumpliera realmente su función. Lo más normal es que tengamos que ir añadiendo bastantes palabras al principio y aún así, siempre se nos escaparía alguna.El script no hace diferencia entre mayúsculas y minúsculas (gracias al modificadorgi dereplace). Sin embargo, no es capaz de hacer iguales una letra con o sin acento. Para el sistema son cosas distintas y eso obligaría a redactar todas las combinaciones. Lo mismo ocurre si se intercalan espacios en blanco, guiones, etc.No obstante, esto puede tener otras utilidades, como cambiar ciertas palabras por otras, eliminar en una cadena los espacios en blanco, saltos de línea, caracteres especiales, etc. Y sobre todo la más importante, que es saber que se pueden hacer este tipo de cosas.Por ejemplo, para cambiar adicionalmente una palabra concreta por otra, sólo habría que añadir líneas extra trasvar palabras = /palabra1|palabra2|Palabra3/gi; pero con este otro formato:comment1 = comment1.replace(/hola/gi, "Un saludo");