Pagina 1 di 2

Codice PHP

Inviato: 10/06/2015, 16:37
da avni
Sto creando un sito internet con altervista+wordpress, nella parte di admin ho inserito un elenco multiselezione ad esempio: 
Colori,
- Blu,
- Giallo,
- Bianco, 
,
Vestiti, 
- Scarpe,
- Giacca, 

Ma il quadratino per la scielta mi viene anche difianco allo spazio vuoto e anche alla categoria (colori, vestiti). Come posso modificare il Codice php principale? Praticamente il codice e scritto, quando si mette la "," alla fine della parola va a capo e mette il quadrato per la selezione.

Codice: Seleziona tutto

<?php

global $feature_list_array;

global $edit_id;

global $moving_array;

?>

<div class="submit_container "> 

<div class="submit_container_header"><?php _e('Amenities and Features','wpestate');?></div>

<?php

foreach($feature_list_array as $key => $value){

$post_var_name = str_replace(' ','_', trim($value) );

$post_var_name = wpestate_limit45(sanitize_title( $post_var_name ));

$post_var_name = sanitize_key($post_var_name);

$value_label=$value;

if (function_exists('icl_translate') ){

$value_label = icl_translate('wpestate','wp_estate_property_custo m_amm_'.$value, $value ) ; 

}

print '<p class="full_form featurescol">

<input type="hidden" name="'.$post_var_name.'" value="" style="display:block;">

<input type="checkbox" id="'.$post_var_name.'" name="'.$post_var_name.'" value="1" ';

if (esc_html(get_post_meta($edit_id, $post_var_name, true)) == 1) {

print' checked="checked" ';

}else{

if(is_array($moving_array) ){ 

if( in_array($post_var_name,$moving_array) ){

print' checked="checked" ';

     }
   }
 }

print' /><label for="'.$post_var_name.'">'.$value_label.'</label></p>';

}

?>

</div>

Re: Codice PHP

Inviato: 10/06/2015, 19:07
da Sir Xiradorn
Per favore potresti usare il bbcode code=php senno il codice è confusionario.

Per controllare dove viene messo il checkbox devi controllare il ciclo foreach dicendo che se è una categoria non la deve inserire. Lo puoi fare con un array che le specifica e un if che ne inibisce la comparsa. Non ho controllato ne posso farlo ora ma a un primo occhio mi pare quello il punto focale

Re: Codice PHP

Inviato: 10/06/2015, 19:10
da avni
Chiedo scusa, sono nuovo del forum.
So 2/10 di programmazione, mi potresti modificare il codice, così io faccio un copia/incolla...grazie della disponibilità

Re: Codice PHP

Inviato: 10/06/2015, 21:05
da Sir Xiradorn
Ma questo script fa riferimento a cosa? Da dove vengono quelle variabili? Se non conosco la struttura degli array non posso dirti come fare. Si potrebbe fare una struttura alternativa ma credo che sia inserito in altro e infatti vedo l'uso di funzioni non native del php.

Ho come il sentore sia invece una funzione di wordpress perchè la struttura un po me lo ricorda ma forse sbaglio proprio totalmente

Re: Codice PHP

Inviato: 10/06/2015, 21:21
da avni
È un tema di Wordpress si chiama WP Residence. Praticamente nella parte di admin c'è un sezione dove si chiama "Listings Features & Amenities", dove posso inserire un elenco delle caratteristiche dell'immobile, ogni parola deve essere seguita da una "," da quanto ho capito, ma io le caratteristiche le ho divise in gruppi perchè ce ne sono tante, come nell'esempio dei colori e vestiti. Quel codice serve per quello. Non capisco come modificarlo.

Re: Codice PHP

Inviato: 11/06/2015, 9:38
da Anto
Ciao,
non ho capito il problema, inserisci uno screenshot o direttamente un link.

Re: Codice PHP

Inviato: 11/06/2015, 10:02
da avni
Ecco le due immagini. Una fa vedere come ho impostato l'elenco, l'altra come lo fa il print nel sito

Re: Codice PHP

Inviato: 12/06/2015, 18:46
da Sir Xiradorn
Allora allora allora. Vediamo un po. Fammi capire una cosa. Hai diviso le amenità in gruppi diciamo così. Ora cosa vorresti fare? Vuoi togliere il quadratino quando viene inserita la virgola? O cosa? Avevo anche io questo tema da qualche parte. Se mi dici che versione hai, posso esaminare meglio il codice.

Re: Codice PHP

Inviato: 12/06/2015, 18:53
da avni
La versione è Wp Residence 1.091... praticamente io voglio che davanti alla parola "Aufzug" non ci sia il quadrattino per selezionare la caratteristica, ma solo nelle parole sotto ad esempio "Lastenaufzug e Personenaufzug", in più quando in una riga non c'è scritto nulla. Grazie della diponibilità

Re: Codice PHP

Inviato: 13/06/2015, 16:02
da Sir Xiradorn
Allora facciamo così. Ho in mente questo. Possiamo usare un identificativo per le categorie come ad esempio questo [*] . Mentre per il segnaposto vuoto useremo una stringa del tipo [---------]. Poi gli diciamo: Quando trovi [*] Usa quella come categoria e quindi non applichi la spunta. Quando trovi [---------] fai lo stesso. Che dici?

Mentre io elaboro il codice, ti do qualche dritta e se vuoi provarci a scopo anche didattico fai pure. In sostanza quello che andremo a usare è una Regular Expression o RegEx o in italiano Espressione regolare. Avremo cos' 2 elementi:
  • una parola da cercare
  • una pattern ovvero un elemento che da indicazione su cosa cercare e come deve farlo
Dovresti fare tali passaggi:
  • Prendere l'array di valori e explode-lro come stavi facendo per fare un array
  • sempre come stavi facendo devi usare un foreach per scorrere l'array
  • dentro però questa volta userai una espressione regolare con questa pattern /(\[-{4,}\]|\[\*\])/. Questo significa che la funzione cercherà come elementi, o questa stringa [----], ovvero le due parentesi quadre con 4 o più trattini al suo interno, oppure questa stringa [ * ] (senza gli spazi in mezzo).
  • fatto ciò agisci con un if e se trova il valore che desideri nella stringa, come descritto in precedenza, allora elimina il quadratino dal fianco di quello che ti serve. In particolare la stringa [----] fungerà da sorta di separatore. Lui la vedrà come vuota e non metterà il quadratino. Visto poi che se non viene messa in check non si vedrà allora il gioco è perfetto. Altrimenti andava fatta un'altra piccola modifica e rimpiazzata la stringa in questione
Il tutto lo devi fare nella pagina che ti predispone questa funzione. Non so se esista un modo per sovrascrivere la funzione ma mi pare ci sia qualcosa del tipo add_filters quindi potresti farlo anche da parte come ad esempio il file functions.php del child theme ma devo controllare. Mal che vada operi nella sorgente e via. Spero di averti dato qualche dritta in più. Non posso farlo subito perchè sto costruendo un applicativo web con un amico e quindi ho poco tempo. Ma così potrai lavorarci anche te se ti va