Právě je 21 lis 2018 11:14

Všechny časy jsou v UTC + 1 hodina




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 11 ]  Přejít na stránku 1, 2  Další
Autor Zpráva
 Předmět příspěvku: PrestaShop - Šablona kombinací v backend - kde najít?
PříspěvekNapsal: 11 črc 2018 06:11 
C4 zákazník
Uživatelský avatar

Registrován:
06 čer 2014 18:28
Příspěvky:
583
Zdravím,

Prosím o pomoc, v ktorom súbore sa generuje tento template pre výpis kombinácií? Snažil som sa to nájsť ale márne: (viď obrázok)

Časť z kódu:
Kód:
<table id="table-combinations-list" class="table configuration">
         <thead>
            <tr class="nodrag nodrop">
                                             <th class=" left">
                  <span class="title_box">
                                             Attribute - value pair
                                                            </span>
               </th>
...
...
...
</tr>
</tbody>

   </table>



Ďakujem


Přílohy:
Snímka obrazovky (119).png
Snímka obrazovky (119).png [ 72.01 KiB | Zobrazeno 461 krát ]
Nahoru
 Profil  
 
 Předmět příspěvku: Re: PrestaShop - Šablona kombinací v backend - kde najít?
PříspěvekNapsal: 11 črc 2018 09:04 
C4 zákazník
Uživatelský avatar

Registrován:
06 čer 2014 18:28
Příspěvky:
583
Ešte doplním že sa jedná o PS 1.6.1.17 a chcel by som do riadku kódu:
Kód:
<td class=" left">#Veľkosť - XXL, Farba - Modrá</td>


Doplniť
Kód:
id="Farba"


Kde "Farba" bude samozrejme aktuálna farba kombinácie.

Viete mi s tým poradiť? Ďakujem :)


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PrestaShop - Šablona kombinací v backend - kde najít?
PříspěvekNapsal: 12 črc 2018 13:12 
C4 zákazník

Registrován:
13 zář 2013 14:02
Příspěvky:
188
Dobrý den,
šlo by řešit javascriptem (Buď tento script volat ve zdrojových souborech PS a nebo použít doplněk prohlížeče Tampermonkey pro Chrome).

Poté querySelectorem chytit danou tabulku, třeba nějak takhle:

Kód:
tabulka = document.getElementById("table") nebo querySelector('#table')


následně chytit buňky:

Kód:
d = t.getElementsByTagName("tr");
r = d.getElementsByTagName("td");


tím vznikne pole s hodnotami, ve kterém pak cyklem projít každou hodnotu:

Kód:
for (var i=0; i<Pole.length; i++) {
zde do proměnné načíst hodnotu td a následně podmínka
   if (proměnná[index].includes("Modrá") == true) {
           proměnná.setAttribute("Farba", ID)
       }
}



Elegantněji by to bylo úpravou daného php, které tabulku/hodnoty generuje, smarty ale neovládám.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PrestaShop - Šablona kombinací v backend - kde najít?
PříspěvekNapsal: 12 črc 2018 13:15 
C4 zákazník

Registrován:
13 zář 2013 14:02
Příspěvky:
188
Co se týče hledání tabulky id="table-combinations-list", pro tyto účely používám AstroGrep (http://astrogrep.sourceforge.net/download), který najde daný string ve zdrojovém kódu. Je třeba mít kopii shopu na localhostu.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PrestaShop - Šablona kombinací v backend - kde najít?
PříspěvekNapsal: 12 črc 2018 14:12 
C4 zákazník
Uživatelský avatar

Registrován:
06 čer 2014 18:28
Příspěvky:
583
Ďakujem, skúsim to.

Skúšal som rôzne programy, ale naozaj tento string mi nenašlo, preto nechápem kde to je. Buď mi chýba nejaký súbor na localhoste, alebo netuším. Proste mi to nenašlo.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PrestaShop - Šablona kombinací v backend - kde najít?
PříspěvekNapsal: 12 črc 2018 14:26 
C4 zákazník
Uživatelský avatar

Registrován:
06 čer 2014 18:28
Příspěvky:
583
Inak ešte aby som upresnil o čo mi ide. Potrebujem dať do toho html kódu len nejakú classu alebo id, aby som mohol spraviť niečo takéto:


Přílohy:
Snímka obrazovky (121).png
Snímka obrazovky (121).png [ 76.41 KiB | Zobrazeno 419 krát ]
Nahoru
 Profil  
 
 Předmět příspěvku: Re: PrestaShop - Šablona kombinací v backend - kde najít?
PříspěvekNapsal: 12 črc 2018 15:04 
C4 zákazník

Registrován:
13 zář 2013 14:02
Příspěvky:
188
Pokud jsem správně pochopil, tak chcete dané buňce přidat class/id="barva" a v css pak specifikovat, jaká barva se má zobrazit. Bude ale potřeba nějaká logika, která do daného class/id doplní správnou barvu pro všechny buňky. Jak jsem psal výše, ideální by bylo upravit script, který celou tabulku generuje na serveru. Existuje i řešení, které pak dané buňky "obarví" až na úrovni front-endu ve Vašem prohlížeči- jak by mohlo vypadat jsem uvedl výše. Nestačí tedy jen přidat class/id staticky do html (to by se Vám pak všechny buňky obarvily stejnou barvou), je třeba logika, která podle něčeho bude doplňovat hodnotu do atributu id.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PrestaShop - Šablona kombinací v backend - kde najít?
PříspěvekNapsal: 12 črc 2018 15:08 
C4 zákazník

Registrován:
13 zář 2013 14:02
Příspěvky:
188
Ještě doplním. V cyklu který jsem uvedl výše:

Kód:
for (var i=0; i<Pole.length; i++) {
zde do proměnné načíst hodnotu td a následně podmínka
   if (proměnná[index].includes("Modrá") == true) {
           proměnná.setAttribute("Farba", ID)
       }
}


bude třeba přidat tolik podmínek ( if (proměnná[index].includes("Modrá") == true) ) , kolik máte barev...


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PrestaShop - Šablona kombinací v backend - kde najít?
PříspěvekNapsal: 16 črc 2018 17:19 
C4 zákazník
Uživatelský avatar

Registrován:
06 čer 2014 18:28
Příspěvky:
583
Ďakujem,

Viete mi prosím napísať celý vzor toho kódu? Tie farby si samozrejme dosadním. Najlepšie by však bolo ešte asi nejaké iné, možno jendoduhšie riešenie, ďakujem pekne.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PrestaShop - Šablona kombinací v backend - kde najít?
PříspěvekNapsal: 16 črc 2018 20:20 
C4 zákazník

Registrován:
13 zář 2013 14:02
Příspěvky:
188
Dobrý den,
kombinace nepoužívám, takže přesně nevím, jak vypadá dané html, ale z toho co jste psal výše předpokládám:
Kód:
<table id="table-combinations-list" class="table configuration">
<thead><tr class="nodrag nodrop"><th class=" left"><span class="title_box">Attribute - value pair</span></th></tr>
</thead>         
<tbody>
<tr><td class=" left">#Veľkosť - XXL, Farba - Modrá</td></tr>
<tr><td class=" left">#Veľkosť - XXL, Farba - Zelená</td></tr>
<tr><td class=" left">#Veľkosť - XXL, Farba - Červená</td></tr>
</tbody>
</table>

tak by šlo pomocí javascriptu přidávat atribut ID takto:
Kód:
var tds = document.getElementsByTagName("td");
var text;
for (var i = 0; i<tds.length; i++) {
  text = tds[i].textContent;
  if (text.includes("Modrá") == true ) {
   tds[i].setAttribute("id", "modra");
  }
  if (text.includes("Zelená") == true ) {
   tds[i].setAttribute("id", "zelena")
  }
  if (text.includes("Červená") == true ) {
   tds[i].setAttribute("id", "cervena")
  }
}


Funkčnost můžete otestovat zde: https://jsfiddle.net/sx6hbmrf/34/ (Kliknutím na tlačítko Run vlevo nahoře). Pokud budete přidávat tento script do daného .tpl, je třeba ho přidat nakonec, aby již v DOMu tabulka existovala (jinak script skončí chybou) a je třeba ho vložit mezi smarty tag {literal} takto:
Kód:
{literal}
<script type="text/javascript">
var tds = document.getElementsByTagName("td");
var text;
for (var i = 0; i<tds.length; i++) {
  text = tds[i].textContent;
  if (text.includes("Modrá") == true ) {
   tds[i].setAttribute("id", "modra");
  }
  if (text.includes("Zelená") == true ) {
   tds[i].setAttribute("id", "zelena")
  }
  if (text.includes("Červená") == true ) {
   tds[i].setAttribute("id", "cervena")
  }
}
</script>
{/literal}


Jak jsem psal výše, script lze také automaticky spouštět pomocí chrome doplňku Tampermonkey, který umožňuje běh javascriptu "nad" jakoukoliv stránkou podle zadaných podmínek.


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 11 ]  Přejít na stránku 1, 2  Další

Všechny časy jsou v UTC + 1 hodina


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
FTP Uploader
Staňte se naším zákazníkem!
Hledáme kolegy
PrestaShop partneři

Seznam všech partnerů

PrestaShop Hosting
Návody pro C4

© 2009-2018 ČESKÝ WEBHOSTING s.r.o. Kontaktní e-mail: forum@c4.cz
Diskuzní fórum využívá technologie: phpBB, phpBB-SEO.com, phpBB.cz