Diferencia entre revisiones de «Soluciones practicas»

De ActionApps Documentacion
Saltar a: navegación, buscar
(Slideshow de imagenes interactivas con descripcion de texto)
(Construccion de un canal con muchisimos campos)
Línea 208: Línea 208:
  
 
== Construccion de un canal con muchisimos campos  ==
 
== Construccion de un canal con muchisimos campos  ==
 +
Hola a todos
 +
 +
Comparto a continuacion mi experiencia siguiendo el FAQ
 +
http://actionapps.org/faq/detail.shtml?x=1689
 +
 +
Segun el FAQ hay un script hecho en Perl que sirve para construir
 +
campos rapidamente un canal con muchisimo campos. El script esta
 +
ubicado en
 +
/loquesea/.../apc-aa/misc/txt2fields
 +
 +
Lo he probado en el ultimo CVS de las AA (2.8.1+) y funciona.
 +
 +
La idea es muy sencilla. Se trata de cargar el archivo que contiene
 +
las instrucciones de creacion de los campos directamente a la base de
 +
datos usando el script txt2fields.
 +
La sentencia de ejecucion del archivo es algo asi:
 +
 +
root@server:/var/www/html/apc-aa/misc/txt2fields> ./txt2fields
 +
1f04dc8d7f560c0acd52a8043e7bf8e8 < canal
 +
 +
Donde 1f04dc8d7f560c0acd52a8043e7bf8e8 es el ID del Canal
 +
 +
y canal es un archivo de texto que en mi caso contenia lo siguiente:
 +
 +
=========================================
 +
field Administrador de Red
 +
id headline........
 +
required 1
 +
alias1 _#ADMINIST
 +
 +
field Problemas de Conectividad
 +
id text...........1
 +
input_show_func mch:Probl_conectivid:
 +
alias1 _#PROBCONE
 +
 +
field Descripcion del problema de conectividad
 +
id text...........2
 +
input_show_func txt:8
 +
alias1 _#PROBCON1
 +
 +
field Soluciones para el problema de conectividad
 +
id text...........3
 +
input_show_func txt:8
 +
alias1 _#PROBCON2
 +
 +
field Problemas de Computadores o Servidores
 +
id text...........4
 +
input_show_func mch:
 +
alias1 _#PROBSER1
 +
 +
field Descripcion del problema con Computadores o Servidores
 +
id text...........5
 +
input_show_func txt:8
 +
alias1 _#PROBSER2
 +
 +
 +
field Soluciones para el problema con Computadores o Servidores
 +
id text...........6
 +
input_show_func txt:8
 +
alias1 _#PROBSER3
 +
 +
field Problemas de Software
 +
id text...........9
 +
input_show_func mch:
 +
alias1 _#PROBSOF1
 +
 +
field Descripcion del problema con Software
 +
id text..........10
 +
input_show_func txt:8
 +
alias1 _#PROBSOF2
 +
 +
 +
field Soluciones para el problema con Software
 +
id text..........11
 +
input_show_func txt:8
 +
alias1 _#PROBSOF3
 +
 +
field Problemas de Perifericos
 +
id text..........12
 +
input_show_func mch:
 +
alias1 _#PROBPER1
 +
 +
field Descripcion del problema con Perifericos
 +
id text..........13
 +
input_show_func txt:8
 +
alias1 _#PROBPER2
 +
 +
field Soluciones para el problema con Perifericos
 +
id text..........14
 +
input_show_func txt:8
 +
alias1 _#PROBPER3
 +
 +
 +
field Problemas de Equipos de Energia Estabilizada
 +
id text..........15
 +
input_show_func mch:
 +
alias1 _#PROBENE1
 +
 +
field Descripcion del problema con Equipos de Energia Estabilizada
 +
id text..........16
 +
input_show_func txt:8
 +
alias1 _#PROBENE2
 +
 +
 +
field Soluciones para el problema con Equipos de Energia Estabilizada
 +
id text..........17
 +
input_show_func txt:8
 +
alias1 _#PROBENE3
 +
 +
 +
 +
field Editado por
 +
in_item_tbl edited_by
 +
input_show_func nul
 +
input_validate text
 +
input_help Identification of last editor
 +
search_show 0
 +
input_show 0
 +
id edited_by.......
 +
search_ft_show 0
 +
search_ft_default 0
 +
input_insert_func uid
 +
alias1 _#EDITEDBY
 +
alias1_help alias for Last edited By
 +
 +
field Fecha de expiracion
 +
in_item_tbl expiry_date
 +
input_show_func dte:1:10:1
 +
input_validate date
 +
input_help Date when the news expires
 +
search_show 0
 +
input_show 0
 +
alias1_func f_d:m/d/Y
 +
id expiry_date.....
 +
search_ft_show 0
 +
search_ft_default 0
 +
required 1
 +
input_insert_func dte
 +
alias1 _#EXP_DATE
 +
text_stored 0
 +
alias1_help alias for Expiry Date
 +
input_default dte:2000
 +
 +
field Comments Count
 +
feed 1
 +
in_item_tbl disc_count
 +
input_help Internal field - do not change
 +
search_show 0
 +
input_show 0
 +
id disc_count......
 +
search_ft_show 0
 +
search_ft_default 0
 +
required 1
 +
input_insert_func nul
 +
alias1 _#D_ALLCNT
 +
alias1_help alias for number of all discussion comments for this item
 +
input_default qte:0
 +
 +
field Approved Comments Count
 +
feed 1
 +
in_item_tbl disc_app
 +
input_help Internal field - do not change
 +
hidden 1
 +
input_show 0
 +
id disc_app........
 +
required 1
 +
input_insert_func nul
 +
alias1 _#D_APPCNT
 +
alias1_help alias for number of approved discussion comments for this item
 +
input_default qte:0
 +
 +
field Displayed Times
 +
feed 1
 +
in_item_tbl display_count
 +
input_help Internal field - do not change
 +
search_show 0
 +
input_show 0
 +
id display_count...
 +
search_ft_show 0
 +
search_ft_default 0
 +
required 1
 +
input_insert_func nul
 +
alias1 _#DISPL_NO
 +
alias1_help alias for number of displaying of this item
 +
input_default qte:0
 +
 +
field Resaltar
 +
in_item_tbl highlight
 +
input_show_func chb
 +
input_validate bool
 +
input_help Interesting news - shown on homepage
 +
search_show 0
 +
input_show 0
 +
id highlight.......
 +
search_ft_show 0
 +
search_ft_default 0
 +
input_insert_func boo
 +
text_stored 0
 +
 +
field Ultima modificacion
 +
in_item_tbl last_edit
 +
input_show_func dte:1:10:1
 +
input_validate date
 +
input_help Date of last edit
 +
search_show 0
 +
input_show 0
 +
alias1_func f_d:m/d/Y
 +
id last_edit.......
 +
search_ft_show 0
 +
search_ft_default 0
 +
input_insert_func now
 +
alias1 _#LASTEDIT
 +
text_stored 0
 +
alias1_help alias for Last Edit
 +
input_default now:
 +
 +
field Publicado por
 +
in_item_tbl posted_by
 +
input_validate text
 +
input_help Identification of author
 +
search_show 0
 +
input_show 0
 +
id posted_by.......
 +
search_ft_show 0
 +
search_ft_default 0
 +
alias1 _#POSTEDBY
 +
alias1_help alias for Author
 +
 +
field Fecha de envio
 +
in_item_tbl post_date
 +
input_show_func nul
 +
input_validate date
 +
input_help Date of posting this news
 +
search_show 0
 +
input_show 0
 +
alias1_func f_d:m/d/Y
 +
id post_date.......
 +
search_ft_show 0
 +
search_ft_default 0
 +
required 1
 +
input_insert_func now
 +
alias1 _#POSTDATE
 +
text_stored 0
 +
alias1_help alias for Post Date
 +
input_default now:
 +
 +
field Fecha de publicacion
 +
in_item_tbl publish_date
 +
input_show_func dte:1:10:1
 +
input_validate date
 +
input_help Date when the news will be published
 +
search_show 0
 +
input_show 0
 +
alias1_func f_d:m/d/Y
 +
id publish_date....
 +
search_ft_show 0
 +
search_ft_default 0
 +
required 1
 +
input_insert_func dte
 +
alias1 _#PUB_DATE
 +
text_stored 0
 +
alias1_help alias for Publish Date
 +
input_default now:
 +
 +
field Slice
 +
in_item_tbl slice_id
 +
input_help Internal field - do not change
 +
search_show 0
 +
input_show 0
 +
alias1_func f_n:slice_id........
 +
id slice_id........
 +
search_ft_show 0
 +
search_ft_default 0
 +
required 1
 +
input_insert_func nul
 +
alias1 _#SLICE_ID
 +
alias1_help alias for id of slice
 +
input_default qte:1
 +
 +
field Status Code
 +
in_item_tbl status_code
 +
input_show_func sel:AA_Core_Bins....
 +
input_validate number
 +
input_help Select in which bin should the news appear
 +
search_show 0
 +
input_show 0
 +
id status_code.....
 +
search_ft_show 0
 +
search_ft_default 0
 +
required 1
 +
input_insert_func num
 +
text_stored 0
 +
input_default qte:1
 +
search_show 0
 +
 +
============================================
 +
 +
Es muy importante, insertar los campos que van de "Editado por" a
 +
"Status Code" en el archivo canal que he mostrado pues sino los items
 +
no se muestran en el administrador de items.
 +
Dos observaciones. 1. Recuerden habilitar los permisos para leer el
 +
archivo canal y que la ruta al binario Perl sea correcta dentro del
 +
archivo txt2fields
 +
2. Al ejecutar el archivo todos los campos que estaban antes se borran.
 +
 +
Existe tambien un archivo inverso, el fields2txt, el comando para
 +
usarlo es al reves
 +
 +
root@server:/var/www/html/apc-aa/misc/txt2fields> ./fields2txt
 +
1f04dc8d7f560c0acd52a8043e7bf8e8 > canal2
 +
 +
En este caso el contenido de todos los campos se insertan en el archivo canal2
 +
Esto pueder servir para que chequeen la estructura de los campos de
 +
otros canales y se den idea como programarlos despues en archivo de
 +
texto
 +
 +
 +
Saludos
 +
Adam

Revisión del 07:07 28 sep 2006

Como editar un item en un website publico

Traducido de How to edit items in public website?

Adam 23:35 2 jun, 2006 (CEST)
Tu tienes preparado un formulario de envio anonimo publico y deseas usarlo para editar items. Como hacerlo?

Hay un script fillform.php3 asociado con las utilidades javascript en include/fillformutils.php3. Este script toma el id de item largo de la variable my_item_id y llama a las funciones javascript para buscar los campos y llenarlos apropiadamente.

Tu debes usarlo de esta manera: Dentro del archivo file anonymous.shtml

Colocar los siguientes includes

<!--#include virtual="/anonym.html"--> <!--#include virtual="/aaa/fillform.php3"--> <!--#include virtual="/bottom.html"-->

Para editar un item con los viejos valores cargados en el formulario puedes llamarlo asi

anonymous.shtml?my_item_id=...

Hay dos parametros adicionales que muchos usuarios no necesitarán: usar "form=formname" cuando tu cambies el nombre del formulario que contiene los campos (usualmente es llamado "f"). Puede usar "notrun = 1" si tu deseas llenar los controles e.g. solamente despues de clickar en algun lugar.

Solamente los items posteados de un website público y no actualizado en el administrador de las AA puede ser editado de esta manera - un flag ITEM_FLAG_ANONYMOUS_EDITABLE se encarga de esto. Este es reseteado cada vez que tu envias un item con itemedit.php3

El mismo script puede ser usado para rellenar condiciones en una pagina de busqueda. Ver en How to refill conditions on searchform?

Slideshow de imagenes interactivas con descripcion de texto

--Adam 06:57 21 sep, 2006 (CEST)
Un dato que muestra el poder de las AA cuando se combinan con

Javascript. En el proyecto donde trabajo necesitaban un Slideshow de imagenes interactivas con descripcion de texto y asi que decidi implementarlo con AA. El asunto es sencillo. Pueden verlo en

http://ertic.inictel.net en la seccion Fotonoticia

1. Bajar el script de

Dynamic Drive

2. Crean una vista texto completo (tambien puede ser una vista lista de items de un solo item) y colocan el codigo de la siguiente manera. (En cada item lo configure para que albergara 10 fotos)


SECCION ENCABEZADO HTML



<input type="button" id="btnPrev" value="<< Previous" onclick="Prev();"> <input type="button" id="bntPlay" value="Play - Stop" onclick="Play()"> <input type="button" id="btnNext" value=" Next >> " onclick="Next();">

<img id="_Ath_Slide" onload="OnImgLoad()">

<p><b>Description:</b> <SPAN id="_Ath_FileName"> </SPAN> <br> <b>Number of Pictures: <SPAN id="_Ath_Img_X"></SPAN> of <SPAN id="_Ath_Img_N"></SPAN> </b></p>


<script language="JavaScript1.2">

/* Interactive Image slideshow with text description By Christian Carlessi Salvad? (cocolinks@c.net.gt). Keep this notice intact. Visit http://www.dynamicdrive.com for script

  • /


g_fPlayMode = 0; g_iimg = -1; g_imax = 0; g_ImageTable = new Array();

function ChangeImage(fFwd) { if (fFwd) { if (++g_iimg==g_imax) g_iimg=0; } else { if (g_iimg==0) g_iimg=g_imax; g_iimg--; } Update(); }

function getobject(obj){ if (document.getElementById) return document.getElementById(obj) else if (document.all) return document.all[obj] }

function Update(){ getobject("_Ath_Slide").src = g_ImageTable[g_iimg][0]; getobject("_Ath_FileName").innerHTML = g_ImageTable[g_iimg][1]; getobject("_Ath_Img_X").innerHTML = g_iimg + 1; getobject("_Ath_Img_N").innerHTML = g_imax; }


function Play() { g_fPlayMode = !g_fPlayMode; if (g_fPlayMode) { getobject("btnPrev").disabled = getobject("btnNext").disabled = true; Next(); } else { getobject("btnPrev").disabled = getobject("btnNext").disabled = false;

} } function OnImgLoad() { if (g_fPlayMode) window.setTimeout("Tick()", g_dwTimeOutSec*1000); } function Tick() { if (g_fPlayMode) Next(); } function Prev() { ChangeImage(false); } function Next() { ChangeImage(true); }


SECCION FILAS IMPARES


////configure below variables///////////////////////////// //configure the below images and description to your own. {switch({_#FOTO1___}).+:g_ImageTable[g_imax++] = new Array ("_#FOTO1___", "_#LEYEND1_");:} {switch({_#FOTO2___}).+:g_ImageTable[g_imax++] = new Array ("_#FOTO2___", "_#LEYEND2_");:} {switch({_#FOTO3___}).+:g_ImageTable[g_imax++] = new Array ("_#FOTO3___", "_#LEYEND3_");:} {switch({_#FOTO4___}).+:g_ImageTable[g_imax++] = new Array ("_#FOTO4___", "_#LEYEND4_");:} {switch({_#FOTO5___}).+:g_ImageTable[g_imax++] = new Array ("_#FOTO5___", "_#LEYEND5_");:} {switch({_#FOTO6___}).+:g_ImageTable[g_imax++] = new Array ("_#FOTO6___", "_#LEYEND6_");:} {switch({_#FOTO7___}).+:g_ImageTable[g_imax++] = new Array ("_#FOTO7___", "_#LEYEND7_");:} {switch({_#FOTO8___}).+:g_ImageTable[g_imax++] = new Array ("_#FOTO8___", "_#LEYEND8_");:} {switch({_#FOTO9___}).+:g_ImageTable[g_imax++] = new Array ("_#FOTO9___", "_#LEYEND9_");:} {switch({_#FOTO10__}).+:g_ImageTable[g_imax++] = new Array ("_#FOTO10__", "_#LEYEND10");:} //extend the above list as desired g_dwTimeOutSec=2 ////End configuration/////////////////////////////


SECCION PIE HTML


if (document.getElementById||document.all) window.onload=Play </script> <p><font face="Arial" size="-2">Free DHTML scripts provided by<br> <a href="http://dynamicdrive.com">Dynamic Drive</a></font></p>


3. Lo incluyen en su modulo de sitio o en su defecto en la pagina SHTML que usen.

Basicamente, eso es todo

Saludos

Adam


Construccion de un canal con muchisimos campos

Hola a todos

Comparto a continuacion mi experiencia siguiendo el FAQ
http://actionapps.org/faq/detail.shtml?x=1689

Segun el FAQ hay un script hecho en Perl que sirve para construir
campos rapidamente un canal con muchisimo campos. El script esta
ubicado en
/loquesea/.../apc-aa/misc/txt2fields

Lo he probado en el ultimo CVS de las AA (2.8.1+) y funciona.

La idea es muy sencilla. Se trata de cargar el archivo que contiene
las instrucciones de creacion de los campos directamente a la base de
datos usando el script txt2fields.
La sentencia de ejecucion del archivo es algo asi:

root@server:/var/www/html/apc-aa/misc/txt2fields> ./txt2fields
1f04dc8d7f560c0acd52a8043e7bf8e8 < canal

Donde 1f04dc8d7f560c0acd52a8043e7bf8e8 es el ID del Canal

y canal es un archivo de texto que en mi caso contenia lo siguiente:

=========================================
field Administrador de Red
id headline........
required 1
alias1 _#ADMINIST

field Problemas de Conectividad
id text...........1
input_show_func mch:Probl_conectivid:
alias1 _#PROBCONE

field Descripcion del problema de conectividad
id text...........2
input_show_func txt:8
alias1 _#PROBCON1

field Soluciones para el problema de conectividad
id text...........3
input_show_func txt:8
alias1 _#PROBCON2

field Problemas de Computadores o Servidores
id text...........4
input_show_func mch:
alias1 _#PROBSER1

field Descripcion del problema con Computadores o Servidores
id text...........5
input_show_func txt:8
alias1 _#PROBSER2


field Soluciones para el problema con Computadores o Servidores
id text...........6
input_show_func txt:8
alias1 _#PROBSER3

field Problemas de Software
id text...........9
input_show_func mch:
alias1 _#PROBSOF1

field Descripcion del problema con Software
id text..........10
input_show_func txt:8
alias1 _#PROBSOF2


field Soluciones para el problema con Software
id text..........11
input_show_func txt:8
alias1 _#PROBSOF3

field Problemas de Perifericos
id text..........12
input_show_func mch:
alias1 _#PROBPER1

field Descripcion del problema con Perifericos
id text..........13
input_show_func txt:8
alias1 _#PROBPER2

field Soluciones para el problema con Perifericos
id text..........14
input_show_func txt:8
alias1 _#PROBPER3


field Problemas de Equipos de Energia Estabilizada
id text..........15
input_show_func mch:
alias1 _#PROBENE1

field Descripcion del problema con Equipos de Energia Estabilizada
id text..........16
input_show_func txt:8
alias1 _#PROBENE2


field Soluciones para el problema con Equipos de Energia Estabilizada
id text..........17
input_show_func txt:8
alias1 _#PROBENE3



field Editado por
in_item_tbl edited_by
input_show_func nul
input_validate text
input_help Identification of last editor
search_show 0
input_show 0
id edited_by.......
search_ft_show 0
search_ft_default 0
input_insert_func uid
alias1 _#EDITEDBY
alias1_help alias for Last edited By

field Fecha de expiracion
in_item_tbl expiry_date
input_show_func dte:1:10:1
input_validate date
input_help Date when the news expires
search_show 0
input_show 0
alias1_func f_d:m/d/Y
id expiry_date.....
search_ft_show 0
search_ft_default 0
required 1
input_insert_func dte
alias1 _#EXP_DATE
text_stored 0
alias1_help alias for Expiry Date
input_default dte:2000

field Comments Count
feed 1
in_item_tbl disc_count
input_help Internal field - do not change
search_show 0
input_show 0
id disc_count......
search_ft_show 0
search_ft_default 0
required 1
input_insert_func nul
alias1 _#D_ALLCNT
alias1_help alias for number of all discussion comments for this item
input_default qte:0

field Approved Comments Count
feed 1
in_item_tbl disc_app
input_help Internal field - do not change
hidden 1
input_show 0
id disc_app........
required 1
input_insert_func nul
alias1 _#D_APPCNT
alias1_help alias for number of approved discussion comments for this item
input_default qte:0

field Displayed Times
feed 1
in_item_tbl display_count
input_help Internal field - do not change
search_show 0
input_show 0
id display_count...
search_ft_show 0
search_ft_default 0
required 1
input_insert_func nul
alias1 _#DISPL_NO
alias1_help alias for number of displaying of this item
input_default qte:0

field Resaltar
in_item_tbl highlight
input_show_func chb
input_validate bool
input_help Interesting news - shown on homepage
search_show 0
input_show 0
id highlight.......
search_ft_show 0
search_ft_default 0
input_insert_func boo
text_stored 0

field Ultima modificacion
in_item_tbl last_edit
input_show_func dte:1:10:1
input_validate date
input_help Date of last edit
search_show 0
input_show 0
alias1_func f_d:m/d/Y
id last_edit.......
search_ft_show 0
search_ft_default 0
input_insert_func now
alias1 _#LASTEDIT
text_stored 0
alias1_help alias for Last Edit
input_default now:

field Publicado por
in_item_tbl posted_by
input_validate text
input_help Identification of author
search_show 0
input_show 0
id posted_by.......
search_ft_show 0
search_ft_default 0
alias1 _#POSTEDBY
alias1_help alias for Author

field Fecha de envio
in_item_tbl post_date
input_show_func nul
input_validate date
input_help Date of posting this news
search_show 0
input_show 0
alias1_func f_d:m/d/Y
id post_date.......
search_ft_show 0
search_ft_default 0
required 1
input_insert_func now
alias1 _#POSTDATE
text_stored 0
alias1_help alias for Post Date
input_default now:

field Fecha de publicacion
in_item_tbl publish_date
input_show_func dte:1:10:1
input_validate date
input_help Date when the news will be published
search_show 0
input_show 0
alias1_func f_d:m/d/Y
id publish_date....
search_ft_show 0
search_ft_default 0
required 1
input_insert_func dte
alias1 _#PUB_DATE
text_stored 0
alias1_help alias for Publish Date
input_default now:

field Slice
in_item_tbl slice_id
input_help Internal field - do not change
search_show 0
input_show 0
alias1_func f_n:slice_id........
id slice_id........
search_ft_show 0
search_ft_default 0
required 1
input_insert_func nul
alias1 _#SLICE_ID
alias1_help alias for id of slice
input_default qte:1

field Status Code
in_item_tbl status_code
input_show_func sel:AA_Core_Bins....
input_validate number
input_help Select in which bin should the news appear
search_show 0
input_show 0
id status_code.....
search_ft_show 0
search_ft_default 0
required 1
input_insert_func num
text_stored 0
input_default qte:1
search_show 0

============================================

Es muy importante, insertar los campos que van de "Editado por" a
"Status Code" en el archivo canal que he mostrado pues sino los items
no se muestran en el administrador de items.
Dos observaciones. 1. Recuerden habilitar los permisos para leer el
archivo canal y que la ruta al binario Perl sea correcta dentro del
archivo txt2fields
2. Al ejecutar el archivo todos los campos que estaban antes se borran.

Existe tambien un archivo inverso, el fields2txt, el comando para
usarlo es al reves

root@server:/var/www/html/apc-aa/misc/txt2fields> ./fields2txt
1f04dc8d7f560c0acd52a8043e7bf8e8 > canal2

En este caso el contenido de todos los campos se insertan en el archivo canal2
Esto pueder servir para que chequeen la estructura de los campos de
otros canales y se den idea como programarlos despues en archivo de
texto


Saludos
Adam