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

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

 

Příspěvky odeslané z IP adresy 89.24.243.–

JavaScript, AJAX, jQuery › Získání dat z DOM stránky
24. 4. 2018   #220513

#5 peter

Hele ok chápu, však já budu rád když se to vyřeší jelikož js není má silná stránka. Kdybys cokoliv potřeboval poslat stačí říct.

JavaScript, AJAX, jQuery › Získání dat z DOM stránky
24. 4. 2018   #220510

#2 peter

To znamená že na každý ten item co tam mám si udělám ten onclink a na konci v tom shrnutí budu mít vypsáno co si dotyčný vybral a jak to pošlu na presenter? třeba do té mé funkce na form jelikož tam mám udělané že na konci když kliknu na objednat vyskočí modal a tam vyplní člověk své údaje a pak dá odeslat a chci aby to vzalo data jak z modalu ( Což funguje ) tak zároveň i ty data co si člověk naklikal.

a to všechno se mi poslalo sem

/**
     * Funkce se vykonaná při úspěsném odeslání kontaktního formuláře a odešle email.
     * @param Form $form        kontaktní formulář
     * @param ArrayHash $values odeslané hodnoty formuláře
     */
    public function configureFormSucceeded($form, $values)
    {
        try {
            bdump($values);
            /* $mail = new Message;
             $mail->setFrom($values->email)
                 ->addTo(self::EMAIL)
                 ->setSubject('Poptávka z webu')
                 ->setBody($values->message);
             $mailer = new SendmailMailer;
             $mailer->send($mail);*/
            $this->flashMessage('Nezávazná poptávka úspěšně odeslána obchodníkům.', self::MSG_SUCCESS);
            $this->redirect('this');
        } catch (InvalidStateException $ex) {
            $this->flashMessage('Poptávku se nepodařilo odeslat! Chybu nahlašte na webmaster@ryzidomov.cz', self::MSG_ERROR);
        }
    }
JavaScript, AJAX, jQuery › Získání dat z DOM stránky
24. 4. 2018   #220508

Zdravím,

mám konfigurátor ve kterém načítám data z db do js a tam si uživatel dle svých požadavků vybere co se mu líbí a poslední step je kompletní soupis toho co si uživatel vybral viz: https://ctrlv.cz/shots/2018/04/23/VXzN.png

Ale problém je v tom že si tuto volbu ukládá do DOM a já za boha nevím jak získat data tak abych je mohl předat to presenteru a mohl s nimi pracovat.

 Tohle je detail.lette ( ve kterém pracuji s stepy jako barva,příslušenství )

<li data-selection="colors" class="builder-step first-load">
    <section n:foreach="$colors as $color" class="cd-step-content">
        <header>
            <h1>Barva</h1>
            <span class="steps-indicator">Step <b>2</b> of 4</span>
        </header>
        <ul class="cd-product-previews">
            <li class="selected" n:for="$i = 0; $i < $color->images_count; $i++"><img
                        src="{$basePath}/configurator/products/{$product->configure_id}/col_{$color->img_color_id}_{$i}.jpg"
                        alt="Product Preview" class="product-preview"></li>
        </ul>

        <ul  class="cd-product-customizer">
            <li data-content="{$color->title}  - {$color->price}" data-price="{$color->price}" class="selected"><a data-color="white" href="#0">{$color->title} - CZK {$color->price}</a>
            </li>
        </ul>
    </section>
</li>

<li data-selection="accessories" class="builder-step first-load">
    <section class="cd-step-content">
        <header>
            <h1>Accessories</h1>
            <span class="steps-indicator">Step <b>3</b> of 4</span>
        </header>

        <ul n:foreach="$acess as $ace" class="accessories-list options-list">

            <li class="js-option" data-price="{$ace->price}">
                <p>{$ace->title}</p>

                <span class="price">CZK {$ace->price}</span>

                <div class="check"></div>
            </li>

        </ul>
    </section>
</li>

<li data-selection="summary" class="builder-step first-load">
    <section class="cd-step-content">
        <header>
            <h1>Summary</h1>
            <span class="steps-indicator">Step <b>4</b> of 4</span>
        </header>

        <ul class="summary-list">
            <li>
                <h2>Model</h2>

                <img n:for="$i = 0; $i < $product->images_count; $i++"
                        src="{$basePath}/configurator/products/{$product->configure_id}/{$product->configure_id}_{$i}.jpg"
                        alt="{$product->title}" class="product-preview">

                <h3>{$product->title}</h3>

                <p>
                    {$product->short_description|striptags}
                </p>
            </li>

            <li data-summary="colors">
                <h2>Barva</h2>

				<span class="summary-color">
					<em class="color-swatch" data-color="red"></em>
					<em class="color-label">Red Passion</em>
				</span>
            </li>

            <li data-summary="accessories">
                <h2>Příslušenství</h2>

                <ul class="summary-accessories"></ul>
            </li>
        </ul>
    </section>
</li>

Tohle je js který na konci vypíše co si člověk vybral.

	ProductBuilder.prototype.createSummary = function() {
		var self = this;
		this.steps.each(function(){
			//this function may need to be updated according to your builder steps and summary
			var step = $(this);
			if( $(this).data('selection') == 'colors' ) {
				//create the Color summary
				var colorSelected = $(this).find('.cd-product-customizer').find('.selected'),
					color = colorSelected.children('a').data('color'),
					colorName = colorSelected.data('content'),
					imageSelected = $(this).find('.cd-product-previews').find('.selected img').attr('src');
				
				self.summary.find('.summary-color').find('.color-label').text(colorName).siblings('.color-swatch').attr('data-color', color);
				self.summary.find('.product-preview').attr('src', imageSelected);
			} else if( $(this).data('selection') == 'accessories' ) {
				var selectedOptions = $(this).find('.js-option.selected'),
					optionsContent = '';

				if( selectedOptions.length == 0 ) {
					optionsContent = '<li><p>Žadné příslušenství nebylo vybráno;</p></li>';
				} else {
					selectedOptions.each(function(){
						optionsContent +='<li><p>'+$(this).find('p').text()+'</p></li>';
					});
				}

				self.summary.find('.summary-accessories').children('li').remove().end().append($(optionsContent));
			}
		});
	}

A potřeboval bych aby mi to vrátilo všechny data co si tam člověk vybral a nějak je poslal do presenteru něco jako u formu je hodnota $values a v ní mám dané data které si pak můžu vypsat.

DEMO: https://codyhouse.co/demo/product-builder/index.html 

Díky moc za případnou pomoc :)

PHP › Úprava xml feedu
13. 3. 2018   #219962

Tak problém není že neexistuje ve feedu ale že byl změněn tudíž v db už neodpovídá produkt tomu který je ve xml feedu... 

PHP › Úprava xml feedu
13. 3. 2018   #219961

Zdravím, mám model který pracuje s feedem dodavatele.

    public function zpracujXmlZbozi($xml) {

        foreach ($xml->StoItem as $item) {
            $idKat = $this->connection->query(sprintf("SELECT product_id FROM product WHERE code = '%s' LIMIT 1", $item->Code))->fetch();
            $nazev = $idKat ? $this->connection->query(sprintf("SELECT title FROM product WHERE product_id = %s LIMIT 1", $idKat->product_id))->fetch() : false;

            if (!$nazev) {
                Debugger::log($item->Id . ': ' . $item->Name, 'import');

                $dataCatalog = [
                    'product_id' => intval($item->Id),
                    'code' => (string) ($item->Code),
                    'url' => Strings::webalize($item->Name),
                    'title' => (string) $item->Name,
                    'short_description' => (string) $item->Note,
                    'description' => (string) $item->Note,
                    'price' => intval($item->PriceEU),
                    'old_price' => intval($item->PriceDea),
                    'rating_sum' => 0,
                    'ratings' => 0,
                    'stock' => intval($item->QtyFree),
                    'images_count' => 1,
                    'hidden' => 0                    
                ];

                $this->connection->query('INSERT INTO product', $dataCatalog);
                
                $lastId = $this->connection->getInsertId();

                /* katerogie */
                foreach (['Level1', 'Level2', 'Level3'] AS $_level) {
                    $tmp = explode(' ', $item->SPresentTree->{$_level});
                    unset($tmp[0]);
                    $level = implode(' ', $tmp);

                    $kategorieId = $this->connection->query(sprintf('SELECT category_id FROM category WHERE title = "%s" LIMIT 1', $level))->fetch();
                    if ($kategorieId) {
                        $dataKat = [
                            'product_id' => $lastId,
                            'category_id' => $kategorieId->category_id
                        ];
                        $this->connection->query('INSERT INTO product_category', $dataKat);
                    }
                }

                if ($item->ImgUrl) {
                    $count = count(\Nette\Utils\Finder::findFiles(intval($item->Id) . '_*.jpg')->in($this->slozka));



                    $imageId = preg_replace("/(.*)stiid=(.*)/", "$2", (string) $item->ImgUrl);
                    $filename = intval($item->Id) . '_1.jpg';
                    if (!file_exists($this->slozka . '/' .$filename)) {
                        $components = $this->slozka . '/' . $lastId;
                        mkdir($components, 0777, true);
                        copy($item->ImgUrl, $this->slozka . $lastId . '/' . $filename);
                        $count++;
                        $this->connection->query('UPDATE product SET images_count= ' . $count . ' WHERE product_id = ' . $lastId);
                    }

                    $this->createThumb($item->Id, $this->slozka . $lastId . '/' . $filename);

                }
            } else {
                $lastId = $this->connection->query(sprintf("SELECT product_id FROM product WHERE product_id = %s LIMIT 1", $idKat->product_id))->fetch()->product_id;
                foreach (['Level1', 'Level2', 'Level3'] AS $_level) {
                    $tmp = explode(' ', $item->SPresentTree->{$_level});
                    unset($tmp[0]);
                    $level = implode(' ', $tmp);

                    if ($level) {
                        $kategorieId = $this->connection->query(sprintf('SELECT category_id FROM category WHERE title = "%s" LIMIT 1', $level))->fetch();
                        if ($kategorieId) {
                            $bindCat = $this->connection->query(sprintf("SELECT product_id FROM product_category WHERE product_id = %s AND category_id = %s LIMIT 1", $lastId, $kategorieId->category_id))->fetch();
                            if (!$bindCat) {
                                $dataKat = [
                                    'product_id' => $lastId,
                                    'category_id' => $kategorieId->category_id
                                ];
                                $this->connection->query('INSERT INTO product_category', $dataKat);
                            }
                        }
                    }
                }

                /* UPDATE */


                $this->connection->query(sprintf('UPDATE product SET stock = %s WHERE product_id = %s',intval($item->QtyFree), $lastId));

            }
        }
    }

A mám tam udělaný i update skladových zásob ale všiml jsem si že můj dodavatel už některé produkty které já v databízi mám již nemá... Potřeboval bych tedy poradit jak udělat kontrolu že pokud není produkt v xml feedu tak se z db vymaže.. jelikož tam mám pak problém že mi haprujou Idčka a hádají se...

Nebo nějaký jiný nápad?

Díky všem za pomoc 

CSS › Responzivní menu
7. 2. 2018   #219687

#3 peter

Díky za rady :)

CSS › Responzivní menu
7. 2. 2018   #219680

Zdravím mám na e-shopu menu https://www.bellugio.cz ale potřeboval bych ho upravit že když se člověk divá na telefonu bude skryto a člověk si ho může rozkliknout tak jak je to vrchní menu... 

<div class="side-menu animate-dropdown outer-bottom-xs">
                        <div class="head"> Bellugio
                        </div>
                        <nav class="yamm megamenu-horizontal menu-tree" role="navigation">
                           <ul class="nav nav-list tree out">
        {foreach $categories as $categoryArray}
                {* Deklarace pomocných proměných. *}
                {var $category = $categoryArray['category'], $subcategories = $categoryArray['subcategories']}
                {if $subcategories}
                        {* Vykreslení kategorie se sub-kategoriemi. *}
                        <li><a class="tree-toggler nav-header" data-path="{$category->url}" style="color: #f39c12;">{$category->title}</a>
                            {control categories, $subcategories}
                        </li>
                {else}
                        {* Vykreslení kategorie bez sub-kategorií. *}
                        <li><a href="{plink :Eshop:Product: $category->url}" data-path="{$category->url}">{$category->title}</a></li>
                {/if}
        {/foreach}
</ul>

                        </nav><!-- /.megamenu-horizontal -->
                    </div><!-- /.side-menu -->

Používám v nette přímo výpis z db do treeview ale potřebuji to upravit na responzivitu..

Díky všem za rady :)

Ivo
Webové servery (Apache, IIS...), .htaccess › HTTPS, UTF-8 a Firefox
7. 9. 2010   #133381

Aha, stačilo zaremovat v konfiguraci Apache AddDefaultCharset a je hotovo. Já truhlík :smile13: Díky.

Ivo
Webové servery (Apache, IIS...), .htaccess › HTTPS, UTF-8 a Firefox
7. 9. 2010   #133380

Ahoj,
mám podobný problém. Na locahostu (Win XP) mi běží Apache 2.2. Jednoduchá stránka:



<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Pokus</title>
</head>

<body>
ěščřžýáíéúůťň
ĚŠČŘŽÝÁÍÉÚŮŤŇ
</body>
</html>


se ve Firefoxu (3.6.8) zobrazí v kódování windows-1250. Teprve po ručním nastavení utf-8 je čitelná. V IE8 je vše OK. Stejně tak když Firefoxu nejdřív pošlu v php header s kódováním utf-8.
Myslím, že je to bug Firefoxu (kašle na charset v html head) možná v kombinaci se špatně nakonfigurovaným Apachem. Na produkčním serveru na netu (kde se o Apache stará profík) funguje vše OK.
Potřebuji mít na lokále soubory v různém kódování a používat i Firefox. Nevíte někdo, jak to nastavit/opravit (Firefox, Apache), aby to šlapalo?
Díky Ivo

 

 

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