Problém so šablónou At Cesmiro
18. lis 2018 12:18 #137776
Ahojte, prešiel som na joomlu 3.9.0 so šablonou At Cesmiro:
www.joomla24.com/remository/Download/Tem...ates/At_Cesmiro.html
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???
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???
18. lis 2018 12:58 #137778
což by mělo nově být
Ale dost možná tam toho bue víc.
Odpověď od Cony

Moderátor
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???
Code:
JApplication::getMenu
Code:
JFactory::getApplication()->getMenu()
18. lis 2018 16:16 #137782
Odpověď od Ernst
Joomla Expert
ano, je to tak, jak psal Cony.
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 -
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.
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.
18. lis 2018 23:49 #137793
Odpověď od Mat
Uživatel
Našiel som default.php, ale konkrétne veci nie. Toto je to čo som tam našiel, čo môžem v tom zmeniť, prípadne vymazať aby to fungovalo?
Code:
<?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();
19. lis 2018 00:13 #137794
Odpověď od Cony

Moderátor
Tady zřejmě nic. Šablona používá jakýsi svůj vlastní framework, nepoužívá standardy Joomly, vstupní bod bude v souboru functions.php v hlavním adresáři šablony, ale těch souborů tam bude zřejmě někde víc. kuste porhledat celý adresář na ::getMenu.
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.
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.
19. lis 2018 00:18 #137796
Odpověď od Ernst
Joomla Expert
jen pro jistotu - kde je ten default.php umístěn?
19. lis 2018 19:07 #137808
Odpověď od Mat
Uživatel
Súbor default.php mám umiestnený tam ako ste mi povedali: /templates/xxxxxxx/html/com_content/article/default.php
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:
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:
Nejaké dobre rady čo by som mohol pomeniť v týchto chybách???
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:
Code:
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:
Code:
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???
19. lis 2018 19:55 #137809
Odpověď od Ernst
Joomla Expert
Je těžké radit, jen takhle z pár řádků. Kdyby to bylo na netu a byl k tomu přístup, tak by se daly některé chyby opravit, ale je to pracné a mohou se objevit zase další chyby.
Jednodušší je možná to předělat na novou šablonu.
Jednodušší je možná to předělat na novou šablonu.
19. lis 2018 20:16 #137810
Odpověď od Cony

Moderátor
Zkuste odstranit celý tento blok
Zakomonetujte jej, nebo smažte. Zřejmě se jedná o odkaz na profil autora, pokud nemáte vytvořené profily (kontakty), stejně se nic nezobrazí.
Code:
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