Jump to content

Załączniki - do pobrania


czorny813

Recommended Posts

Witam,

 

Chciałem zapytać czy da się zrobić tak, aby załączniki które dodaje w zakładce Katalog -> załączniki wyświetlały się na jednej stronie "Do pobrania" ? Nie chcę aby wyświetlały się przy produktach tylko chcę mieć  osobną stronę..

Link to comment
Share on other sites

Cześć,

 

Da się, ale bez odrobiny kodowania się nie obejdzie. Zrobiłbym to w następujący sposób.

 

1. Skopiuj plik Tools.php (z folderu /classes/) i wklej do /override/classes/. Otwórz go. Zamień na górze

class ToolsCore

na

class Tools extends ToolsCore

2. Pod linią

protected static $_user_browser;

Dodaj

public static function getAllAttachments($id_lang)
{
return Db::getInstance()->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.')
}

Jest to modyfikacja domyślnego sposobu pobierania atrybutów z klasy Product.php (tam funkcja ma nazwę getAttachmentsStatic i jest ograniczona do jednego produktu).

 

3. Stwórz stronę CMS "do pobrania".

 

4. Edytuj /themes/default-bootstrap/cms.tpl

 

Znajdź

{$cms->content}

Zamień na

{if $cms->id == ID_TWOJEJ_STRONY}
		{foreach from=Tools::getAllAttachments({$cookie->id_lang}) item=attachment name=attachements}
					{if $smarty.foreach.attachements.iteration %3 == 1}<div class="row">{/if}
						<div class="col-lg-4">
							<h4><a href="{$link->getPageLink('attachment', true, NULL, "id_attachment={$attachment.id_attachment}")|escape:'html':'UTF-8'}">{$attachment.name|escape:'html':'UTF-8'}</a></h4>
							<p class="text-muted">{$attachment.description|escape:'html':'UTF-8'}</p>
							<a class="btn btn-default btn-block" href="{$link->getPageLink('attachment', true, NULL, "id_attachment={$attachment.id_attachment}")|escape:'html':'UTF-8'}">
								<i class="icon-download"></i>
								{l s="Download"} ({Tools::formatBytes($attachment.file_size, 2)})
							</a>
							<hr />
						</div>
					{if $smarty.foreach.attachements.iteration %3 == 0 || $smarty.foreach.attachements.last}</div>{/if}
				{/foreach}
{else}
{$cms->content}
{/if}
 
 

 

Nie testowałem tego, więc w razie czego pisz.

 

W każdym razie powinno Cię to naprowadzić do rozwiązania :)

Edited by electriz (see edit history)
  • Like 1
Link to comment
Share on other sites

Podziel się finalnym kodem - przyda się innym   :)

Ok, rozwiązałem

Były małe błędy w kodzie, brakowało znaków:  

')

na końcu w Tools.php i nie miałem przypisanych załączników do produktów co go bardzo bolało.

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...