Anonymní profil peter – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil peter – Programujte.comAnonymní profil peter – Programujte.com

 

Příspěvky odeslané z IP adresy 2001:718:2601:258:b01b:ab...–

peter
PHP › Problém s PersonFormControl
23. 11. 2017   #218722

Tak si tam muzes registrovat guesty a zakaznika prihlasit na neprihlaseneho guesta. Ale musi se to napsat do kodu nekde driv.
Nebo, jeste je tu moznost, ze ti forko cast kodu odmazalo. Tak to mozna ulozit na jsfiddle.net. On sice bude pindat, ze to neni javascript, ale snad nic nesmaze :)
 

peter
PHP › Problém s PersonFormControl
23. 11. 2017   #218721

Zkusim ti popsat, co to presne dela 

function actionRegister() {
   $form->onSuccess[] = function...
   }

Nic vic ten kousek kodu nedela. Co dela ta funkce neni vubec podstatne, protoze ta se nejspis spousti, az kdyz je vse success. Cili tahle udalost nastava az po tom, co chces zmenit.

peter
PHP › Problém s PersonFormControl
23. 11. 2017   #218719

jAkErCZ - jj, hadas spravne. Pustil jsem si pspad, zkopiroval tvuj text, nasel v menu preformatovat jako strukturovany css, zkopiroval, klikl na forku na tlacitko '<?', vlozil, klikl vlozit, klikl odeslat :) Mohl jsi to udelat sam v dalsi zpravicce. Na to neni treba moderatora. Stejne je dost obtizne nejakeho najit :)

peter
PHP › Problém s PersonFormControl
23. 11. 2017   #218718

A mimochodem, ta funkce resi registraci, pokud je zadane $values->user_id. Nic s paswordem ho nezajima. Myslim si, ze nebude pouzitelna. Treba napsat nejaky kod tam, kde ji volas.
 

peter
PHP › Problém s PersonFormControl
23. 11. 2017   #218716

ok, verze 2, pspad tam nezformatoval ten radek v komentari.  

<?php
/** Registrace nové osoby během dokončení objednávky. */
public function actionRegister() {
// Doplníme vlastní zpracování k úspěšnému odeslání formuláře pro správu osob. 
        $this['personForm']->onSuccess[] = function (Form $form, ArrayHash $values) {
	if (isset($values->user_id)) $this->flashMessage('Byl jste úspěšně registrován.', self:: MSG_SUCCESS);
try {
	$this->orderManager->setPerson($values->person_id);
}
catch (InvalidArgumentException $ex) {
	$this->flashMessage('Nepodařilo se vytvořit osobu se zadanými údaji.', self:: MSG_ERROR);
}
	$this->redirect('this');
	// Později zde budeme přesměrovávat na pokračování v nákupu.
}
	;
}
peter
PHP › Problém s PersonFormControl
23. 11. 2017   #218715

   

<?php
/** Registrace nové osoby během dokončení objednávky. */
public function actionRegister() {
// Doplníme vlastní zpracování k úspěšnému odeslání formuláře pro správu osob. $this['personForm']->onSuccess[] = function (Form $form, ArrayHash $values) {
	if (isset($values->user_id)) $this->flashMessage('Byl jste úspěšně registrován.', self:: MSG_SUCCESS);
try {
	$this->orderManager->setPerson($values->person_id);
}
catch (InvalidArgumentException $ex) {
	$this->flashMessage('Nepodařilo se vytvořit osobu se zadanými údaji.', self:: MSG_ERROR);
}
	$this->redirect('this');
	// Později zde budeme přesměrovávat na pokračování v nákupu.
}
	;
}
peter
HTML / XHTML › Nefunkční kodovaní UTF-8
23. 11. 2017   #218714

weroro - Jo tak, to jsem si nevsiml, obrazek nekoukal, v textu to nezminil,  ze to ma pres file///. To je vlastne dalsi problem, jak pises, soubor je treba ulozit jako utf8. Win defaultne uklada jako win1250.
Zkusil bych na editaci PSPad, ten umi vytvorit utf8 a tusim i konvertovat.Pripadne v nem udelat utf8 a prec ctrl+c/v tam prenest obsah.

peter
Java › Najkratšia cesta s podmienkami
23. 11. 2017   #218705

'dĺžky hrán, cez ktoré vedie cesta musia rásť'
Jestli je to chapano tak, ze vzdalenost mezi body musi narustat, 1 + 2 + 3, tak nasledujici vzdalenost musi byt vetsi nez predchozi, jednoducha podminka. Ulozis si predchozi hodnotu treba do tmp a porovnas v dalsim kroku s tmp. Nebo, pokud do pole s cestou ukladas i vzdalenost, tak to vytahnes z pole 

if (cesta[i-1]['vzdalenost'] < nova_trasa['vzdalenost']) {...}

'cesta musí prechádzať cez najviac x hrán'
Kdyz uz mas treba delku cesty 6 bodu a sesty bod neni konecny bod B, tak cyklus prerusis break (continue) s tim, ze nejakym booleanem budes rikat, ze cesta neni platna.
Preruseni cyklu je break, prejit k dalsi hodnote je continue.

peter
HTML / XHTML › Nefunkční kodovaní UTF-8
23. 11. 2017   #218704

Posli link.

Prohlizec si vybira kodovani:
- co mu posle server (php header() / iconv())
- sam si urci podle obsahu
- co mu napises do html meta

Proste, kdyz je tam kodovani win-1250 nebo latin-1 ze serveru, tak si to neprepina na utf-8 a ten meta tag vesele ignoruje.

peter
PHP › Jak vnořit pole do jednoho
23. 11. 2017   #218703

Jj, ten json tam je, ale nebylo jasne, vysvetleno, k cemu patri. Treba se bude dat pouzit neco z googlu. Mimochodem, mas tam htmlspecialchars? Json se zpetne dekoduje na data a treba na serverech jako zbozi.cz jsou na to citlivy, kdyz je tan znak & < >.

google = php convert json to xml

function array2xml($array, $xml = false){

    if($xml === false){
        $xml = new SimpleXMLElement('<result/>');
    }

    foreach($array as $key => $value){
        if(is_array($value)){
            array2xml($value, $xml->addChild($key));
        } else {
            $xml->addChild($key, $value);
        }
    }

    return $xml->asXML();
}

$raw_data = file_get_contents('http://pastebin.com/raw.php?i=pN3QwSHU');
$jSON = json_decode($raw_data, true);

$xml = array2xml($jSON, false);

echo '<pre>';
print_r($xml);

--- 

    protected function display($result) {
        if (empty($this->output_type) || strtolower($this->output_type) == "json") {
            header('Content-type: application/json');
            echo json_encode($result);
        } else if (strtolower($this->output_type) == "xml") {
            header('Content-type: application/xml');
            echo '<?xml version="1.0"?>';
            echo "<result>";
            $xml_array = json_decode(json_encode($result), true);
            $this->xmlWalker($xml_array, "start");
            echo "</result>";
        } else { //catch all why not
            header('Content-type: application/json');
            echo json_encode($result);
        }
    }

    protected function xmlWalker($xml_array, $parent) {
         foreach($xml_array as $tag => $value) {
            if ((int)$tag === $tag) {
                $tag = mb_substr($parent, 0, -1);
            }
            echo "<" .$tag. ">";
            if (is_array($value)) {
                $this->xmlWalker($value, $tag);
            } else {
                echo $value;
            }
            echo "</" .$tag. ">";
        }
    }

--- 

$xml = new SimpleXMLElement('<root/>');
$arr = json_decode($your_array, true);
array_walk_recursive($arr, array ($xml,'addChild'));

--- 

$xml = new SimpleXMLElement('<root/>');
$this->arrayToXml($array, $xml);

function arrayToXml($array, &$xml){
    foreach ($array as $key => $value) {
        if(is_array($value)){
            if(is_int($key)){
                $key = "e";
            }
            $label = $xml->addChild($key);
            $this->arrayToXml($value, $label);
        }
        else {
            $xml->addChild($key, $value);
        }
    }
}

---
https://gist.github.com/…ngue/4982951 (new DomDocument)
http://php.net/…implexml.php

<?php
function array2XML($arr,$root) {
$xml = new SimpleXMLElement("<?xml version=\"1.0\" encoding=\"utf-8\" ?><{$root}></{$root}>");
$f = create_function('$f,$c,$a','
        foreach($a as $v) {
            if(isset($v["@text"])) {
                $ch = $c->addChild($v["@tag"],$v["@text"]);
            } else {
                $ch = $c->addChild($v["@tag"]);
                if(isset($v["@items"])) {
                    $f($f,$ch,$v["@items"]);
                }
            }
            if(isset($v["@attr"])) {
                foreach($v["@attr"] as $attr => $val) {
                    $ch->addAttribute($attr,$val);
                }
            }
        }');
$f($f,$xml,$arr);
return $xml->asXML();
}
?>

--- 

// tady by se asi pouzil prevod z array $array = json_decode($json,TRUE);
<?php
function assocArrayToXML($root_element_name,$ar)
{
    $xml = new SimpleXMLElement("<?xml version=\"1.0\"?><{$root_element_name}></{$root_element_name}>");
    $f = create_function('$f,$c,$a','
            foreach($a as $k=>$v) {
                if(is_array($v)) {
                    $ch=$c->addChild($k);
                    $f($f,$ch,$v);
                } else {
                    $c->addChild($k,$v);
                }
            }');
    $f($f,$xml,$ar);
    return $xml->asXML();
}
?>

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032021 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý