ugrás a tartalomhoz

Keresőbarát url hiba

netexer · 2011. Jan. 19. (Sze), 13.10
Kedves fórumozók!

Megvásároltam egy külföldi motort, minden működik rendesen, csak ha bekapcsolom a keresőbarát url-eket, a magyar ü helyett a link címében y-ra vált át, és ha egy szó nagy Á, Óstb kezdődik azt egyszerűen nem jeleníti meg, vagy az utánna lévő karaktereket is törli. Kérlek segítsetek, ezt hol tudom állítani. Vannak olyan linkek az oldalon, ahol pedig rendesen megjeleníti az ékezetes betűket, ráadásul ékezettel.
Egy-egy példa:

/1856-mogyorodon-kylterylet-elado/details.html
itt rosszul jelenik meg
/word-kerület/listings.html
itt meg rendesen

Adatbázis utf-8 mindenhol.

Kérlek segítsetek! Előre is köszönöm!
 
1

Hol?

Poetro · 2011. Jan. 19. (Sze), 13.18
Az eléggé buta kérdés volt, hogy hol tudod állítani, úgy, hogy nem írtad le, milyen motorról van szó. Amennyiben megvásároltad, kérdezd meg, tőlük, hogy ezt hol lehet beállítani. Sajnos azt sem írtad le, hogy milyen nyelven van írva a motor, és azt sem, hogy milyen adatbázisban vannak az adatok.
Azt a modult kellene megjavítani, vagy jól beállítani, ami ezeket a keresőbarát URL-eket generálja, de a fenti ismeretek hiányában távgyógyításban ez lehetetlen.
2

Pótlás

netexer · 2011. Jan. 19. (Sze), 14.05
Kedves Poetro!

Kérdeztem a fejlesztőt, mivel angol nyelven íródott, és tud még 8 nyelven, de magyar nincs közte, ezért én fordítottam le az egészet, a fejlesztők pedig nem tudnak(vagy akarnak)ezzel foglalkozni, mondván, hogy csak a 8 nyelvre tudnak supportot adni.

Ez a helytelen modul kódja(igy rosszul jelenik meg):
<!-- LATEST ADS -->
<div id="latest">
	<div class="sel1-tabwrapper">
		<div class="sel1-tab-left"><div class="sel1-tab-right">{$lng.general.latest_ads}</div></div>
	</div>
	<div class="box">
                    <div class="vert-box"> 
			{if $no_latest}
                      <table width="100%" cellpadding="0" cellspacing="0">
                      {section name=loop start=0 loop=$no_latest step=1}
			{capture name=some_content assign=details_url}
			{if $seo_settings.enable_mod_rewrite}{$live_site}/{$latest[loop].id}-{$latest[loop].url_title}/details.html{else}{$live_site}/details.php?id={$latest[loop].id}{/if}
			{/capture}
                        <tr> 
                          <td valign="middle" class="last-image"><div class="box-image"><a href="{$details_url}"><img class="pic" onmouseover="this.className='pic_over'" onmouseout="this.className='pic'" src="{if $latest[loop].sold}{$live_site}/include/show_sold.php?id={$latest[loop].image_id}{elseif $latest[loop].rented}{$live_site}/include/show_rented.php?id={$latest[loop].image_id}{else}{$live_site}/{$latest[loop].image}{/if}" alt="{if $latest[loop].image_id}{$latest[loop].title}{/if}" /></a></div></td>
			<td valign="middle">
                          {if $ads_settings.enable_price && $latest[loop].price>=0}<div class="price">{$latest[loop].price_curr}</div>{/if}
                            <div class="location">{$latest[loop].location_str}</div>
			{if $data_set=="cars" && ($latest[loop].make || $latest[loop].model)}
			<h4><a href="{$details_url}">{$latest[loop].make} {$latest[loop].model}</a></h4>
			{else}
			<h4><a href="{$details_url}">{$latest[loop].title|truncate:44:"...":false}</a></h4>
			{/if}
                        <div class="date">{$latest[loop].date_nice}</div></td>
                        </tr>
                        {if $smarty.section.loop.index<$no_latest-1}
                        <tr>
                          <td colspan="2"><div class="vert-separator"></div></td>
                        </tr>
                        {/if}
                      {/section}
                      </table>
			{/if}
                    </div>
                  </div>
          </div>
          <!-- END LATEST ADS -->
Itt meg jó:

	{if $tag_cloud_title}
<div class="sel1-tab-left">
	<div class="sel1-tab-right">{$tag_cloud_title}</div>
</div>
{/if}
<div class="box">
	<div id="tagcloud">
	{foreach from=$tag_cloud_array item=v}
		<span class="{$v.class}"><a href="{$live_site}{if $seo_settings.enable_mod_rewrite}/word-{$v.word|urlencode}/listings.html{else}/listings.php?word={$v.word|urlencode}{/if}">{$v.word}</a></span>
	{/foreach}
	</div>
</div>
httacces:

## Uncomment this if FollowSymLinks is not already enabled on your server
#Options +FollowSymLinks

## Use mod rewrite
## Comment the line below if RewriteEngine not already enabled on your server
RewriteEngine On

## Uncomment the line below and change the path if your script is installed
## in a different path than the root folder of your domain

#RewriteBase /

Options +FollowSymLinks 
RewriteEngine on

RewriteRule ^index.html index.php [nc]
RewriteRule ^recent_ads.html recent_ads.php [nc]
RewriteRule ^register.html register.php [nc]
RewriteRule ^pre-register.html pre-register.php [nc]
RewriteRule ^login.html login.php [nc]
RewriteRule ^logout.html logout.php [nc]
RewriteRule ^favourites.html favourites.php [nc]
RewriteRule ^contact.html contact.php [nc]
#RewriteRule ^advanced_search.html advanced_search.php [nc]
RewriteRule ^listings.html listings.php [nc]
RewriteRule ^pre-submit.html pre-submit.php [nc]
RewriteRule ^([0-9]+)-([^\/]+)?/content.html$ content.php?id=$1 [nc,qsa]
RewriteRule ^([0-9]+)-([^\/]+)/index.html$ index.php?category=$1 [nc,qsa]
RewriteRule ^([0-9]+)-([^\/]+[a-zA-Z0-9-])/details.html$ details.php?id=$1 [nc,qsa]
RewriteRule ^([^\/]+)/([^\/]+)/([^\/]+)/recent_ads.html$ recent_ads.php?page=$1&order=$2&order_way=$3 [nc,qsa]
RewriteRule ^([0-9]+)-([^\/]+)/user_listings.html$ user_listings.php?id=$1 [nc,qsa]
RewriteRule ^([0-9]+)-([^\/]+)/([^\/]+)/([^\/]+)/([^\/]+)/user_listings.html$ user_listings.php?id=$1&page=$3&order=$4&order_way=$5 [nc,qsa]
RewriteRule ^([^\/]+)/([^\/]+)/([^\/]+)/favourites.html$ favourites.php?page=$1&order=$2&order_way=$3 [nc,qsa]
RewriteRule ^([0-9]+)-([^\/]+)/store.html$ store.php?id=$1 [nc,qsa]
RewriteRule ^([0-9]+)-([^\/]+)/([^\/]+)/([^\/]+)/([^\/]+)/store.html$ store.php?id=$1&page=$3&order=$4&order_way=$5 [nc,qsa]

RewriteCond %{REQUEST_URI} ^(.*)(/listings.html)(.*)$ [NC]
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule (.*) ./listings.php?$1
Segítségeteket előre is köszönöm, ha valami még hiányzik, szívesen pótlom.
3

Nem nyelv függő

Poetro · 2011. Jan. 19. (Sze), 15.39
Az egész nem nyelv függő. Teljesen mindegy milyen nyelvről van szó, ha nem képes az alkalmazás egy UTF-8 karakterből logikusan ASCII karaktert képezni ott probléma van. A beidézett részekben nincsen erre a konverzióra utaló jel.

Ezt a folyamatot hívját transliteration-nek. Erre szinte minden nyelvben van megfelelő implementáció, az egyik ilyen a Perl-ben íródott Text::Unicode, PHP-hoz a translit, de amennyiben használ a nyelv iconv-ot, azt is rendelkezik ilyen képességekkel (ugyan korlátozottan).

Az továbbra sem derült ki, milyen nyelven íródott a tartalomkezelő, így ezügyben tovább nem tudok segíteni. A beidézett kódok mind sablonozással kapcsolatosak, ami csak megjeleníti a generált tartalmat, semmi köze ahhoz, ahol generálódik.

Gondolom a német, spanyol, francia, portugál, héber, arab, kínai, japán, thai, orosz, dán, olasz stb. nem szerepel a fejlesztő által ismert nyelvek között, pedig a problémák hasonlóak tudnak lenni.
4

Pótlás2

netexer · 2011. Jan. 19. (Sze), 18.21
Kedves Poetro!

Például francia, és a német is köztük van, és tökéletesen működik, kipróbáltam.
PHP-ban íródott a script, index.php-ban ezek a kódok tartoznak hozzá:

// latest ads

$max_latest = $ads_settings['no_latest'];

$latest = $listings->getLatest($max_latest);

$no_latest = count($latest);

if($ads_settings['no_latest_on_row']) $width_latest = (100/$ads_settings['no_latest_on_row']); else $width_latest=100;

if($ads_settings['no_featured_on_row']) $width_featured = (100/$ads_settings['no_featured_on_row']); else $width_featured=100;

$smarty->assign("no_latest",$no_latest);

$smarty->assign("width_latest",$width_latest);

$smarty->assign("width_featured",$width_featured);

$smarty->assign("latest",$latest);



$array_categories = $categ->getCategories($cat);

//_print_r($array_categories);

$no_categories=count($array_categories);

$no_cats_per_row=$appearance_settings["max_cat_per_row"];

$width = (int)(100/$no_cats_per_row);

$no_rows=ceil($no_categories/$no_cats_per_row);

$smarty->assign('array_categories',$array_categories);

$smarty->assign('no_categories',$no_categories);

$smarty->assign('width',$width);

$smarty->assign('no_cats_per_row',$no_cats_per_row);

$smarty->assign('no_rows',$no_rows);



// tag cloud

if(in_array("tag_cloud", $modules_array)) {

	require_once $config_abs_path."/modules/tag_cloud/classes/tag_cloud.php";

	$tc = new tag_cloud();

	$tag_cloud_title = $tc->getTitle();

	$tag_cloud_array = $tc->getTags();

	$smarty->assign('tag_cloud_title',$tag_cloud_title);

	$smarty->assign('tag_cloud_array',$tag_cloud_array);

}
Köszi a segítséget előre is!
5

ü

Poetro · 2011. Jan. 19. (Sze), 18.34
Csak azért, mert például a németben is van ü betű, és ott nem rontja el? Mert a Mogyoródon külterület eladó az ó kivételével teljesen jól kellene, hogy működjön például német nyelv esetén is. Ráadásul az ó se túlságosan extra karakter. Én továbbra is a fejlesztő megoldását várnám. Ad neki bárki pár szót, ami esetleg problémás, és azt meg kell tudnia oldania, hogy jól kezelje le. Van rengeteg módszer, amivel szépen lehet ezt lekezelni, és nem is túl bonyolult ezeket használni.
6

RE

netexer · 2011. Jan. 19. (Sze), 21.55
És elárulja valaki, melyek ezek? És hol kell ezt belőni? PHP fájl-ba? Adatbázisba? .httacces-be?
7

PHP

Poetro · 2011. Jan. 19. (Sze), 22.06
Valamelyik PHP fájlban, csak még az nem derült ki, ezek hol generálódnak. Mivel ezt a részletet még nem ismerjük.
8

Oxi

Termes · 2011. Már. 10. (Cs), 00.14
Sziasztok.

Ha jól sejtem ez a motor az OxyClassifieds. Egyébként engem is érdekelne a megoldás.

Üdv:
T