PDA

Zobacz pełną wersję : Virute Mart - Szablon na Warp framework - nie wyświetla poprawnie stron



kkbb
02-05-2013, 10:50
Witam serdecznie,

[pisałem na forum VM, ale nie doczekałem odpowiedzi, więc piszę tutaj]
przyznam, że dziś pierwszy raz spróbowałem zainstalować VM. Instalowałem już wiele sklepów na różnych platform począwszy od osCommerce, przez Preste, a kończąc na Magento.

Znam już trochę czasu Joomla! i postanowiłem dać sobie szansę z VM. Cały proces instalacji jest oczywiście bardzo prosty.

Moje pierwsze poważne pytanie brzmi następująco:
Jak ważne są odpowiednie szablony w VM?
Bo do tej pory widzę, że każdy inny szablon, niż standardowy powoduje u mnie wiele problemów (choć może tak mi się tylko wydaje).
Mianowicie, nie wyświetlają mi się poprawnie strony.
Ustawiłem sobie oczywiście w Main Menu > Sklep > domyślny układ VM
Po wejściu w zakładkę Sklep niestety nie pokazało mi żadnych pozycji za Topką i Footerem (które są ustawione na każdą stronę).

Poszukałem modułów od VM i ustawiłem je na przykładowej pozycji z szablonu opartego na Warp framework (Yootheme) i to dało oczekiwany efekt.
Natomiast po kliknięciu w Kategorie, czy też Produkt nic się nie dzieje. Ładuje tę samą stronę. Podobnie po użyciu wyszukiwarki.

Czy to jest tak, że trzeba mieć odpowiedni szablon pod VM?
Jeżeli mam swój szablon i chciałbym by Sklep był w tym samym stylu, na tym samym szablonie, to czy konfiguracja szablonu, by się wszystko poprawnie otwierało jest mocno wymagająca, czy też znając podstawy w Joomla! mogę dać sobie z tym radę?

Dziękuję Wam z góry za wszelkie sugestie.

bogdanbojarski
02-05-2013, 14:54
Przyciski masz ze standardowego szblonu VM. Poza tym w opcjach sklepu (szablony masz możliwość wyłączenia css VM). Piszę o VM2.

kkbb
02-05-2013, 19:57
Przyciski masz ze standardowego szblonu VM. Poza tym w opcjach sklepu (szablony masz możliwość wyłączenia css VM). Piszę o VM2.

Dziękuję za odpowiedź. To o czym piszesz już widziałem, natomiast nie wyjaśnia to problemów z działaniem.
Pisałem o tym wyżej: w momencie kliknięcie na stronę produktu, stronę kategorii, wyszukiwarkę (cokolwiek), to przeładowuje stronę, adres jest jakby poprawny (np. /index.php/sklep/rekawy-z-folii-i-folii-aktywowanej w przypadku kategorii), ale nic się nie zmienia w układzie. Jest tak, jak na załączniku.

Podałbym linka, ale mam to na localhoście...

kkbb
03-05-2013, 18:16
Naprawdę nikt nie ma pomysłu, co jest nie tak? :(

bogdanbojarski
03-05-2013, 19:46
Trochę więcej informacji. Link do strony. Itp. tak trudno stwierdzić.
Jak masz na localhoście i nie masz za nieskonfigurowanym ruterem to daj IP

kkbb
03-05-2013, 22:45
Przerzuciłem na tymczasowy serwer akeebą.
http://91.239.67.8/~rafpol/index.php/sklep

bogdanbojarski
04-05-2013, 00:32
A masz w szablonie miejsce na komponent?
Takie coś <jdoc:include type="component" />

kkbb
04-05-2013, 12:36
W pliku component.php mam:


// no direct access
defined('_JEXEC') or die('Restricted access');

// get html head data
$head = $this->getHeadData();

// remove deprecated meta-data (html5)
unset($head['metaTags']['http-equiv']);
unset($head['metaTags']['standard']['title']);
unset($head['metaTags']['standard']['rights']);
unset($head['metaTags']['standard']['language']);

$this->setHeadData($head);

?>
<!DOCTYPE HTML>
<html lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>" >
<head>
<meta charset="<?php echo $this->getCharset(); ?>" />
<jdoc:include type="head" />
</head>
<body class="contentpane">
<jdoc:include type="message" />
<jdoc:include type="component" />
</body>
</html>

zwiastun
04-05-2013, 13:12
plik component.php nie służy do generowania kodu wynikowego. Czy masz ten wiersz w pliku index.php ?

kkbb
04-05-2013, 13:33
To jest szablon na Warp Framework, więc index.php wygląda inaczej, niż na standardowych szablonach:

// no direct access
defined('_JEXEC') or die('Restricted access');

// include config
include_once(dirname(__FILE__).'/config.php');

// get warp
$warp = Warp::getInstance();

// load main template file, located in /layouts/template.php
echo $warp['template']->render('template');

Gdy wejdę w /layouts/template/php, to <jdoc:include type="component" /> nie jest nigdzie zawarte:

// get template configuration
include($this['path']->path('layouts:template.config.php'));

?>
<!DOCTYPE HTML>
<html lang="<?php echo $this['config']->get('language'); ?>" dir="<?php echo $this['config']->get('direction'); ?>">

<head>
<?php echo $this['template']->render('head'); ?>
</head>

<body id="page" class="page <?php echo $this['config']->get('body_classes'); ?>" data-config='<?php echo $this['config']->get('body_config','{}'); ?>'>

<?php if ($this['modules']->count('absolute')) : ?>
<div id="absolute">
<?php echo $this['modules']->render('absolute'); ?>
</div>
<?php endif; ?>

<?php if ($this['modules']->count('toolbar-l + toolbar-r') || $this['config']->get('date')) : ?>
<div id="block-toolbar"><div class="wrapper">

<div id="toolbar" class="clearfix">

<?php if ($this['modules']->count('toolbar-l') || $this['config']->get('date')) : ?>
<div class="float-left">

<?php if ($this['config']->get('date')) : ?>
<time datetime="<?php echo $this['config']->get('datetime'); ?>"><?php echo $this['config']->get('actual_date'); ?></time>
<?php endif; ?>

<?php echo $this['modules']->render('toolbar-l'); ?>

</div>
<?php endif; ?>

<?php if ($this['modules']->count('toolbar-r')) : ?>

<?php if ($this['modules']->count('toolbar-r')) : ?>
<div class="float-right"><?php echo $this['modules']->render('toolbar-r'); ?></div>
<?php endif; ?>

<?php endif; ?>

</div>

</div></div>
<?php endif; ?>


<div id="block-header"><div class="wrapper">

<header id="header" class="clearfix">

<?php if ($this['modules']->count('logo + headerbar')) : ?>
<div id="headerbar" class="clearfix">

<?php if ($this['modules']->count('logo')) : ?>
<a id="logo" href="<?php echo $this['config']->get('site_url'); ?>"><?php echo $this['modules']->render('logo'); ?></a>
<?php endif; ?>

<?php echo $this['modules']->render('headerbar'); ?>

</div>
<?php endif; ?>

<?php if ($this['modules']->count('menu + search')) : ?>
<div id="menubar" class="clearfix">

<?php if ($this['modules']->count('menu')) : ?>
<nav id="menu"><?php echo $this['modules']->render('menu'); ?></nav>
<?php endif; ?>

<?php if ($this['modules']->count('search')) : ?>
<div id="search"><?php echo $this['modules']->render('search'); ?></div>
<?php endif; ?>

</div>
<?php endif; ?>

<?php if ($this['modules']->count('banner')) : ?>
<div id="banner"><?php echo $this['modules']->render('banner'); ?></div>
<?php endif; ?>

</header>

</div></div>

<?php if ($this['modules']->count('top-a')) : ?>
<div id="block-top-a" class="<?php echo $this['config']->get('top-a-bg'); ?>">
<div class="block-top-a wrapper <?php if($this['config']->get('block-top-a')) echo 'max-width'.$this['config']->get('block-top-a'); ?>">

<section id="top-a" class="grid-block"><?php echo $this['modules']->render('top-a', array('layout'=>$this['config']->get('top-a'))); ?></section>


</div>
</div>
<?php endif; ?>

<div id="block-main"><div class="wrapper">
<?php if ($this['modules']->count('top-b')) : ?>
<section id="top-b" class="grid-block"><?php echo $this['modules']->render('top-b', array('layout'=>$this['config']->get('top-b'))); ?></section>
<?php endif; ?>

<?php if ($this['modules']->count('innertop + innerbottom + sidebar-a + sidebar-b') || $this['config']->get('system_output')) : ?>
<div id="main" class="grid-block">

<div id="maininner" class="grid-box">

<?php if ($this['modules']->count('innertop')) : ?>
<section id="innertop" class="grid-block"><?php echo $this['modules']->render('innertop', array('layout'=>$this['config']->get('innertop'))); ?></section>
<?php endif; ?>

<?php if ($this['modules']->count('breadcrumbs')) : ?>
<section id="breadcrumbs"><?php echo $this['modules']->render('breadcrumbs'); ?></section>
<?php endif; ?>

<?php if ($this['config']->get('system_output')) : ?>
<section id="content" class="grid-block"><?php echo $this['template']->render('content'); ?></section>
<?php endif; ?>

<?php if ($this['modules']->count('innerbottom')) : ?>
<section id="innerbottom" class="grid-block"><?php echo $this['modules']->render('innerbottom', array('layout'=>$this['config']->get('innerbottom'))); ?></section>
<?php endif; ?>

</div>
<!-- maininner end -->

<?php if ($this['modules']->count('sidebar-a')) : ?>
<aside id="sidebar-a" class="grid-box"><?php echo $this['modules']->render('sidebar-a', array('layout'=>'stack')); ?></aside>
<?php endif; ?>

<?php if ($this['modules']->count('sidebar-b')) : ?>
<aside id="sidebar-b" class="grid-box"><?php echo $this['modules']->render('sidebar-b', array('layout'=>'stack')); ?></aside>
<?php endif; ?>

</div>
<?php endif; ?>
<!-- main end -->

<?php if ($this['modules']->count('bottom-a')) : ?>
<section id="bottom-a" class="grid-block"><?php echo $this['modules']->render('bottom-a', array('layout'=>$this['config']->get('bottom-a'))); ?></section>
<?php endif; ?>

</div></div>

<?php if ($this['modules']->count('bottom-b')) : ?>
<div id="block-bottom"><div class="wrapper">

<section id="bottom-b" class="grid-block"><?php echo $this['modules']->render('bottom-b', array('layout'=>$this['config']->get('bottom-b'))); ?></section>

</div></div>
<?php endif; ?>

<?php if ($this['modules']->count('footer + debug') || $this['config']->get('warp_branding') || $this['config']->get('totop_scroller')) : ?>
<div id="block-footer"><div class="wrapper">

<footer id="footer">

<?php if ($this['config']->get('totop_scroller')) : ?>
<a id="totop-scroller" href="#page"></a>
<?php endif; ?>

<?php
echo $this['modules']->render('footer');
$this->output('warp_branding');
echo $this['modules']->render('debug');
?>

</footer>

</div></div>
<?php endif; ?>

<?php echo $this->render('footer'); ?>

</body>
</html>



Więc powinien spróbować to wstawić po tym?
:

<?php if ($this['config']->get('system_output')) : ?>
<section id="content" class="grid-block"><?php echo $this['template']->render('content'); ?></section>
<?php endif; ?>

- - - Updated - - -

OK, wielkie dzięki koledzy! Zadziałało! :)
To forum jest wspaniałe :)

kkbb
09-05-2013, 14:52
Odświeżam, bo jednak nie do końca zachowuje się poprawnie VM na moim szablonie.
Poszczególne elementy komponentu takie jak: strona kategorii, strona produktu, zamówienie itd. się pokazują poprawnie.
Natomiast nie ładuje w ogóle panelu klienta (z historią zamówienia, zmianą ustawień itd.).

Stąd moje pytanie: czy ten kod
<jdoc:include type="component" /> jest jedynym, który odpowiada za ładowanie się komponentu?

Dziękuję Wam z góry za jakiekolwiek pomysły...

bogdanbojarski
09-05-2013, 20:40
Zasadniczo tak. Może jakiś konflikt bibliotek?

kkbb
09-05-2013, 21:12
Możliwe.
Natomiast nie wiem, jak to sprawdzić.
Nigdy nie wiem, co mam zrobić w takiej sytuacji, ani - co najważniejsze - jak temu zaradzić.
Ktoś może mi doradzić osobę, która w miarę rozsądnych pieniądzach zajmuje się bibliotekami i która by to poskładała?

kkbb
09-05-2013, 22:10
Zainstalowałem plugin jQuery Easy. Zainstalowałem go również na innym moim serwisie na którym miałem problem z biblioteką i ten program to wyeliminował, także jest jakiś pozytyw.
Natomiast nie pomogło to w sklepie i ładowaniu się komponentu VM z panelem klienta.

@bogdan bojarski, czyli można wykluczyć konflikt bibliotek, prawda?
Jakiś inny pomysł?

Gall Anonim
13-05-2013, 23:28
VM 2 pobaw się źródłem ładowania jQuery w konfiguracji VM2
Pzdr