Autor Zpráva
Andrejjj
Profil *
dobry den, obcas si potrebujem upravit na eshope nejake elementy, viem si upravit CSS cez webovy prehliadac a zaroven si v prehliadaci zobrazit subor, v ktorom je potrebne upravu kodu prepisat. Ak mi vsak treba prepisat html, tak v prehliadaci ho sice prepisem , ale neviem ako najdem subor, ktory treba na serveri najst a prepisat, zobrazuje sa to v prehliadaci niekde ? subor a cesta k suboru ? dakujem za radu, andrej
RastyAmateur
Profil
Andrejjj:
Obávám se, že rozhodně ne tak snadno, jako ta CSSka. Samotné HTML často bývá nějak generované, obzvlášť u eshopů. Jsou to nějaké kusy doplněné o dynamický obsah a splácané dohromady. Bude potřeba na tom serveru trochu hledat. Případně si ten eshop nějak stáhnout (jen ty zdrojáky...) a nechat to najít nějaký program.
Mlocik97
Profil
RastyAmateur:
HTML nieje generované, teda nie na client-sidu, problém je ale že nepotrebuje ani samotné HTML ale skôr obsah DOM (Dokument Objekt Model), klidne prezentovaný aj ako HTML kód, ale není to HTML zdroják, a ten už je na client sidu generován z HTML a JS. To už je problém.
Keeehi
Profil
Andrejjj:
Jak píše RastyAmateur tak úprava HTML je složitější. Pokud si představuješ, že když si necháš zobrazit zdrojový kód nějaké stránky s produktem tak stejný kód bude umístěný v nějakém souboru na serveru, tak tak to určitě nebude. reálně bude rozstrkaná přes více souborů. V jednom se bude třeba řešit generování menu a tak v něm budou jen ty části HTML kódu, které se menu týkají. V jiném se řeší třeba ten formulář pro přidávání položek do košíku, tak potřebný kus HTML bude zase tam. Nějaký bude určovat obecné rozložení stránky a kde se má vykreslit který z předtím zmíněných bloků. Je to velmi zjednodušený pohled na komplexní problém ale pro ilustraci toho že vše není v jednom souboru jako u CSS to myslím že stačí.
První věc co bys měl ještě vědět, že ten kus HTML co hledáš vůbec na serveru v souboru být nemusí. Pokud je to něco dynamického, jako třeba popisek produktu, tak to bude uložené téměř určitě v databázi. Takže i kdybys prohledal všechny soubory na serveru, tak bys to nenašel.
Předpokládejme dále, že to je něco více statického, něco co se třeba objevuje na každé stránce s produktem. Pro příklad si vezměme třeba tlačítko "přidat do košíku" a ty to budeš chtít změnit, aby tam bylo "vložit do košíku". Pak je postup takový, že se připojíš na server (zřejmě nějaký webhosting) a stáhneš si kompletní zdrojový kód eshopu. Jak se připojit na server budeš mít popsané někde v administraci toho webhostingu, v nějakém jejich manuálu, nebo můžeš požádat podporu o pomoc.
Až si to celé stáhneš k sobě do počítače, budou to stovky, možná tisíce souborů. To procházet ručně je nemyslitelné. Tudíž budeš potřebovat nějaký textový editor, který umí vyhledávat ve více souborech zároveň z nějaké složky kterou mu zadáš. Poznámkový blok ti na to stačit nebude ale téměř jakýkoli jiný editor, který je určený pro programátory by to měl umět. Pak už jde jen o to zvolit správný text k vyhledání. Nemůže to být moc obecné, protože něco jako <input ti vrátí stovky výsledků a to tě moc k cíli nepřiblíží, ovšem ani moc konkrétní
<form action="/kosik/pridat"><input type="hidden" name="product_id" value="486513"><input type="submit" value="přidat do košíku">
ti nemusí pomoci, protože to naopak nemusí najít vůbec nic. Může, a proto není špatné s tím začít ale nemusí. Třeba v tomto případě by to určitě nic nenašlo a to z důvodu, že ta část 486513 je generované, jde o ID produktu a to je pro každý produkt jiný, proto nemůže být určitě v šabloně napevno zapsané. Ono tam bude totiž něco takového
<form action="/kosik/pridat"><input type="hidden" name="product_id" value="<?php echo $product->id; ?>"><input type="submit" value="přidat do košíku">
Takže je potřeba odhadnout, co dynamické je a co není a zkusit použít jen to, co není. V tomto případě by fungovalo <input type="submit" value="přidat do košíku">. Ono by fungovalo stejně i přidat do košíku protože více definicí tlačítka přidat do košíku na eshopu asi nebude.
Může se ti ale stát, že se nebude moc čeho chytnout. Předpokládejme, že kód teď vypadá takto
<form action="/kosik/pridat"><input type="hidden" name="product_id" value="<?php echo $product->id; ?>"><input type="submit" value="<?php echo Translator::translate("add_to_cart", $language)?>">
Té statické části nám už tu moc nezbylo a pokud budeš z toho dlouhého počátečního kódu stále ubírat a ubírat, protože ti to nic nenachází tak když se dostaneš na <input type="submit" value=" tak už ti to sice najde, ale kvůli obecnosti to už bude výsledků zase moc. V takovém případě hledej nějaký jiný element, který je u toho tvého blízko (čím je dál, tím je větší pravděpodobnost že bude v jiném souboru, což nechceš). Tudíž pokud se ti podaří najít <input type="hidden" name="product_id" ten tvůj hledaný <input type="submit" bude snad kousek za ním. Samozřejmě v tomto případě, pokud by ti šlo stále o původní záměr přepsat text na tlačítku tak bys musel jít teď hledat překlady, které mohou být v nějakých souborech ale stejně tak dobře i v databázi, ale o to tady v tom příkladu přímo nešlo.

Pár obecných rad.
Větší úspěšnost budeš mít s vyhledávaným textem z jednoho tagu. Je totiž větší pravděpodobnost, že na rozhraní dvou tagů bude nějaký PHP kód než uvnitř jednoho tagu. Ne že by tam být nemoh, to je i z ukázky jasné ale pravděpodobněji to bude na rozhraní dvou tagů.
Celkem dobře jako identifikátory fungují IDčka tagů, poměrně dobře mohou fungovat i class, name a tak podobně.

Ovšem i tak se občas můžeš dostat do pro tebe hůře řešitelných situací. Třeba kdyby ten eshop byl postavený nad frameworkem Nette tak celý "HTML" kód formuláře pro přidání do košíku by mohl vypadat takto {control addToCartForm}. Protože celé generování formulářů tam je dynamické a stará se o něj framework sám. Nemáš potom přímo jak to HTML upravit. Pro změnu je pak potřeba zasáhnout přímo do kódu aplikace. Což už bys zřejmě neměl dělat ty. Jednak to je zase o úroveň složitější, potřeboval bys na to dokumentaci k tomu eshopu a případně k frameworku pokud je to na nějakém postavené. Ale hlavně je tu mnohem větší riziko že při úpravách aplikačního kódu tam neúmyslně vytvoříš nějaké bezpečnostní chyby, což u eshopu rozhodně nechceš. Takže se buď smíříš se starou variantou, nebo si najdeš nějakého profesionála, který tomu rozumí.
Andrejjj
Profil *
Keeehi:
dik za info
1) a mozes poradit nejaky "editor, který je určený pro programátory by to měl umět" ? teda vyhladavat cast kodu (ak by som to chcel/musel hladat takto)
2) ja som povodnu otazku primarne myslel nie pri zobrazeni zdrojoveho kodu stranky v prehliadaci, ale pri pouziti Prozkoumat v prehliadaci, teda Ctrl+Shif+I ,
takto sa zobrazi HTML a CSS ale aj subor a cesta k suborom kazdej casti CSS (po najazde mysou nad cast CSS), a tie su tiez v roznych suboroch, ale ukaze to prehliadac, no mal som na mysli, ci taku cestu a subor kazdej CASTI KODU ukazuje niekde takto aj pre HTML (teda cez prozkoumat Ctrl+Shif+I)
Ikki
Profil
1. Každý editor - CTRL+F
2. U CSS tomu tak je, ale adresování HTML souborů tam nenajdeš. Navíc pokud máš systém který "patlá" více souborů do jednoho pro vykreslení, tak i kdyby ti to dalo odkaz "pepa.cz/html/1.html" tak ve výsledku budeš muset hledat například i v "pepa.cz/html/2.html", "pepa.cz/html/system/creator.html" (samozřejmě bereme to obrazně) a třeba i x dalších abys vůbec upravil více požadovaných částí. Prozkoumej svůj systém, určitě v něm najdeš co hledáš.
Andrejjj
Profil *
Ikki:
1. za klavesovu skratku dik, ale nemam/nepoznam ziadny editor :) - poradis nejaky editor ?
2. eshop prestashop 1.7
Ikki
Profil
1. Sublime Text, PHPStorm, PSPad, Notepad++, VIM, VS Code, Atom, Brackets a spooousty dalších.

2. V tom případě 80-90% toho co hledáš najdeš pod témou, ať už se jedná o CSS nebo HTML strukturu.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0