| Autor | Zpráva | ||
|---|---|---|---|
| snazimse Profil |
Zdravím,
narazil ,jsem na takovu funkci v jquery, která je součástí xml seo přepisovače url.Nějak tomu nerozumím, vrtá mi to hlavou. Potřeboval, bych objasnit co to dělá.Konkrétně jde o proměnné from a to.Co to je za znaky? Jaký to má smysl? Takové divné , to je. Jestli hádám to jako má odstraňovat tyto netypické znaky a proč zrovna tyhle, pak nevím ,proč to není uděláno nějak přes regulární výrazy. Co si o to myslíte? Fakt to nějak nechápu. Děkuji vám! <![CDATA[
<script type="text/javascript">
$(document).ready(function(){
var keyword = $("input[name=keyword]");
if(!keyword.val())
{
$("input[name^='product_description'],input[name^='category_description'],input[name='name'],input[name^='information_description'],input[name^='model']").keyup(function()
{
var SEOlink = $("input[name^='product_description'],input[name^='category_description'],input[name='name'],input[name^='information_description']").val();
// var SEOlink = $(this).val();
SEOlink = SEOlink.replace(/^\s+|\s+$/g, ''); // trim
SEOlink = SEOlink.toLowerCase(); // remove accents, swap, etc
var from = "ảãạàáäâấầậẩẫẻẹẽèéëêềếệểễăắằẳẵặìíïîịơởỡợờớọõỏòóöôốộồổỗđưứừựửữùúüûủụùúũñcçčlľštžýnrrdçõã·/_,:;";
var to = "aaaaaaaaaaaaeeeeeeeeeeeeaaaaaaiiiiiooooooooooooooooooduuuuuuuuuuuuuuuncccllstzynrrdcoa------";
for (var i=0, l=from.length ; i<l ; i++)
{
SEOlink = SEOlink.replace(new RegExp(from.charAt(i), 'g'), to.charAt(i));
}
SEOlink = SEOlink.replace(/[^a-z0-9( -]/g, '') // remove invalid chars
.replace(/\(/g,"-") // replace (
.replace(/\s+/g, '-') // collapse whitespace and replace by -
.replace(/-+/g, '-'); // collapse dashes
// return SEOlink;
// model
if ($("input[name^='model']").length){
var model = $("input[name^='model']").val();
model = model.replace('.html'); // trim
model = model.toLowerCase();
for (var i=0, l=from.length ; i<l ; i++)
{
model = model.replace('.html');
}
model = model.replace(/[^a-z0-9 -]/g, '') // remove invalid chars
.replace(/\s+/g, '-') // collapse whitespace and replace by -
.replace(/-+/g, '-'); // collapse dashes
// return model;
}
// end model
if (model)
{
keyword.val(SEOlink+'.html');
} else
{
keyword.val(SEOlink+'.html');
}
});
}
});
</script>
]]> |
||
| tiso Profil |
#2 · Zasláno: 14. 2. 2015, 23:40:04
Čuduj sa svete, ono to používa regulárne výrazy. Slúži to na vytvorenie url-friendly stringu, neviem do ktorých jazykov tieto znaky patria, ale chýbajú tam niektoré slovenské.
|
||
| snazimse Profil |
#3 · Zasláno: 15. 2. 2015, 01:30:57
tiso:
Mě jde právě o ty znaky, proč zrovna tyhle, to potřebuji, aby mi to někdo vysvětlil. A jestli to jde udělat, nějak elegantněji. |
||
| snazimse Profil |
#4 · Zasláno: 16. 2. 2015, 14:48:10
Pomohl by mi někdo to objasnit?
Děkuji Vám! |
||
| aDAm Profil |
a co tahle si to zkusit sám rozklíčovat? Jednoduše to poslouhá na eventech keyup na vybraných formulářových elementech a pak to vložený string předělá na prý "seo" link
A odstraňuje to ty vypsané znaky aby výsledek byl použitelný v URL adrese. |
||
| Kcko Profil |
#6 · Zasláno: 16. 2. 2015, 15:25:23
if (model)
{
keyword.val(SEOlink+'.html');
} else
{
keyword.val(SEOlink+'.html');
}Na co je taková podmínka? ;-) Místo tohohle bazmektu bych použil spíše toto http://php.vrana.cz/vytvoreni-pratelskeho-url.php |
||
| snazimse Profil |
#7 · Zasláno: 16. 2. 2015, 15:52:58
aDAm, Kcko:
Děkuji vám, moc za reakci. No já jsem na to narazil a tak mi to trochu vrtalo jako jasně, že vím, že to dělá seo url, ale ty znaky, jako nevím, většinou se to dělá přes mod_rewrite pomocí regulárních výrazů a jako spíše mi jde o to proč, zrovna takhle a zrovna tyhle znaky. Tady třeba, v proměnné to , se některé znaky opakujou několikrát, to nechápu proč. var to = "aaaaaaaaaaaaeeeeeeeeeeeeaaaaaaiiiiiooooooooooooooooooduuuuuuuuuuuuuuuncccllstzynrrdcoa------"; To mě zajímá. Přijde mi to takové prasácké , no děkuji za názorný příklad od Jakuba Vrány! |
||
| anonymníí Profil * |
#8 · Zasláno: 16. 2. 2015, 16:09:19
snazimse:
Nahrazuje to sadu odlišných znaků z "from", vždy kus za kus. Pokud je ve "from" 50 znaků, musí být v "to" také 50. Napříkad sekvence ìíïîị je pět různě diakritických "íček" na vstupu, na výstupu se mají převést na i. Proto je v proměnné to sekvence iiiii. Na stejných pozicích, jako jsou v předchozí proměnné ty diakritické.
|
||
| snazimse Profil |
#9 · Zasláno: 16. 2. 2015, 17:40:02
anonymníí:
Ok, děkuji za vysvětlení, to jsem nějak přehlédl a nepochopil. |
||
|
Časová prodleva: 11 let
|
|||
0