Press "Enter" to skip to content

Dział na sklepie Presta Shop “pliki do pobrania” (bazujący na załącznikach do produktów)

Admin 3

Jest to stosunkowo prosta modyfikacja, a daje nam możliwość łatwego zarządzania plikami w obrębie takiego działu na stronie. Nie wymaga także żadnego późniejszego edytowania tabelek w HTML, wgrywania plików przez edytor tekstowy i innych dość skomplikowanych kwestii informatycznych. Dodanie pliku do listy organiczna się po prostu dodaniem nowego załącznika do produktu. I tyle.

Jak zrobić taką modyfikację?

Wgranie załączników do sklepu.

Wchodzimy w dział:

Katalog -> Załączniki

Następnie poprzez przycisk “Dodaj załącznik” w górnym panelu wgrywamy pliki aby każdy z nich znalazł się na tej liście.

Tworzenie produktu z załącznikami.

Na początek tworzymy produkt – widmo, w którym będą podpięte załączniki. Nie musi on mieć żadnej ceny, zdjęć czy innych cech. Nie będzie używany do sprzedaży.

Nazwijmy go po prostu:

“Produkt z plikami do pobrania – nie usuwać!”

Widoczność ustawmy na “Nigdzie”

Sklepy Internetowe Kraków

Następnie zapisujemy produkt, notujemy numer ID tego produktu (jest on widoczny na liście produktów) i ponownie go edytujemy.

Wchodzimy potem w dział “Załączniki” w edycji tego produktu i za pomocą poniższego panelu dodajemy pliki do listy. Kolejność kliknięć prezentuje poniższy obrazek:

Presta Shop Kraków

Dodanie nowego załącznika na liście polega po prostu na podłączeniu nowego pliku w tym miejscu.

Utworzenie strony CMS będącej podstroną z plikami do pobrania.

W dziale:

“Preferencje -> CMS”

tworzymy nową podstronę. Nazywamy ją wg uznania. Np.

“Pliki do pobrania”

W razie potrzeby wprowadzamy tekst w treści. Np.

“To są nasze pliki do pobrania etc.”

(Będzie on widoczny nad plikami do pobrania)

Po zapisaniu podstrony włączamy ją aby była opublikowana. Następnie notujemy jej numer ID. Jest on widoczny na liście wszystkich stron w dziale “Preferencje -> CMS”.

Ostatnią kwestią związaną z tym punktem jest doczepienie tej strony CMS do odp. bloku cms. Robimy to poprzez konfigurację modułu:

Moduły -> Pole szukaj -> Block CMS -> Konfiguruj

Ewentualnie wpinamy ją w menu główne. Służą do tego rozmaite moduły. Znajdujemy je i konfigurujemy w analogiczny sposób:

Poziome menu

Mega menu

itp.

Modyfikacje programistyczne.

Gotowe, wszystkie kwestie związane z treściami mamy gotowe. Musimy teraz jednorazowo zmodyfikować kod Presta Shop, aby korzystał on z tych funkcjonalności.

Zmiany w PHP

Otwieramy plik:


controllers/front/CmsController.php

Wklejamy tam nową metodę (funkcję) pod inną funkcją:


public static function getAttachmentsStatic($id_lang, $id_product)
{
return Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('
SELECT *
FROM '._DB_PREFIX_.'product_attachment pa
LEFT JOIN '._DB_PREFIX_.'attachment a ON a.id_attachment = pa.id_attachment
LEFT JOIN '._DB_PREFIX_.'attachment_lang al ON (a.id_attachment = al.id_attachment AND al.id_lang = '.(int)$id_lang.')
WHERE pa.id_product = '.(int)$id_product);
}

W tym samym pliku znajdujemy inną metodę:


public function initContent()

Na jej początku np. pod kodem:


$this->context->smarty->assign('cgv_id', Configuration::get('PS_CONDITIONS_CMS_ID'));

Dopisujemy nasz kod:


$this->context->smarty->assign('attachments', $this->getAttachmentsStatic($this->context->language->id,123));

Gdzie 123 to ID naszego produktu (patrz wyżej)

Zmiany w szablonie

Otwieramy plik:


themes/default-bootstrap/cms.tpl

gdzie “default-bootstrap” to nazwa naszego szablonu.

Pod fragmentem kodu:


{$cms->content}

Wklejamy ten kod: Kod do wklejenia w szablonie – Dział na sklepie Presta Shop pliki do pobrania.

Gdzie 10 – to ID naszej strony CMS (patrz wyżej).

Wygląd listy z plikami (stylowanie CSS)

Napędza ją Twitter Bootstrap oraz dodatek Font Awsome.

Jednak asekuracyjnie możemy dodać poniższe jeśli nie wygląda ona atrakcyjnie. Jak wyświetlanie jest prawidłowe nie rób tego.

W pliku:


themes/default-bootstrap/css/global.css

(gdzie “default-bootstrap” to nazwa naszego szablonu)

Dopisujemy reguły:


.list-group-item {
background-color: white;
border: 1px solid #dddddd;
display: block;
margin-bottom: -1px;
padding: 10px 15px;
position: relative;
}

Natomiast w pliku:


themes/default-bootstrap/header.tpl

(gdzie “default-bootstrap” to nazwa naszego szablonu) doklejamy przed znacznikiem:


</head>

Ten kod:


<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">

Share This:

  1. robert robert

    Prawie działa, zamiast nazwy załącznika pojawia się “i”.
    Co mogłem zrobić źle ? Brak mi pomysłu…

    • Admin admin

      Robert czy jesteś pewien że dobrze linkujesz do biblioteki font awesome? Czy nie masz jakiegoś konfliktu js? Czy oczyściłes cache sklepu?

    • robert robert

      {$attachment.name|escape:’html’:’UTF-8′}

      zamiast “i” w pliku cms.tpl jak by ktoś potrzebował

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *