| Autor | Zpráva | ||
|---|---|---|---|
| kejmil Profil * |
#1 · Zasláno: 4. 11. 2014, 19:24:19
Ahoj,
potřebuji poradit se základy php, pravděpodobně se jedná o funkci implode(). Mám tento funkční kód: <?php
function my_facets_node_presave($node) {
drupal_set_message('DEBUG: PRESAVE Called');
if ($node->type === 'institute') {
$node->field_address[LANGUAGE_NONE][0]['value'] = $node->field_street[LANGUAGE_NONE][0]['value'] . ', ' . $node->field_postal_code[LANGUAGE_NONE][0]['value'] . ', ' . $node->field_city[LANGUAGE_NONE][0]['value'] . ', ' . $node->field_country[LANGUAGE_NONE][0]['value'];
}
} Potřeboval bych, aby čárka mezi jednotlivými proměnnými byla zobrazena jen tehdy, pokud proměnná má hodnotu. Takže pokud "field_postal_code" má hodnotu, pak vygeneruj čárku před. Pokud je prázdné, pak negeneruj nic. Poté pokud "field_city" má hodnotu, pak generuj čárku před, jinak negeneruj nic. Atp. Mohl by mi, prosím, někdo napsat kód přesně a jednoznačně. Jenom abych zkopíroval a fungovalo to? Děkuji. Už dva dny konzultuji a každý mi všude říká jak jednoduše to udělám, ale nikdo mi neřekne konkrétní řešení, takže jako totální programátorský negramot s tím prostě nehnu...:-) Děkuji za všechny rady |
||
| Zechy Profil |
Však stačí použít zmíněnou funkci implode, které předáš pole tvých hodnot. Ta pak veškerou logiku spojení do řetězce obstará za tebe.
|
||
| Tori Profil |
#3 · Zasláno: 4. 11. 2014, 20:12:22
kejmil:
„Potřeboval bych, aby čárka mezi jednotlivými proměnnými byla zobrazena jen tehdy, pokud proměnná má hodnotu.“ Můžete řetězec postupně skládat po jednotlivých proměnných a u každé ověřovat, jestli je nebo není prázdná: $value = ''; // výchozí prázdný řetězec if ($node->field_street[LANGUAGE_NONE][0]['value'] !== '') $value .= ', '.$node->field_street[LANGUAGE_NONE][0]['value']; if ($node->field_postal_code[LANGUAGE_NONE][0]['value'] !== '') $value .= ', '.$node->field_postal_code[LANGUAGE_NONE][0]['value']; // ... atd. $value = ltrim($value, ', '); // odstraníte přebytečnou čárku zleva $node->field_address[LANGUAGE_NONE][0]['value'] = $value; if:
$value = ($node->field_street[LANGUAGE_NONE][0]['value'] !== '' ? ', '.$node->field_street[LANGUAGE_NONE][0]['value'] : '') . ($node->field_postal_code[LANGUAGE_NONE][0]['value'] !== '' ? ', '.$node->field_postal_code[LANGUAGE_NONE][0]['value'] : ''); |
||
|
Časová prodleva: 11 let
|
|||
0