Jump to content

pretty Url, cms link funken nicht immer


Recommended Posts

Hy leute,

 

Mir ist gerade auf gefallen wenn ich pretty url akt. das die Cms link nicht gleich beim ersten klick funken. beim ersten Klicke seite wurde nicht gefunden und dann beim 2 klick gehts.

 

Hm was ist das für ein problem und wie könnte ich das lösen.

Habe im footer meine eigen links angelegt.

hier ein beispiel.

 

<a href="cms.php?id_cms=12">{l s='About us' mod='footerlinks'}</a>

Link to comment
Share on other sites

Nach der Umstellung musst du auch eine neue .htaccess generieren und zwar MIT friendly URL. Also erst unter Einstellungen -> SEO & URL auf friendly URL's stellen und dann unter Tools-> Generatoren - >.htaccess -> vereinfachte URL's ebenso anklicken und neu generieren.

Link to comment
Share on other sites

Ich habe damit auch Probleme,

es kann ja nciht sein, dass ich über die

<a href="{$link->getCMSLink('1','lieferung-versand')}?content_only=1" class="iframe">Versand</a>

 

getCMSLink('1','lieferung-versand')

(ID,ALias) das immer so eintragen muss.

 

Gibt es hier keien Lösung in dem Stil von

getCMSLink('1','1.SEO') 

?

 

So dass man nicht immer den SEO name sleber eitnragen muss? Ist dieser Multilingual tauglich?

 

 

hilfe erbeten ;)

Link to comment
Share on other sites

Du verwendest ein Skript aus einer alten Prestashopversion. Vermutlich blockcart aus einem Download aus dem Netz. Die CMS-Seiten werden ganz normal verlinkt, also so wie sie als pretty-Url generiert wurden. Das Skript kannst du nicht mehr verwenden. Auchtung der blockcart enthält auch noch Smarty2 Anweisungen. Spätestens mit Prestashop 1.5 wird das Script garnicht mehr laufen. Nutze nur Originalskripte zu deiner Version passend.

Link to comment
Share on other sites

Naja ich hab das aus der 1.4.7 dort werden die Footer Links ja auch so ähnlich generiert.

 

Wenn ich nur

 cms.php?id_cms=1&content_only=1 

mache wandelt er mir die URL nicht um (auch ncith nacht htaccess gen) und content_only funktioniert auch nicht.

 

wenn ich den SEF Link nehme auf deutsch passt das ja mit dem englishen nicht mehr zusammen...

 

Sprich ich brauch eine möglichkiet/Beispiel wie ich eine SEO Link im TPL generieren kann in V 1.4.7 ;)

Link to comment
Share on other sites

Doch das Standard Theme, habe extra Standard an mein Design angepasst um alle Funktionen zu behalten.

 

Footer Modul konnte ich keins entdecken

 

Die Funktion getCMSLink scheitn auch noch aktiv zu sein in Link.php classes

 

public function getCMSLink($cms, $alias = null, $ssl = false, $id_lang = NULL)
{
 $base = (($ssl AND Configuration::get('PS_SSL_ENABLED')) ? Tools::getShopDomainSsl(true) : Tools::getShopDomain(true));

 if (is_object($cms))
 {
  return ($this->allow == 1) ?
   ($base.__PS_BASE_URI__.$this->getLangLink((int)($id_lang)).'content/'.(int)($cms->id).'-'.$cms->link_rewrite) :
   ($base.__PS_BASE_URI__.'cms.php?id_cms='.(int)($cms->id));
 }

 if ($alias)
  return ($this->allow == 1) ? ($base.__PS_BASE_URI__.$this->getLangLink((int)($id_lang)).'content/'.(int)($cms).'-'.$alias) :
  ($base.__PS_BASE_URI__.'cms.php?id_cms='.(int)($cms));
 return $base.__PS_BASE_URI__.'cms.php?id_cms='.(int)($cms);
}

 

 

jedoch sieht man hier auch das der alias nur durchgereicht wird, was Multilingual schrott ist

Link to comment
Share on other sites

Sorry ich hatte in der Zwischenzeit den Thread bearbeitet. Wie gesagt. Für den Footer haben die nicht pretty-Url's einen Sinn. Sonst greifen im ganzen Shop die pretty-URL's. Einen Link mit "iframe" wie du es weiter oben beschrieben hattest, konnte ich im Footer leider nicht finden. Das mit dem iframe kenne ich nur aus Skripte aus dem Netz betreffend inkl. MwSt, exkl. Versand.... Nur greifen diese Skripte nicht mehr, weil mittlerweile sich sehr viel am Code geändert hat und auch Smarty2 vollkommen aus den Skripten entfernt wurde.

 

Ich würde auch keine Core-Dateien anpassen. Deise werden bei jedem Upgrade uberschrieben. Upgrades sollte man immer machen, um Sicherheitslücken auszuschliessen und auch um nicht mit altem Code zu fahren, der irgendwann mal Probleme macht.

Link to comment
Share on other sites

Ich mein schon das SEO;) wie man es auch nennen mag ;).

 

Ich glaube aber mein Problem rührt daher das der rewrite nicht das content_only=1 mitnimmt.

 

Sprich hier muss ich mal noch ein rewrite manuell hinzufügen damit er die variable auch durchhaut.

Aber für heute hat mich der Shop genug Nerven gekostet..... ;P

Link to comment
Share on other sites

Sorry, ich habe 0-Ahnung was du meinst. Hast du pretty-URL aktiviert und die .htaccess mit pretty_URL generiert, dann werden alle Links freundlich umgeschrieben. Anstatt id_6 oder wie auch immer, werden die Links dann in verständliche Links wie "versandinfo" umgeschrieben.

 

Bezüglich des anderen Problems, was du anführst in der Datei Link.php ist darauf zurückzuführen, dass CMS-Seiten nicht mehrsprachig sein können. Sie sind nicht übersetzbar. Noch nicht... ein rewrite bringt es nicht, weil man die nicht übersetzen kann. Es fehlt da mehr, als nur eine Zeile in einer einzigen Datei.

 

Zum Footer. Speziell hier werden keine freundlichen Links (pretty_URLS) verlinkt auf Grund von Massen-DC. Du vermischt hier leider mehrere Dinge...

Link to comment
Share on other sites

Hast du deine CMS-Links auch in den CMS umgeschrieben, wie im Screen anbei, und danach eine neue .htaccess generiert, dann werden die CMS-Links auch so angezeigt und sind mit den freundlichen Namen verlinkbar.

 

Möchtest du CMS-Seiten in anderen Sprachen, dann musst du diese extra erfassen und dann zuordnen in den Boxen, im Footer, usw. CMS-Seiten kann man eben nicht übersetzen.

Link to comment
Share on other sites

Hi,

 

japs das Feld ist asugefüllt, Problem ist wenn ich ein Link mache mit &content_only=1 dann macht mir der rewirte das content_only=1 weg und leitet mich auf die Standardseie mit voller NAvigation und co.

 

Sprich hier greift das rewriting nur für die Hauptseite aber nicht für weitere variablen.

 

Oder kennst du ein weg wie ich auf content_only=1 mit SEO/SEF komme?

 

Problem hier ist nämlich:

 

normaler link cms.php?id_cms=1&content_only=1 wird zu -->1-lieferung ohne &content_only=1

der fertige Link müsste so aussehen 1-lieferung?content_only=1 jedoch greift das über den normalen link nicht.

Also denke ich ein rewrite müsste hier ansetzen oder?

Link to comment
Share on other sites

Sorry ich bin kein Programmierer, kenne nur die Grundzüge des Programmierens. Verstehe auch nicht was du genau machen möchtest. Deine freindly-Urls übergibst du bei der Erfassung der CMS-Seite unter friendly-URL (s. Screen). Schreibe dort rein den Text der erscheinen soll anstatt id_xy. Generiere die .htaccess neu und das war es. Die Links werden dann mit der .htaccess genauso umgeschrieben wie du sie definiert hast. Beispiele aus meiner .htaccess für die CMS-Seiten:

 

RewriteRule ^Authentifizierung$ /authentication.php [QSA,L]
RewriteRule ^Verkaufhits$ /best-sales.php [QSA,L]
RewriteRule ^Warenkorb$ /cart.php [QSA,L]
RewriteRule ^Kontaktformular$ /contact-form.php [QSA,L]
RewriteRule ^Meine-Gutscheine$ /discount.php [QSA,L]
RewriteRule ^Auftragsverfolgung$ /guest-tracking.php [QSA,L]
RewriteRule ^Meine-Bestellungen$ /history.php [QSA,L]
RewriteRule ^Kennung$ /identity.php [QSA,L]
RewriteRule ^Hersteller$ /manufacturer.php [QSA,L]
RewriteRule ^Mein-Konto$ /my-account.php [QSA,L]
RewriteRule ^Neue-Produkte$ /new-products.php [QSA,L]
RewriteRule ^Bestellung$ /order.php [QSA,L]
RewriteRule ^RMA$ /order-follow.php [QSA,L]
RewriteRule ^Schnellbestellung$ /order-opc.php [QSA,L]
RewriteRule ^Guthaben$ /order-slip.php [QSA,L]
RewriteRule ^Kennwort-Wiederherstellung$ /password.php [QSA,L]
RewriteRule ^Angebote$ /prices-drop.php [QSA,L]
RewriteRule ^Suche$ /search.php [QSA,L]
RewriteRule ^Sitemap$ /sitemap.php [QSA,L]
RewriteRule ^Ladengeschaeft$ /stores.php [QSA,L]
RewriteRule ^Lieferanten$ /supplier.php [QSA,L]

Link to comment
Share on other sites

HI ;) sorry wenn ich mich schräg ausdrücke ,)

 

Den Namen zeigt mir das ganze System ja schon an,) nur wenn ich einen Link habe nehmen wir die cms.php, dann übergibt er mir das &content_only =1 nicht sonder verwirft es. Das hängt zu 99% am rewrite.

 

Ich kenn mich damit leider nicht im detail aus aber ich müsste es modizifieren, dass es auch zwei variablen übergibt damit ich einen SEO Link bekomme wo acuh content_only=1 geht.

 

Sprich er rewrited dir die Seite erst beim aufruf der URL und nicht direkt im CODE.

 

Weil aus Zukunftssicht gesehen, ist es nicht so schön, wenn ich einen deutschen URL Namen ahbe wenn später dann mal EN oder so hinzukommt.

 

 

Edit:

das mit den nicht mehrsprachigen CMS blick ich nicht wirklich, da mein Presta das auch in lalen installierten Sprachen übersetzen kann und ich auch auf den Content zugreifen kann wenn ich switche und per ID drauf zu greife..

Link to comment
Share on other sites

Sodela ich war mal wieder etwas kreativ ;)

 

für alle die das slebe Problem wie ich hatten für z.b. Lieferung / Versand und Datenschutz, Wiederrufseinblendungen

 

Ich habe mal eine lösung für DE / EN gemacht, was als ?content_only=1 für mich ausreicht, aber das rewrite thema ist mir noch etwas suspekt und nervt mich grad zu stark daher auf diesem wege:

 

Link wird zu:

{if $lang_iso=="de"}
{$link->getCMSLink('1','lieferung-versand')}?content_only=1
{else}
{$link->getCMSLink('1','delivery')}?content_only=1
{/if}

 


<a href="{if $lang_iso=="de"}{$link->getCMSLink('1','lieferung-versand')}?content_only=1 {else}{$link->getCMSLink('1','delivery')}?content_only=1{/if}" class="iframe">zzgl.Versandkosten</a>

wohlgemerkt, ich brauche das nur für die Anpassung an den deutschen, englishen Markt ;) dafür kann man das schon mal kurz so machen

Link to comment
Share on other sites

 

Edit:

das mit den nicht mehrsprachigen CMS blick ich nicht wirklich, da mein Presta das auch in lalen installierten Sprachen übersetzen kann und ich auch auf den Content zugreifen kann wenn ich switche und per ID drauf zu greife..

 

Schäm.... Schau einmal HIER, der Post wurde weitergeführt. Du hast mich draufgebracht... Ich alter Presta-Esel und Tomaten auf den Augen... Tja wenn einmal die Logik geändert wird... Aber Entwickler/Programmierer sind auch nur Menschen...

Link to comment
Share on other sites

BlueTiges kannst du mir das Phänomen näher erklären ? Es sieht so aus, dass das Browser abhängig ist. Ich habe z.B. im Footer folgende Domain:

 

/content/3-agb

 

Wenn ich das bei mir mit allen aktuellen Browsern aufrufe, dann bleibt die URL auch so bestehen. Nun sehe ich in den logs einen Eintrag von gestern mit: /content/3-agb?content_only=1

 

Habe aber weder ein iframe hier noch eine extra Seite. Die Seite sollte innerhalb des Shops geladen werden, offensichtlich lädt aber der IE8 diese extra auf einer leeren Seite ohne Shop-Layout.

 

Ich verstehe einfach nicht warum das so ist. Keiner meiner Browser macht das (alle letzte Version). Kann es sein,dass nur der IE8 das so umsetzt (der User hatte diesen)?

Link to comment
Share on other sites

ID 3 ist ja Standartmäßig auch bei dem Modul für Datenschutz von Prestashop. Wenn man bei der registrierung auf den Link klickt kommt die Seite lediglich im Iframe. Ohne die Seite zu kennen, würde ich mal sagen das es davon ist.

Link to comment
Share on other sites

Wenn das mit dem Bestellstatus wirklich so ist, dann ist es ein cookie-Session Angelegenheit, weil der Warenkorb, damit Sumas diese nicht indexieren mit JS und cookie-Session geschützt ist und somit wäre der Aufruf total irrelevant weil er nirgendwo indexiert wird, obwohl man diesen Link natürlich so aufrufen kann.

 

Leider hat dieser Kundeaber garnichts in den Warenkorb gelegt, daher er ist zur Bestellseite garnicht gekommen... Also ich tippe noch immer auf: Browserabhängig.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...