Přihlásit se

Joomla 5.0.3 a 4.4.3 bezpečnostní aktualizace (02 dub 2024)

Joomla 5.0.3 a 4.4.3 je nyní k dispozici. Jedná se o bezpečnostní vydání pro Joomla 4.x. a 5.x.

pozicování

07. říj 2015 00:46 #123816
Odpověď od Ernst
Joomla Expert
Ještě mi někdo prosím poraďte, jak jednoduše vypíšu proměnné z poznamka.php

07. říj 2015 09:27 #123822
Odpověď od Cony
Moderátor
Zkuste se už opravdu trochu zorientovat v terminologii a princicpech. Co to znamená "Vypíšu proměnné"? Kam? Proč?

Základ o tom co je to Controller, Model nebo View si můžete pročíst zde .

Vy jste se ro\zhodl vytvořit si vlastní Controller, měl by jste tedy správně pro něj mít i vlastní model a view. Asi jednodušší cesta by pro Vás mohla být jen rozšířit stávající controller messages o novou funkci poznamka a pak míso poznamka.send volat adresu mesages.poznamka.

07. říj 2015 12:37 - 07. říj 2015 12:39 #123827
Odpověď od Ernst
Joomla Expert
vypsat proměnné potřebuji jen kvůli ladění.
var_dump echo, alert mi nic nevypíše (tedy to hned zmizí, protože jak se zavře to formulářové okno to asi hned zmizí.
zkoušel jsem i print() ale to také nějak nejde.
Jde to uložit do souboru?
Díky za článek, čtu si ho.

Té poslední větě rozumím tak, že messages je název toho php a send nebo poznámka je funkce v té třídě?
Zkusit ti mohu, ale v čem je to lepší?
Já v poznamka.php ve funkci send vyhodím ty další věci, který nemám ještě zmapovaný a udělám si tam vlastní zápis do databáze. Správně to asi není, ale fungovat by to mělo?
Ale abych se zorientoval, potřebuji si vypsat proměnný ve funkci send

Ta funkce send zapíše nebo volá zápis do databáze a to nevím přesně jak a luštil bych to ještě pár dní.
A já to potřebují zapsat do jiné tabulky databáze, proto bych to nejraději udělal rovnou v tom poznamka - send

07. říj 2015 13:02 #123829
Odpověď od Cony
Moderátor

ernst napsal: vypsat proměnné potřebuji jen kvůli ladění.
var_dump echo, alert mi nic nevypíše (tedy to hned zmizí, protože jak se zavře to formulářové okno to asi hned zmizí.
zkoušel jsem i print() ale to také nějak nejde.

Znovu, var_dump, echo atd. Vám při volání PHP skriptu zapíše něco do výstupu toho skriptu. To ještě neznamená, že se Vám to zobrazí na obrazovce. Pokud voláte skript pomocí AJAX, musíte si zobrazení zařídit sám.

ernst napsal: Jde to uložit do souboru?

Ano, proč by nešlo, buď standardními funkcemi PHP, nebo můžete použít funkce pro logování Joomly .

ernst napsal: Té poslední větě rozumím tak, že messages je název toho php a send nebo poznámka je funkce v té třídě?
Zkusit ti mohu, ale v čem je to lepší?

Nebudete muset řešit (kopírovat) tolik věcí.
Poděkovali: Ernst

07. říj 2015 15:00 #123835
Odpověď od Ernst
Joomla Expert
tak s tím uložením do logu jsem se nějak popral a tak mi to stačí.
funkce send je
Code:
public function send() { jimport ("joomla.log.log "); JLog::addLogger( array('text_file' => 'LOG1.TXT'), JLog::ALL, array('com_helloworld')); $settings = LoveFactoryApplication::getInstance()->getSettings(); $model = $this->getModel('Message'); $data = JFactory::getApplication()->input->get('message', array(), 'array'); foreach ($data as $t) { JLog::add('data'.$t.chr ( 012 ));} $response = array(); if ($model->send($data)) { $response['status'] = 1; $response['message'] = FactoryText::plural('poznamka_task_send_success', $settings->approval_messages); } else { $response['status'] = 0; $response['message'] = FactoryText::_('message_task_send_error'); $response['error'] = $model->getError(); } foreach ($response as $t) { JLog::add('response'.$t.chr ( 012 ));} $this->checkMembershipRestrictionRedirection($model, $response); // Check if it's Ajax request. if ($this->isAjaxRequest()) { $this->renderJson($response); return true; } if ($response['status']) { if (!isset($response['redirect'])) { $response['redirect'] = FactoryRoute::view('outbox'); } } else { if (!isset($response['redirect'])) { $response['redirect'] = FactoryRoute::view('compose'); } JFactory::getApplication()->enqueueMessage($response['error'], 'error'); } $this->setRedirect($response['redirect'], $response['message']); return true; }
a výstup je
Code:
2015-10-07T12:53:02+00:00 INFO ::1 - data22222222 2015-10-07T12:53:02+00:00 INFO ::1 - data11 2015-10-07T12:53:03+00:00 INFO ::1 - response1 2015-10-07T12:53:03+00:00 INFO ::1 - responsePoznámka úspěšně odeslána!

takže v $data jsou hodnoty z formuláře a ty si mohu zapsat do tabulky databáze.

Ještě musím najít, kde se volá ten zápis do původní tabulky databáze (tam to nepotřebuji) a vyrušit to.

Poradíte mi nebo to mám dělat metodou pokus - omyl?

07. říj 2015 16:07 #123836
Odpověď od Cony
Moderátor
Code:
if ($model->send($data)) {
tedy funce send v modelu message

Powered by Fórum