Salutare!
Sunt nou pe-aici, dar si la inceput cu Opencart.
Am o nelamurire vis-a-vis de cum pot sa fac sa nu mai apara in URL-ul unei pagini de produs parametrii unei sortari.
Mai concret, daca se face o sortare pe o pagina cu produse si dupa aceea se alege un produs, in URL-ul paginii cu produsul respectiv apar si parametrii sortarii - practic, acesti parametrii se adauga automat in coada URL-ului.
In loc sa fie URL curat, adica format din categorie/nume-produs, practic, URL-ul este ceva de forma categorie/nume-produs?sort=p.price&order=ASC
Cum se pot scoate parametrii respectivi?...exista un modul care face asta sau trebuie modificat ceva in cod?
Astept raspunsurile si sugestiile voastre.
Multumesc anticipat.
Spor la treaba!
Sunt nou pe-aici, dar si la inceput cu Opencart.
Am o nelamurire vis-a-vis de cum pot sa fac sa nu mai apara in URL-ul unei pagini de produs parametrii unei sortari.
Mai concret, daca se face o sortare pe o pagina cu produse si dupa aceea se alege un produs, in URL-ul paginii cu produsul respectiv apar si parametrii sortarii - practic, acesti parametrii se adauga automat in coada URL-ului.
In loc sa fie URL curat, adica format din categorie/nume-produs, practic, URL-ul este ceva de forma categorie/nume-produs?sort=p.price&order=ASC
Cum se pot scoate parametrii respectivi?...exista un modul care face asta sau trebuie modificat ceva in cod?
Astept raspunsurile si sugestiile voastre.
Multumesc anticipat.
Spor la treaba!
Poti sa le ascunzi din clasa url, sa faci ca atunci cand le proceseaza si intalneste variabilele sort si order sa inlocuiasca cu '' nimic.
robertiulianstoica[at]gmail.com
Tocmai am verificat ceea ce te-am sfatuit mai sus si nu merg.
Imi pare rau, dar pare ca nu prea ai cum sa le ascunzi, intrucat variabilele de sortare si ordonare sunt preluate pe get
.
Imi pare rau, dar pare ca nu prea ai cum sa le ascunzi, intrucat variabilele de sortare si ordonare sunt preluate pe get

rikart wrote:Multumesc frumos pentru raspuns Robert, dar poti te rog sa detaliezi?
Adica, sa-mi explici exact ce si unde trebuie sa modific...dupa cum am mentionat, sunt incepator...
robertiulianstoica[at]gmail.com
Exista sigur o modalitate de a le sterge, spun asta pentru ca pe toate site-urile vizitate si implementate pe Opencart nu apar parametrii respectivi.
Deci, cumva se sterg ei, numai ca nu stim noi...
Poate totusi ne explica cineva care s-a lovit de aceasta problema.
Deci, cumva se sterg ei, numai ca nu stim noi...
Poate totusi ne explica cineva care s-a lovit de aceasta problema.
Iti pot spune ce am reusit pana acum. In catalog/controller/common/seo_url.php am inlocuit urmatoarea functie:rikart wrote:Exista sigur o modalitate de a le sterge, spun asta pentru ca pe toate site-urile vizitate si implementate pe Opencart nu apar parametrii respectivi.
Deci, cumva se sterg ei, numai ca nu stim noi...
Poate totusi ne explica cineva care s-a lovit de aceasta problema.
Code: Select all
public function rewrite($link) {
$url_info = parse_url(str_replace('&', '&', $link));
$url = '';
$data = array();
parse_str($url_info['query'], $data);
foreach ($data as $key => $value) {
if (isset($data['route'])) {
if (($data['route'] == 'product/product' && $key == 'product_id') || (($data['route'] == 'product/manufacturer/info' || $data['route'] == 'product/product') && $key == 'manufacturer_id') || ($data['route'] == 'information/information' && $key == 'information_id')) {
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE `query` = '" . $this->db->escape($key . '=' . (int)$value) . "'");
if ($query->num_rows) {
$url .= '/' . $query->row['keyword'];
unset($data[$key]);
}
} elseif ($key == 'path') {
$categories = explode('_', $value);
foreach ($categories as $category) {
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE `query` = 'category_id=" . (int)$category . "'");
if ($query->num_rows) {
$url .= '/' . $query->row['keyword'];
}
}
unset($data[$key]);
}
}
}
Code: Select all
public function rewrite($link) {
$url_info = parse_url(str_replace('&', '&', $link));
$url = '';
$data = array();
parse_str($url_info['query'], $data);
foreach ($data as $key => $value) {
if (isset($data['route'])) {
if (($data['route'] == 'product/product' && $key == 'product_id') || (($data['route'] == 'product/manufacturer/info' || $data['route'] == 'product/product') && $key == 'manufacturer_id') || ($data['route'] == 'information/information' && $key == 'information_id')) {
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE `query` = '" . $this->db->escape($key . '=' . (int)$value) . "'");
if ($query->num_rows) {
$url .= '/' . $query->row['keyword'];
unset($data[$key]);
}
} elseif ($key == 'path') {
$categories = explode('_', $value);
foreach ($categories as $category) {
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE `query` = 'category_id=" . (int)$category . "'");
if ($query->num_rows) {
$url .= '/' . $query->row['keyword'];
}
}
unset($data[$key]);
} elseif ($key == 'sort') {
unset($data[$key]);
} elseif ($key == 'order') {
unset($data[$key]);
}
}
}
Code: Select all
if ($query->num_rows) {
$url = explode('=', $query->row['query']);
if ($url[0] == 'product_id') {
$this->request->get['product_id'] = $url[1];
}
if ($url[0] == 'category_id') {
if (!isset($this->request->get['path'])) {
$this->request->get['path'] = $url[1];
} else {
$this->request->get['path'] .= '_' . $url[1];
}
}
if ($url[0] == 'manufacturer_id') {
$this->request->get['manufacturer_id'] = $url[1];
}
if ($url[0] == 'information_id') {
$this->request->get['information_id'] = $url[1];
}
}
Code: Select all
if ($query->num_rows) {
$url = explode('=', $query->row['query']);
if ($url[0] == 'product_id') {
$this->request->get['product_id'] = $url[1];
}
if ($url[0] == 'category_id') {
if (!isset($this->request->get['path'])) {
$this->request->get['path'] = $url[1];
} else {
$this->request->get['path'] .= '_' . $url[1];
}
}
if ($url[0] == 'manufacturer_id') {
$this->request->get['manufacturer_id'] = $url[1];
}
if ($url[0] == 'information_id') {
$this->request->get['information_id'] = $url[1];
}
if ($url[0] == 'sort') {
$this->request->get['sort'] = $url[1];
}
if ($url[0] == 'order') {
$this->request->get['order'] = $url[1];
}
}
robertiulianstoica[at]gmail.com
Da, am facut si lansat site-uri in opencart, insa niciodata nu am considerat sort-ul si order-ul ca si o problema.
Nu are relevanta ca e pe local sau nu.
Nu are relevanta ca e pe local sau nu.
Last edited by robertiulianstoica on Thu Jul 04, 2013 3:07 am, edited 3 times in total.
robertiulianstoica[at]gmail.com
Am mai incercat cateva modificari, nu poti sa le scoti de tot, poti doar sa le inlocuiesti cu altceva precum:
http://ocfilter.24din24.com/desktops/so ... rescatoare
Explicatia fiind urmatoarea:
Clasa de url apeleaza clasa seo_url si inlocuieste fiecare varaibila din link cu keywordurile prestabilite in baza de date. Abia apoi facand matching pe keyword reuseste sa iti puna variabila pe get ca sa iti functioneze si sortarea. Astfel, nu ai cum sa le scoti de tot. Poti doar sa le inlocuiesti cu alte texte, daca iti par inestetice.
http://ocfilter.24din24.com/desktops/so ... rescatoare
Explicatia fiind urmatoarea:
Clasa de url apeleaza clasa seo_url si inlocuieste fiecare varaibila din link cu keywordurile prestabilite in baza de date. Abia apoi facand matching pe keyword reuseste sa iti puna variabila pe get ca sa iti functioneze si sortarea. Astfel, nu ai cum sa le scoti de tot. Poti doar sa le inlocuiesti cu alte texte, daca iti par inestetice.
robertiulianstoica[at]gmail.com
Tind sa cred ca nu m-am facut inteles si te rog sa-mi spui daca este asa sau nu.
Eu nu vreau sa dispara variabilele respective din URL-ul unei categorii in momentul in care se face o anumita sortare.
Vreau ca dupa ce se face sortarea pe o pagina (categorie) si se alege un produs din cele sortate, in URL-ul paginii produsului ales sa nu apara variabilele respective.
Cu alte cuvinte, URL-ul produsului ales dupa sortare sa fie cel obisnuit (ca si cand nu s-ar fi facut sortarea), sa nu preia in coada variabilele de la sortare.
Sper ca m-am facut inteles.
Eu nu vreau sa dispara variabilele respective din URL-ul unei categorii in momentul in care se face o anumita sortare.
Vreau ca dupa ce se face sortarea pe o pagina (categorie) si se alege un produs din cele sortate, in URL-ul paginii produsului ales sa nu apara variabilele respective.
Cu alte cuvinte, URL-ul produsului ales dupa sortare sa fie cel obisnuit (ca si cand nu s-ar fi facut sortarea), sa nu preia in coada variabilele de la sortare.
Sper ca m-am facut inteles.
Abia acum am inteles ce vrei sa spui.
In catalog/controller/category.php ai mai jos
si il inlocuiesti cu
Te-as ruga sa editezi postul si sa scoti linkul site-ului ... Nu vreau sa se indexeze aici site-ul. (SEO)
Iti multumesc!
In catalog/controller/category.php ai mai jos
Code: Select all
'href' => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url)
Code: Select all
'href' => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'])
Iti multumesc!
robertiulianstoica[at]gmail.com
Multumesc si eu, glad i could help!
rikart wrote:Multumesc mult!
Imi pare rau ca n-am fost inteles de la inceput si apreciez foarte mult ajutorul tau.
Am sters link-urile cu pricina, sper ca nu a trecut Google asa repede pe-aici...
Imediat fac modificarea in cod!
robertiulianstoica[at]gmail.com
Who is online
Users browsing this forum: No registered users and 3 guests