Zobacz pełną wersję : Virtuemart - Biała Strona?
Zainstalowałem sobie VM i cały proces instalacji aktualizacji do VM 1.1.1 poszedł bezproblemowo.
Z panelu Admina mogę konfigurować sklep i wszystko wygląda ok dane się zapisują itp. Problem zaczyna się gdy chcę wejść do sklepu wybierając odnośnik z menu na głównej wtedy wyskakuje biała strona.
Być może jest wyłączone w konfiguracji php raportaowanie błędów i dlatego nie widzisz co jest źle
Dodaj w pliku index.php skórki na początku
error_reporting(E_ALL);
i zobacz czy coś się wyświetli.
A możesz mi dokładniej powiedzieć gdzie to mam niby wkleić w index.php skórki strony?
Nic to nie pomogło nadal biała strona nie ma żadnej informacji
http://se-forum.pl/katalog-projekt.html
fakt
Jak zaglądniesz w kod strony to zobaczysz ze kod Joomli nie jest analizowany.
Może wyłącz na początek SEF, a potem włącz tryb debug
O udało się wywołać błąd. Możesz zajrzeć pod w/w link.
kawałek kodu z linią 159 menu.php ten fragment na czerwono to linia 159
// second pass - collect 'open' menus
$open = array( $Itemid );
$count = 20; // maximum levels - to prevent runaway loop
$id = $Itemid;
while (--$count) {
if (isset($rows[$id]) && $rows[$id]->parent > 0) {
$id = $rows[$id]->parent;
$open[] = $id;
} else {
break;
}
}
$class_sfx = null;
mosRecurseListMenu( 0, 0, $children, $open, $indents, $class_sfx, $hilightid );
echo "<br/>"; ?>
<script type="text/javascript">
<!--
var obj_cssMenu1 = new CSSMenu("cssMenu1");
obj_cssMenu1.setTimeouts(400, 200, 800);
obj_cssMenu1.setSubMenuOffset(0, 0, 0, 0);
obj_cssMenu1.setHighliteCurrent(true);
obj_cssMenu1.setAnimation('none');
obj_cssMenu1.show();
//-->
</script>
<?php echo "</div>";
}
/**
* Utility function to recursively work through a vertically indented
* hierarchial menu
*/
function sefRelToAbs($value) {
return JRoute::_($value);
}
function mosRecurseListMenu( $id, $level, &$children, $open, &$indents, $class_sfx, $highlight ) {
global $Itemid;
global $HTTP_SERVER_VARS, $mosConfig_live_site;
if (@$children[$id]) {
$n = min( $level, count( $indents )-1 );
echo $indents[$n][0];
foreach ($children[$id] as $row) {
switch ($row->type) {
case 'separator':
// do nothing
$row->link = "seperator";
break;
case 'url':
if ( eregi( 'index.php\?', $row->link ) ) {
if ( !eregi( 'Itemid=', $row->link ) ) {
$row->link .= '&Itemid='. $row->id;
}
}
break;
default:
$row->link .= "&Itemid=$row->id";
break;
}
$li = "\n".$indents[$n][1] ;
$current_itemid = trim( JArrayHelper::getValue( $_REQUEST, 'Itemid', 0 ) );
if ($row->link != "seperator" &&
$current_itemid == $row->id ||
$row->id == $highlight ||
(sefRelToAbs( substr($_SERVER['PHP_SELF'],0,-9) . $row->link)) == $_SERVER['REQUEST_URI'] ||
(sefRelToAbs( substr($_SERVER['PHP_SELF'],0,-9) . $row->link)) == $HTTP_SERVER_VARS['REQUEST_URI']) {
$li = "<li>";
}
echo $li;
echo mosGetLink( $row, $level, $class_sfx );
mosRecurseListMenu( $row->id, $level+1, $children, $open, $indents, $class_sfx, "" );
echo $indents[$n][2];
}
echo "\n".$indents[$n][3];
}
}
function getParentRow($rows, $id) {
if (isset($rows[$id]) && $rows[$id]) {
if($rows[$id]->parent > 0) {
return $rows[$id]->parent;
}
}
return -1;
}
Wydaje mi sie z bład dotyczy właśnie SEF, być VM nie jest kompatybilny do końca z tym. Wyłącz i sprawdź
I błąd dotyczy lini 159
Poprawiłem ten wyżej post, A co do wyłączenia SEF nic nie daje wyłączyłem i nadal to samo.
hmm, wszystko sie rozbija o to sefreltoabs(), gdyż zostało już to zadeklarowane wcześniej przez VM. Rozumiem że skórka agriculture_15 to jest jakaś dodatkowa. Zmień skórkę na którąś z domyślnych i zobacz czy pomoże. Jeżeli pomoże porówanj kod pliku menu.php tych dwóch skórek, może coś Ci się nasunie
Na innej skórze działa więc problem w leży w skórce tylko jak ją poprawić.
EDIT Już sobie poradziłem wszystko smiga rozwiązanie znalazłem na jakimś zachodnim forum.
musisz spróbować porównać kod pliku z działającej skórki z tym z tej złej, może coś Ci się nasunie
Znalazłem rozwiązanie na jakimś zachodnim forum. Więc do zamknięcia
To podaj je od razu, następna osoba nie będzie musiała szukać :)
Ten fragment w menu.php
/**
* Utility function to recursively work through a vertically indented
* hierarchial menu
*/
function sefRelToAbs($value) {
return JRoute::_($value);
}
Zastąpiłem tym
/**
* Utility function to recursively work through a vertically indented
* hierarchial menu
*/
if (!function_exists('sefRelToAbs')) {
function sefRelToAbs($value) {
// Replace all & with & as the router doesn't understand &
$url = str_replace('&', '&', $value);
if(substr(strtolower($url),0,9) != "index.php") return $url;
$uri = JURI::getInstance();
$prefix = $uri->toString(array('scheme', 'host', 'port'));
return $prefix.JRoute::_($url);
}
}
vBulletin® v4.2.5, Prawa przedruku © 2024 vBulletin Solutions, Inc. Wszystkie prawa zastrzeżone.
Tłumaczenie: Polskie Centrum Joomla!