aro Posted April 22, 2013 Share Posted April 22, 2013 Prestashop v1.4.10.0 Moduł CMS umożliwia tworzenie własnych linków wyświetlanych w bloku w lewej lub prawej kolumnie. Jeżeli mamy ich kilka, to można zaznaczyć, które mają się wyświetlać w bloku w kolumnie, a które w stopce sklepu. Jak natomiast wstawić tylko jeden konkretny link z bloku CMS do bloku linków permanentnych? Chodzi o to, ażeby w miejscu, w którym jest standardowo wyświetlany blok linków permanentnych (Kontakt, Mapa strony, Dodaj do ulubionych) dołączyć dodatkowo np. Regulamin, Wysyłka (te linki są stworzone w module CMS) i co tam komu potrzebne, ażeby te najważniejsze informacje wyświetlać w Top, a nie w lewej, czy prawej kolumnie bądź stopce. Link to comment Share on other sites More sharing options...
vekia Posted April 22, 2013 Share Posted April 22, 2013 Niestety, trzeba to zrobić ręcznie modules/blockpermanentlinks/blockpermanentlinks.tpl <!-- Block permanent links module --> <div id="permanent_links"> <!-- Sitemap --> <div class="sitemap"> <a href="{$link->getPageLink('sitemap')}">{l s='Sitemap' mod='blockpermanentlinks'}</a> </div> <!-- Contact --> <div class="contact"> <a href="{$link->getPageLink('contact', true)}">{l s='Contact' mod='blockpermanentlinks'}</a> </div> <!-- Bookmark --> <div class="add_bookmark" style="height:30px;"> <script type="text/javascript"> writeBookmarkLink('{$come_from}', '{$shop_name|addslashes|addslashes}', '{l s='Bookmark this page' mod='blockpermanentlinks' js=1}');</script> </div> </div> <!-- /Block permanent links module --> umieszczasz po prostu własne linki wpisując odpowedni kod ten moduł nie jest zintegrowany z CMS, więc zrobienie tego w back office odpada Link to comment Share on other sites More sharing options...
aro Posted April 22, 2013 Author Share Posted April 22, 2013 (edited) Dzięki, ale to mniej więcej wiem. Tylko jest inny problem. modules/blockcms/blockcms.tpl {foreach from=$cmslinks item=cmslink} {if $cmslink.meta_title != ''} <li class="item"><a href="{$cmslink.link|addslashes}" title="{$cmslink.meta_title|escape:'htmlall':'UTF-8'}">{$cmslink.meta_title|escape:'htmlall':'UTF-8'}</a></li> {/if} {/foreach} powyższy fragment kodu będzie powodował, że pobrane zostaną wsyztskie linki zdefiniowane w module CMS - jak natomiast pobrać tylko jeden konkratny? Każdy link w CMS ma swój własny "id" - jak wstawić w taki sposób, jeżeli ta metoda jest dobra? Odnośnie Twojego przykładu: <a href="{$link->getPageLink('contact', true)}">{l s='Contact' mod='blockpermanentlinks'}</a> Jeżeli mam własną podstronę w CMS o nazwie np. Regulamin, to nie wiem jaką stronę pobrać i podstawić w powyższym kodzie. Z tego co widać obowiązują też nazwy angielskie przy pobieraniu strony. p.s. jeżeli pobiorę stronę w taki sposób (wskazuje konkretny id strony w CMS): <li class="item"><a href="{$link->getPageLink('cms.php?id_cms=2', true)}" title="{$cms_page.meta_title|escape:html:'UTF-8'}">{$cms_page.meta_title|escape:html:'UTF-8'}</a></li> to wtedy najeżdżając na myszą na link wyświetla się adres strony w postaci ../cms.php?id_cms=2 zamiast przyjaznego linku. Ale już po kliknięciu w link otwiera się ta podstrona z przyjaznym linkiem - czy to ma znaczenie dla robotów i jak to poprawić, żeby przy hoover od razu wyświetlał się przyjazny link? Edited April 22, 2013 by aro (see edit history) Link to comment Share on other sites More sharing options...
vekia Posted April 22, 2013 Share Posted April 22, 2013 sugeruję używać ID stron, np: {$link->getCMSLink(1)} {$link->getCMSLink(2)} itd. wtedy link będzie tworzony poprawnie niezaleznie od wersji językowej jaka jest akutalnie przeglądana. Dodatkowo, przyjazne url będą działać poprawnie Link to comment Share on other sites More sharing options...
aro Posted April 22, 2013 Author Share Posted April 22, 2013 (edited) Dzięki za info, ale nic to nie zmieniło - po najechaniu kursorem na link nadal wyświetla się url w postaci "/cms.php?id_cms=2", no ale to nie jest jakiś ogromny problem - po kliknięciu w link otwiera się przyjazny url i generalnie jest ok. Pozostaje jeszcze do rozwiązania wyświetlanie nazwy podstrony CMS, bo teraz wyświetla się to, co jest wpisane "na sztywno": <a href="{$link->getCMSLink(1)}">{l s='jakiś CMS TITLE' mod='blockpermanentlinks'}</a> co należałoby wpisać do {l s='........' ...}, żeby tytuł linku był podstawiany z nazwy strony w CMS? Dzięki temu będzie to działać niezależnie od języka. p.s. Tytuł linku rozwiązałem poprzez dowolny anglojęzyczny wpis w powyższym {l s=.....}, który później przetłumaczyłem w BO w tłumaczeniach dla modułów. Przydałoby się jeszcze tylko rozwiązać kwestię przyjaznego url w bloku linków permanentnych, żeby po najechaniu kursorem był od razu widoczny przyjazny url, a nie link do pliku cms.php. Mam jeszcze taki problem - jeżeli dopiszę link CMS do linków permanentnych, to pojawia się on i w bloku linków CMS i w bloku linków permanentnych. Jeżeli wyłączę wyświetlanie danego linku w module CMS poprzez BO, to taki link nie wyświetli się w bloku linków CMS, ale jednocześnie nie da się otworzyć podstrony poprzez ten link z TOP w linkach permanentnych (link cms widać, ale po jego kliknięciu strona się nie otworzy - bo jest wyłączona w module CMS). Nie chcę, żeby strona z CMS była dublowana i w bloku CMS i w bloku linków permanentnych. Edited April 23, 2013 by aro (see edit history) Link to comment Share on other sites More sharing options...
aro Posted April 28, 2013 Author Share Posted April 28, 2013 Vekia, pomożesz? Link to comment Share on other sites More sharing options...
vekia Posted April 28, 2013 Share Posted April 28, 2013 Cześć wybacz, w gąszczu postów, Twój gdzieś się zapodział Bez modyfikacji się nie obędzie, niezbędne tutaj będzie zmodyfikowanie bloku cms, Co będzie potrzebne? ID strony którą chcesz wyłączyć w bloku cms. Otwórz plik blockcms.tpl zlokalizowany w /modules/blockcms/blockcms.tpl (pamiętaj, że czasami jest on również w themes/yourtheme/modules/blockcms/blockcms.tpl - wtedy zmiany wprowadzasz tutaj) rozwiązaniem jest dodanie prostego warunku IF sprawdzającego id, jeżeli cms_page.id_cms jest inne niż wskazany id - wówczas generuje link, (wskazany id jest po prostu pomijany) oto przykład dla strony o ID = 2 {if $cms_page.id_cms != 2} {if isset($cms_page.link)}<li><a href="{$cms_page.link}" title="{$cms_page.meta_title|escape:html:'UTF-8'}">{$cms_page.meta_title|escape:html:'UTF-8'}</a></li>{/if} {/if} Link to comment Share on other sites More sharing options...
aro Posted April 29, 2013 Author Share Posted April 29, 2013 Dzięki bardzo, działa jak należy Link to comment Share on other sites More sharing options...
vekia Posted April 29, 2013 Share Posted April 29, 2013 Super :-) pozwoliłem sobie oznaczyć post jako rozwiązany pozdrawiam Link to comment Share on other sites More sharing options...
lukata Posted May 27, 2013 Share Posted May 27, 2013 jak zmienić kolejność linków cms umieszczonych w stopce? Link to comment Share on other sites More sharing options...
vekia Posted May 28, 2013 Share Posted May 28, 2013 jak zmienić kolejność linków cms umieszczonych w stopce? witaj odpowiedziałem Ci w wątku: http://www.prestashop.com/forums/index.php?/topic/250394-jak-zmienic-kolejnosc-linkow-cms-umieszczonych-w-stopce/ Link to comment Share on other sites More sharing options...
vekia Posted May 28, 2013 Share Posted May 28, 2013 Tylko jest inny problem czyli???? chyba mamy do czynienia z botem, wszędzie ten sam wpis ... Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now