čtvrtek 26. května 2011

Hrátky s Apache a přepisem URL

Popis situace byl takovýto:

V Drupalu 6 bylo možno integrovat Gallery 2 přímo do stránek, zatímco v Drupalu 7 není příslušný modul k dispozici. Konečně, také vyšlo nové prostředí Gallery 3 a tak to bylo třeba dát celé nějak dohromady.

Aby to nebylo tak snadné, na stávájícím webu je hromada odkazů směřujících někam sem:

http://web.cz/node/700?q=gallery&g2_itemId=9944

a to bylo třeba směřovat na nový systém Gallery 3 ve formě

http://galerie.web.cz/g2/map?path=g2_itemId=9944

Co s tím? Do nové instalace Drupal 7 je třeba do souboru .htaccess přidat takovéto pravidlo:

<IfModule mod_rewrite.c>
      Options +FollowSymLinks
      RewriteEngine On
      RewriteCond %{QUERY_STRING} ^q=gallery
      RewriteRule ^(.*)$ http://galerie.web.cz/g2/map?path=$1   [QSA,L,R=301]
</IfModule>

RewriteCond prohledává URL adresy a pokud najde stránku, která má v dotazu zmíněný q=gallery, pak to RewriteRule celé přehodí na tu správnou adresu.

úterý 10. května 2011

OpenCart - Cena produktu na dotaz s lokalizací

Přidání odkazu Na dotaz místo ceny 0
Upravit soubor catalog/view/theme/default/template/product/product.tpl

změnit řádek 21 z

<?php echo $price; ?>

na

<?php if ($price > 0)  echo $price;  else {
?>
<a href="index.php?route=information/contact&muj_text=<? echo urldecode($nula_text.$model);?>"><? echo $nula;?></a>
<? } ?>

Přidat podporu překladu - v souboru catalog/language/czech/product/product.php přidat řádky

$_['nula']     = 'Na dotaz';
$_['nula_text']     = 'Dobrý den, chtěl bych se zeptat na cenu produktu ';

a zapnout přístup k překladům vložením na vhodná místa do souboru
catalog/controller/product/product.php

$this->data['nula'] = $this->language->get('nula');
$this->data['nula_text'] = $this->language->get('nula_text');

Další je upravit předvyplnění formuláře, v souboru catalog/view/theme/default/template/information/contact.tpl

upravit řádek 48 z

<textarea name="enquiry" style="width: 99%;" rows="10"><?php echo $enquiry;?></textarea>

na

<textarea name="enquiry" style="width: 99%;" rows="10"><?php echo $enquiry;echo urldecode($_GET["muj_text"]);?></textarea>


Dál je ještě potřeba v souboru catalog/view/theme/default/template/product/category.tpl změnit řádek 56 z původního

<span style="color: #900; font-weight: bold;"><?php echo $products[$j]['price']; ?></span>

na

<span style="color: #900; font-weight: bold;">
<?php if ($products[$j]['price'] > 0)  echo $products[$j]['price'];  else {
?>
<a href="index.php?route=information/contact&muj_text=<? echo urldecode($nula_text.$products[$j]['model']);?>"><? echo $nula;?></a>
<? } ?>
</span>

Spolu s odpovídajícím jazykovými překlady v souborech catalog/language/czech/product/category.php a catalog/controller/product/category.php.


Konečně to samé provést i s modulem vyhledávání (soubor catalog/view/theme/default/template/product/search.tpl) a odpovídajícími jazykovými soubory

neděle 1. května 2011

Jednoduchý přepis adres pomocí Apache

Někdy se může hodit přepsat jednu adresu na jinou a to nejlépe přímo pomocí Apache. K tomu se používá modul mod_rewrite jehož jednoduché použití může vypadat třeba takto.

<VirtualHost *:80>
  ServerName www.server.cz

  RewriteEngine on
  RewriteRule   ^.*$  http://server.cz/  [R]
</VirtualHost>

Tím se přesměruje (přepíše) URL adresa www.server.cz na kratší server.cz.