ještě jedna prosba

Ernst
25. srp 2015 09:22 #123174
Učím se, ale na jednu věc nemohu přijít. Mám:
$request = JFactory::getApplication()->input->get('module_search', array(), 'array');
mi vrátí null
jak mám naplnit proměnnou této třídy aby mi vracela
array (size=1)
'field_50' => string '0' (length=1)

když mi někdo napíše příklad, tak už to snad pochopím celý

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Houbák
25. srp 2015 10:00 #123175
Nechápu, co přesně potřebujete, ale zkuste si projít tento návod .
Poděkovali: Ernst

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Ernst
25. srp 2015 11:20 #123176
pročetl, snad i pochopil a napsal jsem
$jinput=JFactory::getApplication()->input->get($page->getFormControl(), array(), 'array');
$jinput->set('field_50', '1');

To však hlásí chybu Fatal error: Call to a member function set() on a non-object

To je pravděpodobně proto, že $jinput je array
(array (size=1)
'field_16' => string 'u' (length=1)

a já do ní potřebuji přidat další pole. A to právě nevím jak.
Poradíte?

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Cony
25. srp 2015 12:07 #123177
A nemělo by to být takto?
$jinput=JFactory::getApplication()->input;
$jinput->set('field_50', '1');
Poděkovali: Ernst

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Ernst
25. srp 2015 12:18 #123178
ne, to asi ne.
To mi pak
JFactory::getApplication()->input->get($page->getFormControl(), array(), 'array') vrátí null a já potřebuji
'field_50' => string '1' (length=1)

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Houbák
25. srp 2015 12:49 #123179
Máte správně udělaný ten formulář? Je potřeba, aby prvky toho formuláře to pole také vytvářely - viz. např. http://www.cs.vsb.cz/septakova/doc/php/czech/faq.html.html#faq.html.arrays

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Ernst
25. srp 2015 13:17 #123180
zavoláním toho formuláře (je to formulář filtru), se to pole plní - kolik podmínek, tolik řádků.

array (size=4)
'field_16' => string 'u' (length=1)
'field_7' =>
array (size=1)
0 => string '1' (length=1)
'photos' =>
array (size=1)
0 => string '1' (length=1)
'field_22' =>
array (size=1)
0 => string '118' (length=3)

Já tam jeden řádek navíc potřebuji přidat jeden řádek, aby to vypadalo takhle:

array (size=5)
'field_16' => string 'u' (length=1)
'field_7' =>
array (size=1)
0 => string '1' (length=1)
'photos' =>
array (size=1)
0 => string '1' (length=1)
'field_22' =>
array (size=1)
0 => string '118' (length=3)
'field_50' => string '0' (length=1)

což do proměnný jde bez problémů ($jinput[field_50]='0'), ale neumím to nastavit do té třídy

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Houbák
25. srp 2015 13:26 - 25. srp 2015 13:27 #123181
Ale ten výpis v předchozím vašem příspěvku je přece výpis vícerozměrného pole, tam žádná třída není.

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Cony
25. srp 2015 13:53 #123183

ernst napsal: JFactory::getApplication()->input->get($page->getFormControl(), array(), 'array') vrátí null a já potřebuji
'field_50' => string '1' (length=1)

Ale to jsem nepsal. Co tedy vlastně chcete, do REQUEST nastavovat proměnou field_50, nebo z něj číst proměnou field_50?
Pokud nastavit tak to bude co jsem psal, pokud číst tak třeba
$jinput=JFactory::getApplication()->input;
$field50 = $jinput->get('field_50', '1');
var_dump($field50);

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Ernst
25. srp 2015 15:08 #123185
toto pole plní formulář podmínek výběru (jak jsem psal výše).
a já do tohoto pole potřebuji přidat jednu podmínku, která není ve formulář a je zadána na základě mých vlastních podmínek.
viz odpověď výše

potřebuji do daného pole v třídě a modulu JFactory::getApplication()->input->get('module_search', array(), 'array'); doplnit ještě jedno pole

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Ernst
25. srp 2015 15:10 #123186
Pro houbák:

to co jsem psal je z tohoto:

var_dump(JFactory::getApplication()->input->get($page->getFormControl(), array(), 'array'))

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Cony
25. srp 2015 15:15 #123188
No pak teda už máte pole, tak jen do něj přidejte hodnotu, popř. jej nastavte zpět do input.
Nemůžete na poli volat metodu set, protože to není objekt ale pole. Pole žádné metody nemá.
$input = JFactory::getApplication()->input;
$pole = $input->get($page->getFormControl(), array(), 'array');
$pole['field_50'] = 'neco';
$input->set($page->getFormControl(), $pole);
Poděkovali: Ernst

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Ernst
25. srp 2015 15:34 #123189
Díky moc, to dělá co jsem chtěl.
Akorát to podle téhle přidané podmínky nefiltruje, filtruje to jen podle těch z formuláře get($page->getFormControl(), ale to už si snad najdu.

Díky Vám se v tom začínám pomaličku orientovat, děkuji mnohokrát za Váš čas

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Ernst
25. srp 2015 23:13 #123193
tak jsem to dořešil. To pole field_50 musí být i v tom vyhledávacím formuláři, akorát jsem ho tam skryl pomocí display:none.
Teď to maká bezvadně.
Děkuji všem za pomoc

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.