Problém so šablónou At Cesmiro
Stránku mám na localhoste vo verzií PHP 5.6.31 mi to zobrazuje chyby:
Notice: Undefined property: stdClass::$contactid in...
Deprecated: Non-static method Joomla\CMS\Application\SiteApplication::getMenu() should not be called statically, assuming $this from incompatible context in....
Deprecated: Non-static method Joomla\CMS\Application\CMSApplication::getMenu() should not be called statically, assuming $this from incompatible context in....
Pod tými chybami mi zobrazí článok
Problém ale pokračuje keď chcem dať vyššiu verziu PHP, keď dám PHP 7.1.9, po kliknutí na konkrétny článok mi zobrazí iba chybu:
0 - Using $this when not in object context
zobrazí mi iba chybu - žiaden text článkov...
Prosím poraďte čo robiť, viem že ta šablona bude asi zastaralá, ako sa zbaviť tých chýb???
Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.
Ano šablona bude zřejmě staršího data. Máte dvě možnosti, buď zůstat na starším PHP, a v globalní nastavení Joomly nastavit Hlášení chyb na Žádné, nebo opravit kódy v šabloně. V tomto případě zřejmě někde v šabloně bude voláníMat napsal: Prosím poraďte čo robiť, viem že ta šablona bude asi zastaralá, ako sa zbaviť tých chýb???
JApplication::getMenu
JFactory::getApplication()->getMenu()
Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.
Pokud se vám ta hláška objeví při zobrazení článku, tak si zkuste najít /templates/xxxxxxx/html/com_content/article/default.php
Prostřednictvím FTP, když to neumíte, můžete použít rozšíření pro Joomla Phoca Commander, si v tomto souboru změňte kód, tak jak psal cony -
JApplication::getMenu
což by mělo nově být
JFactory::getApplication()->getMenu()
Druhou možností je, že si ten soubor přejmenujete a tak použijete tento soubor z joomly, ne ze šablony (pak se vám ale také začne jinak zobrazovat) a musel by jste měnit styly a možná i některé funkce, proto doporučuji jen tu změnu kódu.
Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.
<?php
defined('_JEXEC') or die;
require_once dirname(__FILE__) . str_replace('/', DIRECTORY_SEPARATOR, '/../../../functions.php');
JHtml::addIncludePath(JPATH_COMPONENT . '/helpers');
$component = new ArtxContent($this, $this->params);
$article = $component->article('article', $this->item, $this->item->params, array('print' => $this->print));
echo $component->beginPageContainer('item-page');
if (strlen($article->pageHeading))
echo $component->pageHeading($article->pageHeading);
$params = $article->getArticleViewParameters();
if (strlen($article->title)) {
$params['header-text'] = $this->escape($article->title);
if (strlen($article->titleLink))
$params['header-link'] = $article->titleLink;
}
// Change the order of "if" statements to change the order of article metadata header items.
if (strlen($article->created))
$params['metadata-header-icons'][] = "<span class=\"at-postdateicon\">" . $article->createdDateInfo($article->created) . "</span>";
if (strlen($article->modified))
$params['metadata-header-icons'][] = "<span class=\"at-postdateicon\">" . $article->modifiedDateInfo($article->modified) . "</span>";
if (strlen($article->published))
$params['metadata-header-icons'][] = "<span class=\"at-postdateicon\">" . $article->publishedDateInfo($article->published) . "</span>";
if (strlen($article->author))
$params['metadata-header-icons'][] = "<span class=\"at-postauthoricon\">" . $article->authorInfo($article->author, $article->authorLink) . "</span>";
if ($article->printIconVisible)
$params['metadata-header-icons'][] = $article->printIcon();
if ($article->emailIconVisible)
$params['metadata-header-icons'][] = $article->emailIcon();
if ($article->editIconVisible)
$params['metadata-header-icons'][] = $article->editIcon();
if (strlen($article->hits))
$params['metadata-header-icons'][] = $article->hitsInfo($article->hits);
// Build article content
$content = '';
if (!$article->introVisible)
$content .= $article->event('afterDisplayTitle');
$content .= $article->event('beforeDisplayContent');
if (strlen($article->toc))
$content .= $article->toc($article->toc);
if (strlen($article->text))
$content .= $article->text($article->text);
if ($article->introVisible)
$content .= $article->intro($article->intro);
if (strlen($article->readmore))
$content .= $article->readmore($article->readmore, $article->readmoreLink);
$content .= $article->event('afterDisplayContent');
$params['content'] = $content;
// Change the order of "if" statements to change the order of article metadata footer items.
if (strlen($article->category))
$params['metadata-footer-icons'][] = "<span class=\"at-postcategoryicon\">"
. $article->categories($article->parentCategory, $article->parentCategoryLink, $article->category, $article->categoryLink)
. "</span>";
// Render article
echo $article->article($params);
echo $component->endPageContainer();
Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.
Otázkou ale je kolik podobných anachronismů tam bude, jestli by se časově a náročností spíš nevyplatilo přejít na jinou, novou šablonu.
Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.
Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.
functions.php - som pozrel ale JApplication::getMenu som tam nenašiel a podobne aj v ostatných súboroch šablóny.
Keď si dám joomlu späť v php 5.6.31 ukazuje mi stále tieto tri chyby:
Notice: Undefined property: stdClass::$contactid in C:\wamp64\www\farnostjasenica\templates\at_cesmiro\classes\ArtxContentSingleArticle.php on line 40
Deprecated: Non-static method Joomla\CMS\Application\SiteApplication::getMenu() should not be called statically, assuming $this from incompatible context in C:\wamp64\www\farnostjasenica\templates\at_cesmiro\classes\ArtxContentSingleArticle.php on line 41
Kód v tých riadkoch vyzerá takto:
if (strlen($this->author)) {
$needle = 'index.php?option=com_contact&view=contact&id=' . $this->_article->contactid;
$item = JSite::getMenu()->getItems('link', $needle, true);
$this->authorLink = !empty($item) ? $needle . '&Itemid=' . $this->_article->id : $needle;
} else
Posledná chyba je táto:
Deprecated: Non-static method Joomla\CMS\Application\CMSApplication::getMenu() should not be called statically, assuming $this from incompatible context in C:\wamp64\www\farnostjasenica\libraries\src\Application\SiteApplication.php on line 275
Kód je:
public function getMenu($name = 'site', $options = array())
{
return parent::getMenu($name, $options);
}
Nejaké dobre rady čo by som mohol pomeniť v týchto chybách???
Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.
if (strlen($this->author)) {
$needle = 'index.php?option=com_contact&view=contact&id=' . $this->_article->contactid;
$item = JSite::getMenu()->getItems('link', $needle, true);
$this->authorLink = !empty($item) ? $needle . '&Itemid=' . $this->_article->id : $needle;
} else
Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.