Zobacz pełną wersję : konflikt modułów Lof ArticlesSLideShow Module oraz Joomleague
Na templatce beez20 w joomla 2.5.9 mam problem z "dogadaniem się" modułów: Lof ArticlesSLideShow Module oraz Joomleague (Tabela)
Chciałam żeby oba były na stronie głównej.
Tabela i inne moduły z joomleague już były opublikowane gdy opublikowałam SlideShow (miał wyświetlić się w pozycji 12)
I się nie wyświetlił. A nawet przeciwnie - zniknęło wszystko, powstała biała strona.
Kierując się wskazówkami z forum powyłączałam po kolei inne instalowane moduły i wyszło że dzieje się tak ze względu na joomleague.
joomleague musi zostać więc zaczęłam szukać innego rozwiązania:
przez loadposition załadowałam SlideShow do artykułu i wyróżniłam by był na głównej.
Pokazał się owszem, joomleague również.
Wydawało by się że problem jest rozwiązany jednakże przy slideshow nie chciałam żeby wyświetlał się tytuł tego artykułu, data, autor, kategoria.
Ponieważ chodziło tylko o ten jeden artykuł wyłączylam odpowiednie opcje tylko w nim. Ale nie zniknęły.
(No i też nie do końca chcę by ten moduł był jako artykuł)
Zaczęłam myśleć że może to ze względu na mootools i jquery ( o których moje pojęcie jest zielone, wiem tylko że się kłócą i najlepiej żeby moduły były z gatunku jednego).
Zainstalowałam jquery easy - ale... nie mam pojęcia co tam ustawić, a ponadto wyszło mi że oba moduły i tak są na jquery. Więc konfliktu nie powinno być... (no chyba że źle mi wyszło:)
Czy ktoś ma pomysł co mogę zrobić żeby to ruszyło?
zdaje sie ze to nie konflikt bibliotek tylko pozycji modułów - jesli joomleague jest w module po lewej - to wyswietla i sie takze SlideShow. Ale jesli chce by joomleague bylo z prawej to (position-8) albo w stopce ( position-11) to wtedy powstaje problem.
Jakies sugestie co do rozwiazania?
- - - Updated - - -
poprawka z powrotem: jak daje tabele po prawej - to na podstronach gdzie nie ma slideshow sie wyswietla a tam gdzie slideshow nie ( jest biala strona). czyli jednak konflikt modulow/bibliotek
rece mi juz opadaja. nie mam pojecia jak to naprawic
i kolejny wniosek... jesli daje:
Slide w position-12 a tabela w position-6 - to mam biala strone
jesli daje slide w innych position - to tabela w position-6 dziala i slide dziala
jesli daje slide w position-6 a tabele w position-12 (czyli odwracam to co faktycznie chce) - to tez oba dzialaja
wychodzi ze jest problem z tym jednym jedynym ukladem...
ponizej index.php bo jestem zdesperowana :)
<?php/**
* @package Joomla.Site
* @subpackage Templates.beez_20
* @copyright Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
// No direct access.
defined('_JEXEC') or die;
jimport('joomla.filesystem.file');
// check modules
$showRightColumn = ($this->countModules('position-3') or $this->countModules('position-6') or $this->countModules('position-8'));
$showbottom = ($this->countModules('position-9') or $this->countModules('position-10') or $this->countModules('position-11'));
$showleft = ($this->countModules('position-4') or $this->countModules('position-7') or $this->countModules('position-5'));
if ($showRightColumn==0 and $showleft==0) {
$showno = 0;
}
JHtml::_('behavior.framework', true);
// get params
$color = $this->params->get('templatecolor');
$logo = $this->params->get('logo');
$navposition = $this->params->get('navposition');
$app = JFactory::getApplication();
$doc = JFactory::getDocument();
$templateparams = $app->getTemplate(true)->params;
$doc->addStyleSheet($this->baseurl.'/templates/system/css/system.css');
$doc->addStyleSheet($this->baseurl.'/templates/'.$this->template.'/css/position.css', $type = 'text/css', $media = 'screen,projection');
$doc->addStyleSheet($this->baseurl.'/templates/'.$this->template.'/css/layout.css', $type = 'text/css', $media = 'screen,projection');
$doc->addStyleSheet($this->baseurl.'/templates/'.$this->template.'/css/print.css', $type = 'text/css', $media = 'print');
$files = JHtml::_('stylesheet', 'templates/'.$this->template.'/css/general.css', null, false, true);
if ($files):
if (!is_array($files)):
$files = array($files);
endif;
foreach($files as $file):
$doc->addStyleSheet($file);
endforeach;
endif;
$doc->addStyleSheet('templates/'.$this->template.'/css/'.htmlspecialchars($color).'.css');
if ($this->direction == 'rtl') {
$doc->addStyleSheet($this->baseurl.'/templates/'.$this->template.'/css/template_rtl.css');
if (file_exists(JPATH_SITE . '/templates/' . $this->template . '/css/' . $color . '_rtl.css')) {
$doc->addStyleSheet($this->baseurl.'/templates/'.$this->template.'/css/'.htmlspecialchars($color).'_rtl.css');
}
}
$doc->addScript($this->baseurl.'/templates/'.$this->template.'/javascript/hide.js', 'text/javascript');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>" >
<head>
<jdoc:include type="head" />
<!--[if lte IE 6]>
<link href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template; ?>/css/ieonly.css" rel="stylesheet" type="text/css" />
<?php if ($color=="personal") : ?>
<style type="text/css">
#line {
width:98% ;
}
.logoheader {
height:200px;
}
#header ul.menu {
display:block !important;
width:98.2% ;
}
</style>
<?php endif; ?>
<![endif]-->
<!--[if IE 7]>
<link href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template; ?>/css/ie7only.css" rel="stylesheet" type="text/css" />
<![endif]-->
<script type="text/javascript">
var big ='<?php echo (int)$this->params->get('wrapperLarge');?>%';
var small='<?php echo (int)$this->params->get('wrapperSmall'); ?>%';
var altopen='<?php echo JText::_('TPL_BEEZ2_ALTOPEN', true); ?>';
var altclose='<?php echo JText::_('TPL_BEEZ2_ALTCLOSE', true); ?>';
var bildauf='<?php echo $this->baseurl ?>/templates/<?php echo $this->template; ?>/images/plus.png';
var bildzu='<?php echo $this->baseurl ?>/templates/<?php echo $this->template; ?>/images/minus.png';
var rightopen='<?php echo JText::_('TPL_BEEZ2_TEXTRIGHTOPEN', true); ?>';
var rightclose='<?php echo JText::_('TPL_BEEZ2_TEXTRIGHTCLOSE', true); ?>';
var fontSizeTitle='<?php echo JText::_('TPL_BEEZ2_FONTSIZE', true); ?>';
var bigger='<?php echo JText::_('TPL_BEEZ2_BIGGER', true); ?>';
var reset='<?php echo JText::_('TPL_BEEZ2_RESET', true); ?>';
var smaller='<?php echo JText::_('TPL_BEEZ2_SMALLER', true); ?>';
var biggerTitle='<?php echo JText::_('TPL_BEEZ2_INCREASE_SIZE', true); ?>';
var resetTitle='<?php echo JText::_('TPL_BEEZ2_REVERT_STYLES_TO_DEFAULT', true); ?>';
var smallerTitle='<?php echo JText::_('TPL_BEEZ2_DECREASE_SIZE', true); ?>';
</script>
</head>
<body>
<div id="all">
<div id="back">
<div id="header">
<div class="logoheader">
<h1 id="logo">
<?php if ($logo): ?>
<img src="<?php echo $this->baseurl ?>/<?php echo htmlspecialchars($logo); ?>" alt="<?php echo htmlspecialchars($templateparams->get('sitetitle'));?>" />
<?php endif;?>
<?php if (!$logo ): ?>
<?php echo htmlspecialchars($templateparams->get('sitetitle'));?>
<?php endif; ?>
<span class="header1">
<?php echo htmlspecialchars($templateparams->get('sitedescription'));?>
</span></h1>
</div><!-- end logoheader -->
<ul class="skiplinks">
<li><a href="#main" class="u2"><?php echo JText::_('TPL_BEEZ2_SKIP_TO_CONTENT'); ?></a></li>
<li><a href="#nav" class="u2"><?php echo JText::_('TPL_BEEZ2_JUMP_TO_NAV'); ?></a></li>
<?php if($showRightColumn ):?>
<li><a href="#additional" class="u2"><?php echo JText::_('TPL_BEEZ2_JUMP_TO_INFO'); ?></a></li>
<?php endif; ?>
</ul>
<h2 class="unseen"><?php echo JText::_('TPL_BEEZ2_NAV_VIEW_SEARCH'); ?></h2>
<h3 class="unseen"><?php echo JText::_('TPL_BEEZ2_NAVIGATION'); ?></h3>
<jdoc:include type="modules" name="position-1" />
<div id="line">
<!-- <div id="fontsize"></div>
<h3 class="unseen"><?php echo JText::_('TPL_BEEZ2_SEARCH'); ?></h3>-->
<jdoc:include type="modules" name="position-0" />
</div> <!-- end line -->
<div id="klubypl"> <jdoc:include type="modules" name="menu-kluby" /><jdoc:include type="modules" name="glowne-menu" /></div>
</div><!-- end header -->
<div id="<?php echo $showRightColumn ? 'contentarea2' : 'contentarea'; ?>">
<div id="breadcrumbs">
<jdoc:include type="modules" name="position-2" />
</div>
<?php if ($navposition=='left' and $showleft) : ?>
<div class="left1 <?php if ($showRightColumn==NULL){ echo 'leftbigger';} ?>" id="nav">
<jdoc:include type="modules" name="position-7" style="beezDivision" headerLevel="3" />
<jdoc:include type="modules" name="position-4" style="beezHide" headerLevel="3" state="0 " />
<jdoc:include type="modules" name="position-5" style="beezTabs" headerLevel="2" id="3" />
</div><!-- end navi -->
<?php endif; ?>
<div id="<?php echo $showRightColumn ? 'wrapper' : 'wrapper2'; ?>" <?php if (isset($showno)){echo 'class="shownocolumns"';}?>>
<div id="main">
<?php if ($this->countModules('position-12')): ?>
<div id="top"><jdoc:include type="modules" name="position-12" />
</div>
<?php endif; ?>
<jdoc:include type="message" />
<jdoc:include type="component" />
</div><!-- end main -->
</div><!-- end wrapper -->
<?php if ($showRightColumn) : ?>
<h2 class="unseen">
<?php echo JText::_('TPL_BEEZ2_ADDITIONAL_INFORMATION'); ?>
</h2>
<div id="right">
<a id="additional"></a>
<jdoc:include type="modules" name="position-6" style="beezDivision" headerLevel="3"/>
<jdoc:include type="modules" name="position-8" style="beezDivision" headerLevel="3" />
<jdoc:include type="modules" name="position-3" style="beezDivision" headerLevel="3" />
</div><!-- end right -->
<?php endif; ?>
<?php if ($navposition=='center' and $showleft) : ?>
<div class="left <?php if ($showRightColumn==NULL){ echo 'leftbigger';} ?>" id="nav" >
<jdoc:include type="modules" name="position-7" style="beezDivision" headerLevel="3" />
<jdoc:include type="modules" name="position-4" style="beezHide" headerLevel="3" state="0 " />
<jdoc:include type="modules" name="position-5" style="beezTabs" headerLevel="2" id="3" />
</div><!-- end navi -->
<?php endif; ?>
<div class="wrap"></div>
</div> <!-- end contentarea -->
</div><!-- back -->
</div><!-- all -->
<div id="footer-outer">
<?php if ($showbottom) : ?>
<div id="footer-inner">
<div id="bottom">
<div class="box box1"> <jdoc:include type="modules" name="position-9" style="beezDivision" headerlevel="3" /></div>
<div class="box box2"> <jdoc:include type="modules" name="position-10" style="beezDivision" headerlevel="3" /></div>
<div class="box box3"> <jdoc:include type="modules" name="position-11" style="beezDivision" headerlevel="3" /></div>
</div>
</div>
<?php endif ; ?>
<div id="footer-sub">
<div id="footer">
<jdoc:include type="modules" name="position-14" />
<p>
<?php echo JText::_('TPL_BEEZ2_POWERED_BY');?> <a href="http://www.joomla.org/">Joomla!®</a>
</p>
</div><!-- end footer -->
</div>
</div>
<jdoc:include type="modules" name="debug" />
</body>
</html>
włączyłam maxymalne raportowanie błędów ( nie sprawdziłam wcześniej że mam najprostsze i stąd niewiedza) i pokazało mi:
Cannot redeclare class PhpThumbFactory in /Applications/MAMP/htdocs/pljoomsport/modules/mod_lofarticlesslideshow/libs/phpthumb/ThumbLib.inc.php on line 66
co powinnam zrobić z tą klasą? znalazłam kilka porad na angielskich forach ale wg sprawdzających rozwiązania, porady te były nieskuteczne...
ku potomnym... bo widzę że nikt nie wie co z tym zrobić...
wyszło mi na joomli testowej - ale tak mieszałam że nie wiem jak to naprawiłam w efekcie.
porównuję zatem kod tam gdzie mam zepsute i tam gdzie jest już ok i wychodzi że:
katalog modules/mod_lofarticlesslideshow/libs/
w pliku helpers.php
w okolicy linii 17 jest kod :
if( !defined('PhpThumbFactoryLoaded') ) {
require_once dirname(__FILE__).DS.'libs'.DS.'phpthumb/ThumbLib.inc.php';
}
define('PhpThumbFactoryLoaded',1);
}
Zamiast tego dałam:
if( !defined('PhpThumbFactory') ) {
if( !class_exists("PhpThumbFactory")){
require_once dirname(__FILE__).DS.'libs'.DS.'phpthumb/ThumbLib.inc.php';
}
define('PhpThumbFactory',1);
}
Doprowadziło to że zaczęły się wyświetlać oba moduły o których pisałam wcześniej, ale mam komunikaty z maximum raportowania błędów:
Strict Standards: Only variables should be assigned by reference in /Applications/MAMP/htdocs/pljoomleague/modules/mod_lofarticlesslideshow/helper.php on line 294
Strict Standards: Non-static method modJLGRankingHelper::getData() should not be called statically in /Applications/MAMP/htdocs/pljoomleague/modules/mod_joomleague_ranking/mod_joomleague_ranking.php on line 24
Strict Standards: Only variables should be assigned by reference in /Applications/MAMP/htdocs/pljoomleague/modules/mod_joomleague_ranking/helper.php on line 44
Strict Standards: call_user_func_array() expects parameter 1 to be a valid callback, non-static method JLGRanking::_cachedGetData() should not be called statically in /Applications/MAMP/htdocs/pljoomleague/libraries/joomla/cache/controller/callback.php on line 159
Strict Standards: Non-static method JLGRanking::_initTeams() should not be called statically in /Applications/MAMP/htdocs/pljoomleague/components/com_joomleague/helpers/ranking.php on line 258
Strict Standards: Non-static method JLGRanking::_getMatches() should not be called statically in /Applications/MAMP/htdocs/pljoomleague/components/com_joomleague/helpers/ranking.php on line 259
WYłączenie maximum raportowania sprawia że część błędów się przestaje wyświetlać ale część niestety zostaje.
(na tej testowej stronie mam wrażenie że zrobiłam jednak zupełnie co innego po czym restartowałam serwer Apache i wyłączyłam raportowanie maxymalne - pomogło, niestety nie zapisywałam poczynań więc nie pamiętam...)
Kolejny etap:
we wspomnianym pliku helpers.php:
odnalazlam wszystkie fragmenty gdzie jest PhpThumbFactory
i w każdym dodałam cyfrę 2: czyli wyglądało to: PhpThumbFactory2
to samo zrobiłam w pliku ThumbLib.inc.php który znajduje się w katalogu modules/mod_lofarticlesslideshow/libs/phpthumb
zapisałam pliki
odświeżyłam strone.
nie było zmian.
wróciłam zatem do pozycji wyjsciowej likwidujac cyfry 2 przy PhpThumbFactory z kazdego wspomnianego wyzej miejsca
zapisalam pliki
odwiezylam strone
przy domyslnym raportowaniu bledow - wyswietlaja sie oba moduly i zadnych bledow
zatem mozna powiedziec - SUKCES
tylko zastanawiam sie co z tymi bledami ktore wyswietlaja sie gdy przelacze sie na maxymalne raportowanie - jesli ktos wie na ile moga byc istotne to bardzo prosze o pomoc.
i jakby ktos umial wytlumaczyc racjonalnie dlaczego to co zrobilam pomoglo - to bede wdzieczna bo ja o php to nie mam bladego pojecia... jeszcze.
a bledy ktore widac przy walczeniu maxymalnego raportowania to:
Strict Standards: Non-static method modJLGRankingHelper::getData() should not be called statically in /Applications/MAMP/htdocs/pljoomleague/modules/mod_joomleague_ranking/mod_joomleague_ranking.php on line 24
Strict Standards: Only variables should be assigned by reference in /Applications/MAMP/htdocs/pljoomleague/modules/mod_joomleague_ranking/helper.php on line 44
zwiastun
15-03-2013, 19:54
Strict Standards - to są ostrzeżenia wskazujące kod, który nie jest zgodny z aktualnymi standardami kodowania. Zignoruj.
vBulletin® v4.2.5, Prawa przedruku © 2024 vBulletin Solutions, Inc. Wszystkie prawa zastrzeżone.
Tłumaczenie: Polskie Centrum Joomla!