- Mensajes
- 213
- Puntuación de reacción
- 0
Buenas gente, la verdad es que no tenia muy claro donde crear el post si aqui o en la seccion de wp, al final me he decidido aqui ya que aunque trabaje en wp es tema de codigos basicamente.
Explico un poquito para que asi podais entender lo que quiero hacer (es mas bien sencillo)
Estoy añadiendo un script de frases aleatorias, el script funciona bien, el problema..si el array está vacio, no imprime nada en lugar de buscar de nuevo datos...la cuestion es que ando haciendolo con el options framework, con un simple campo de texto, el codigo en un principio viene a ser asi (iria de $frase1 hasta $frase10):
esta parte es sencilla de entender...si el campo "eslogan1_text" es distinto de vacio entonces añade el dato en $frase1 (como digo iria asi hasta el $frase10)
¿por que lo añado a la variable $frase1? sencillo por que asi uso esa variable para el array:
Hasta ahí todo bien...ahora viene la parte que me he quedado atascado y que sinceramente no tengo idea de como seguir, y es que si $frase(numero) está vacío entonces que siga leyendo datos del array hasta que encuentre uno que si que este lleno y entonces lo imprima en pantalla, el por que de esto es por que aunque hay puesto para añadir 10 frases, ¿que pasa si por ejemplo añadimos solo 6? el rand iría imprimiendo frases en pantalla, la cuestión es que recorre del 0 al 9 y si algún campo esta vacío, simplemente se imprime como vacío en pantalla, por eso lo que necesitaría hacer es que si esta vacío, entonces ejecute de nuevo el rand para imprimir uno que si que tenga datos,, en pocas palabras que si por ejemplo solo hay 6 frases añadidas en lugar de las 10 haga el rand de esas 6 frases solamente y sean las que se ven impresas en pantalla (sin que se quede vacío el campo),, hasta ahora lo había hecho así, pero sigue imprimiendo datos vacíos igualmente por lo que no tiene ningún sentido ni hace lo que necesito(este primer if creo que esta bien..lo que me faltaría es el else que es donde me he quedado encallado...el else supuestamente debería de leer de nuevo el array para buscar un campo que no este vacío pero...¿como lo hago? es lo que no se):
El código completo que tengo hasta ahora es este (a falta del else que no se que narices debería e meter ahí para que vuelva a leer el array en busca de datos), como podréis comprobar es bastante básico y probablemente no este todo lo bien optimizado que pudiera estar..pero programación suelo hacer mas bien poca (de ahí que me haya quedado atascado)
Gracias por adelantado
Explico un poquito para que asi podais entender lo que quiero hacer (es mas bien sencillo)
Estoy añadiendo un script de frases aleatorias, el script funciona bien, el problema..si el array está vacio, no imprime nada en lugar de buscar de nuevo datos...la cuestion es que ando haciendolo con el options framework, con un simple campo de texto, el codigo en un principio viene a ser asi (iria de $frase1 hasta $frase10):
PHP:
if(of_get_option('eslogan1_text') !='') {
$frase1 = of_get_option('eslogan1_text');
}
esta parte es sencilla de entender...si el campo "eslogan1_text" es distinto de vacio entonces añade el dato en $frase1 (como digo iria asi hasta el $frase10)
¿por que lo añado a la variable $frase1? sencillo por que asi uso esa variable para el array:
PHP:
$frases = array(
0 => $frase1,
1 => $frase2,
2 => $frase3,
3 => $frase4,
4 => $frase5,
5 => $frase6,
6 => $frase7,
7 => $frase8,
8 => $frase9,
9 => $frase10
);
Hasta ahí todo bien...ahora viene la parte que me he quedado atascado y que sinceramente no tengo idea de como seguir, y es que si $frase(numero) está vacío entonces que siga leyendo datos del array hasta que encuentre uno que si que este lleno y entonces lo imprima en pantalla, el por que de esto es por que aunque hay puesto para añadir 10 frases, ¿que pasa si por ejemplo añadimos solo 6? el rand iría imprimiendo frases en pantalla, la cuestión es que recorre del 0 al 9 y si algún campo esta vacío, simplemente se imprime como vacío en pantalla, por eso lo que necesitaría hacer es que si esta vacío, entonces ejecute de nuevo el rand para imprimir uno que si que tenga datos,, en pocas palabras que si por ejemplo solo hay 6 frases añadidas en lugar de las 10 haga el rand de esas 6 frases solamente y sean las que se ven impresas en pantalla (sin que se quede vacío el campo),, hasta ahora lo había hecho así, pero sigue imprimiendo datos vacíos igualmente por lo que no tiene ningún sentido ni hace lo que necesito(este primer if creo que esta bien..lo que me faltaría es el else que es donde me he quedado encallado...el else supuestamente debería de leer de nuevo el array para buscar un campo que no este vacío pero...¿como lo hago? es lo que no se):
PHP:
if (!empty($numero)) {
$numero = rand(0, 9);
echo "$frases[$numero]";
}
El código completo que tengo hasta ahora es este (a falta del else que no se que narices debería e meter ahí para que vuelva a leer el array en busca de datos), como podréis comprobar es bastante básico y probablemente no este todo lo bien optimizado que pudiera estar..pero programación suelo hacer mas bien poca (de ahí que me haya quedado atascado)
PHP:
<?php
if(of_get_option('eslogan1_text') !='') {
$frase1 = of_get_option('eslogan1_text');
}
if(of_get_option('eslogan2_text') !='') {
$frase2 = of_get_option('eslogan2_text');
}
if(of_get_option('eslogan3_text') !='') {
$frase3 = of_get_option('eslogan3_text');
}
if(of_get_option('eslogan4_text') !='') {
$frase4 = of_get_option('eslogan4_text');
}
if(of_get_option('eslogan5_text') !='') {
$frase5 = of_get_option('eslogan5_text');
}
if(of_get_option('eslogan6_text') !='') {
$frase6 = of_get_option('eslogan6_text');
}
if(of_get_option('eslogan7_text') !='') {
$frase7 = of_get_option('eslogan7_text');
}
if(of_get_option('eslogan8_text') !='') {
$frase8 = of_get_option('eslogan8_text');
}
if(of_get_option('eslogan9_text') !='') {
$frase9 = of_get_option('eslogan9_text');
}
if(of_get_option('eslogan10_text') !='') {
$frase10 = of_get_option('eslogan10_text');
}
$frases = array(
0 => $frase1,
1 => $frase2,
2 => $frase3,
3 => $frase4,
4 => $frase5,
5 => $frase6,
6 => $frase7,
7 => $frase8,
8 => $frase9,
9 => $frase10
);
if (!empty($numero)) {
$numero = rand(0, 9);
echo "$frases[$numero]";
}
else {
}
?>
Gracias por adelantado