ort_search_replace

ort_search_replace

Este plugin va a permitir a un administrador hacer una búsqueda y reemplazo de un string o una expresión regular en un artículo, una lista de artículos o todos los artículos.

Primeros pasos

JorgeBarrionuevo? armó una pantallita inicial:

screenshot de la primera versión de la página de administración

Acá faltaría la lista de artículos a la que hay que modificar.

Por otra parte, creo que el lugar para colgar el tab de "search and replace" debería ser, más bien "Content" que "Admin".

Acceso a los artículos

Mariano, no estoy pudiendo seleccionar un articulo desde la pantalla de administración, no encuentro nada de esto ni en el foro ni en textpattern.org.

Creo que lo que necesitaría es una variable global (un array) a la que pueda acceder mediante un id y sacarle un articulo, para luego capturar el body para procesarlo con la funcion de busquedaI (mb_ereg_replace).

  $body = $article['body'];

¿para conseguir el articulo deberia usar article_custom ? ¿como?

-- JorgeBarrionuevo?

respuesta

Jorge,

me parece que estás errando la visión global... el article_custom es algo que sirve para poner un tag del lado público, es decir, es lo que usa el que arma las páginas (templates) para mostrar un artículo o una lista de artículos en un lugar determinado con cierto aspecto usando el tag <txp:article_custom />.

Vos, programando un plugin, los artículos los tenés que buscar en la base de datos.

Lo que yo te diría, para que puedas empezar a jugar y probar las cosas sin volverte loco es que hagas lo siguiente.

Las primeras versiones de tu plugin, a lo que me mostraste en el mail anterior, agregale simplemente un campito más de texto que permita poner una lista de números de artículos separada por comas o espacios donde querés hacer el reemplazo. Permití también que te escriban, por ejemplo "all" para hacer el reemplazo en todos los archivos.

Una vez que sabés los números de archivo, podés buscarlos en la tabla correspondiente (la tabla textpattern), usando el campo ID como clave y buscando en el campo Body.

Sólo si modificamos efectivamente el campo (porque encontramos y reemplazamos en este artículo en particular), hay que hacer el UPDATE en la base de datos. Ahora, el tema es que si cambiamos el Body va a ser necesario re-generar el campo Body_html... seguro que hay una función en el TextPattern que hace esto... buscala.

NOTA: No te pongas a jugar directamente con la base de datos, usá las funciones que ya te brinda el TextPattern en textpattern/lib/txplib_db.php... mirando por encima yo diría que para buscar los artículos tendrías que usar safe_rows() si querés pedir todas de un saque o safe_rows() si preferís pedirlas de una en una... para el UPDATE creo que vas a tener que hacerlo de una en una (ya que en cada una ponés un valor distinto en los campos que modificás), para lo cual usás la función safe_update()

Attachments