HomeCustom [Réglé]
NicoLas Membre non connecté
Booster Minigun
- Booster Minigun
- Voir le profil du membre NicoLas
- Inscrit le : 17/02/2018
- Site internet
- Groupes :
J'ai suivi le tuto pour le module HomeCustom, mais voici l'erreur que j'ai
Une idée d'ou ça peut venir ?
Nico_Lyoko
xela Membre non connecté
- Modérateur
- Voir le profil du membre xela
- Inscrit le : 26/12/2015
- Groupes :
- Equipe Rédaction
D'après le tuto, le bon appel de la méthode est celui-ci :
Code PHP :
$columns_disabled = Environment::get_graphical_environment()->get_columns_disabled();
Cordialement,
Xela.
NicoLas Membre non connecté
Booster Minigun
- Booster Minigun
- Voir le profil du membre NicoLas
- Inscrit le : 17/02/2018
- Site internet
- Groupes :
xela :
Bonjour,
D'après le tuto, le bon appel de la méthode est celui-ci :
Cordialement,
Xela.
D'après le tuto, le bon appel de la méthode est celui-ci :
Code PHP :
$columns_disabled = Environment::get_graphical_environment()->get_columns_disabled();
Cordialement,
Xela.
C'est ce que j'ai mit, et pourtant j'ai cette erreur
Myster Membre non connecté
Booster Missile
- Booster Missile
- Voir le profil du membre Myster
- Inscrit le : 04/10/2010
- Groupes :
Code PHP :
$columns_disabled = ThemesManager::get_theme(AppContext::get_current_user()->get_theme())->get_columns_disabled(); $columns_disabled->set_disable_right_columns(true); $columns_disabled->set_disable_left_columns(true);
Il me semble sinon
Code PHP :
$columns_disabled = ThemesManager::get_theme(AppContext::get_current_user()->get_theme())->get_columns_disabled();
NicoLas Membre non connecté
Booster Minigun
- Booster Minigun
- Voir le profil du membre NicoLas
- Inscrit le : 17/02/2018
- Site internet
- Groupes :
Myster :
Bonjour, c'est plutôt ceci
Il me semble sinon
Code PHP :
$columns_disabled = ThemesManager::get_theme(AppContext::get_current_user()->get_theme())->get_columns_disabled(); $columns_disabled->set_disable_right_columns(true); $columns_disabled->set_disable_left_columns(true);
Il me semble sinon
Code PHP :
$columns_disabled = ThemesManager::get_theme(AppContext::get_current_user()->get_theme())->get_columns_disabled();
Avec ton code j'ai ceci comme erreur :
Code :
Fatale : Call to undefined method Article::get_tpl_vars()
[0] /HomeCustom/phpboost/HomeCustomHomePageExtensionPoint.class.php:54 - HomeCustomHomePageExtensionPoint->build_articles_view(MySQLSelectQueryResult)
[1] /HomeCustom/phpboost/HomeCustomHomePageExtensionPoint.class.php:46 - HomeCustomHomePageExtensionPoint->build_view()
[2] /HomeCustom/phpboost/HomeCustomHomePageExtensionPoint.class.php:37 - HomeCustomHomePageExtensionPoint->get_view()
[3] /kernel/framework/phpboost/index/PHPBoostIndexController.class.php:37 - HomeCustomHomePageExtensionPoint->get_home_page()
[4] /kernel/framework/mvc/dispatcher/UrlControllerMapper.class.php:68 - PHPBoostIndexController->execute(HTTPRequestCustom)
[5] /kernel/framework/mvc/dispatcher/UrlControllerMapper.class.php:40 - UrlControllerMapper->do_call()
[6] /kernel/framework/mvc/dispatcher/Dispatcher.class.php:47 - UrlControllerMapper->call()
[7] /kernel/framework/mvc/dispatcher/DispatchManager.class.php:26 - Dispatcher->dispatch()
[8] /index.php:18 - DispatchManager::dispatch(array)
[URL] /
Myster Membre non connecté
Booster Missile
- Booster Missile
- Voir le profil du membre Myster
- Inscrit le : 04/10/2010
- Groupes :
Normal, tu as bien corrigé l'erreur mais le reste du code n'est pas compatible vu que tu as pris un homecustom de 4.1 et on est en 5.1.
Du coup pour Article c'est pas get_tpl_vars mais get_array_tpl_vars
Édité par Myster Le 11/07/2019 à 13h24
NicoLas Membre non connecté
Booster Minigun
- Booster Minigun
- Voir le profil du membre NicoLas
- Inscrit le : 17/02/2018
- Site internet
- Groupes :
Myster :
Bonjour,
Normal, tu as bien corrigé l'erreur mais le reste du code n'est pas compatible vu que tu as pris un homecustom de 4.1 et on est en 5.1.
Du coup pour Article c'est pas get_tpl_vars mais get_array_tpl_vars
Normal, tu as bien corrigé l'erreur mais le reste du code n'est pas compatible vu que tu as pris un homecustom de 4.1 et on est en 5.1.
Du coup pour Article c'est pas get_tpl_vars mais get_array_tpl_vars
J'ai suivi le tuto qui est donné ici donc même les modif que tu me donnes marchera pas car ça va engendré d'autres erreurs
Myster Membre non connecté
Booster Missile
- Booster Missile
- Voir le profil du membre Myster
- Inscrit le : 04/10/2010
- Groupes :
NicoLas Membre non connecté
Booster Minigun
- Booster Minigun
- Voir le profil du membre NicoLas
- Inscrit le : 17/02/2018
- Site internet
- Groupes :
J'ai utilisé comme balises {news_items_DESCRIPTION} (Pour les news)
Myster Membre non connecté
Booster Missile
- Booster Missile
- Voir le profil du membre Myster
- Inscrit le : 04/10/2010
- Groupes :
Merci !
NicoLas Membre non connecté
Booster Minigun
- Booster Minigun
- Voir le profil du membre NicoLas
- Inscrit le : 17/02/2018
- Site internet
- Groupes :
Myster :
Re, peux-tu s'il te plaît montrer le code PHP afin que je puisse t'aider ?
Merci !
Merci !
Lequel ?
Myster Membre non connecté
Booster Missile
- Booster Missile
- Voir le profil du membre Myster
- Inscrit le : 04/10/2010
- Groupes :
NicoLas Membre non connecté
Booster Minigun
- Booster Minigun
- Voir le profil du membre NicoLas
- Inscrit le : 17/02/2018
- Site internet
- Groupes :
Comme dit, j'ai pris celui qui était dans le tuto (En changeant la ligne qui posé soucis)
Caché :
Code :
<?php
/*##################################################
* HomeCustomHomePageExtensionPoint.class.php
* -------------------
* begin : August 25, 2012
* copyright : (C) 2012 Kevin MASSY
* email : kevin.massy@phpboost.com
*
*
###################################################
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
###################################################*/
class HomeCustomHomePageExtensionPoint implements HomePageExtensionPoint
{
private $template;
public function get_home_page()
{
$columns_disabled = ThemesManager::get_theme(AppContext::get_current_user()->get_theme())->get_columns_disabled();
$columns_disabled->set_disable_left_columns(false); //passer à "true" pour désactiver
$columns_disabled->set_disable_right_columns(false);
$columns_disabled->set_disable_top_central(false);
$columns_disabled->set_disable_bottom_central(false);
return new DefaultHomePage($this->get_title(), $this->get_view());
}
private function get_title()
{
return LangLoader::get_message('title', 'common', 'HomeCustom');
}
private function get_view()
{
$this->template = new FileTemplate('HomeCustom/home.tpl');
$this->build_view();
return $this->template;
}
private function build_view()
{
// ici on définit la date en Français
// for the French date
setlocale(LC_ALL, 'french', 'fr_FR.UTF8', 'fr.UTF8', 'fr_FR.UTF-8', 'fr.UTF-8', 'fr_FR');
$this->build_articles_view($this->articles_results());
$this->build_news_view($this->news_results());
}
private function articles_results()
{
$now = new Date();
$querier = PersistenceContext::get_querier();
$results = $querier->select('SELECT articles.*, member.*, com.number_comments, notes.average_notes, notes.number_notes, note.note, cat.rewrited_name AS rewrited_name_cat
FROM ' . PREFIX . 'articles articles
LEFT JOIN ' . PREFIX . 'articles_cats cat ON cat.id = articles.id_category
LEFT JOIN ' . DB_TABLE_MEMBER . ' member ON member.user_id = articles.author_user_id
LEFT JOIN ' . DB_TABLE_COMMENTS_TOPIC . ' com ON com.id_in_module = articles.id AND com.module_id = \'articles\'
LEFT JOIN ' . DB_TABLE_AVERAGE_NOTES . ' notes ON notes.id_in_module = articles.id AND notes.module_name = \'articles\'
LEFT JOIN ' . DB_TABLE_NOTE . ' note ON note.id_in_module = articles.id AND note.module_name = \'articles\' AND note.user_id = :user_id
AND (published = 1 OR (published = 2 AND publishing_start_date < :timestamp_now AND (publishing_end_date > :timestamp_now OR publishing_end_date = 0)))
ORDER BY articles.date_created DESC
LIMIT 3',
array(
'user_id' => AppContext::get_current_user()->get_id(),
'timestamp_now' => $now->get_timestamp()
));
/*
SELECT = On selectionne tous les champs liés aux articles
FROM = Dans quelles entités sont issues les champs
LEFT JOIN = On fait les jointure afin de dire que les clefs primaire sont identiques
AND = On fait bien attention a récupérer un article qui a été publié avec autorisation ou différé après heure
ODRDER BY = On classe les articles par la date de création et par ordre décroissant (DESC, le plus récent en premier et le plus ancien en dernier)
LIMIT = On récupère uniquement les 3 derniers articles
*/
return $results;
}
private function news_results()
{
$now = new Date();
$querier = PersistenceContext::get_querier();
$results = $querier->select('SELECT news.*, member.*, cat.rewrited_name AS rewrited_name_cat
FROM ' . PREFIX . 'news news
LEFT JOIN ' . PREFIX . 'news_cats cat ON cat.id = news.id_category
LEFT JOIN ' . DB_TABLE_MEMBER . ' member ON member.user_id = news.author_user_id
AND (approbation_type = 1 OR (approbation_type = 2 AND start_date < :timestamp_now AND (end_date > :timestamp_now OR end_date = 0)))
ORDER BY news.creation_date DESC
LIMIT 3', array(
'timestamp_now' => $now->get_timestamp()
));
/*
SELECT = On selectionne tous les champs liés aux news
FROM = Dans quelles entités sont issues les champs
LEFT JOIN = On fait la jointure afin de dire que les clefs primaire sont identiques
AND = On fait bien attention a récupérer une news qui a été publiée avec autorisation ou différé après heure.
ODRDER BY = On classe les news par la date de création et par ordre décroissant (DESC, le plus récent en premier et le plus ancien en dernier)
LIMIT = On récupère uniquement les 3 dernières news.
*/
return $results;
}
private function build_articles_view(SelectQueryResult $results)
{
// ici les résultats seront envoyés dans articles.tpl
// results send in articles.tpl
$tpl = new FileTemplate('HomeCustom/articles.tpl');
while($row = $results->fetch())
{
$article = new Article();
$article->set_properties($row);
$tpl->assign_block_vars('articles_items', $article->get_array_tpl_vars());
// create a new custom TPL variable made with the help of $article
// ici on créeait une nouvelle variable personnalisée avec l'aide de $article
$tpl->put_all(array(
'DATE_DAY' => strftime('%d', $article->get_date_created()->get_timestamp()),
'DATE_MONTH_A' => strftime('%b', $article->get_date_created()->get_timestamp()),
));
}
// ici c'est pour "pousser" articles.tpl via # INCLUDE ARTICLES # dans le home.tpl
// "push" articles.tpl with # INCLUDE ARTICLES # in home.tpl
$this->template->put('ARTICLES', $tpl);
}
private function build_news_view(SelectQueryResult $results)
{
// ici les résultats seront envoyés dans news.tpl
// results send in news.tpl
$tpl = new FileTemplate('HomeCustom/news.tpl');
while ($row = $results->fetch())
{
$news = new News();
$news->set_properties($row);
$tpl->assign_block_vars('news_items', $news->get_array_tpl_vars());
}
// ici c'est pour "pousser" news.tpl via # INCLUDE NEWS # dans le home.tpl
// "push" news.tpl with # INCLUDE NEWS # in home.tpl
$this->template->put('NEWS', $tpl);
}
}
?>
Édité par NicoLas Le 11/07/2019 à 16h45
Myster Membre non connecté
Booster Missile
- Booster Missile
- Voir le profil du membre Myster
- Inscrit le : 04/10/2010
- Groupes :
{news_items.VALEUR} du coup par exemple {news_items.DESCRIPTION}
Et pas {news_items_DESCRIPTION}
Édité par Myster Le 11/07/2019 à 18h01
NicoLas Membre non connecté
Booster Minigun
- Booster Minigun
- Voir le profil du membre NicoLas
- Inscrit le : 17/02/2018
- Site internet
- Groupes :
{news_items.U_ARTICLE} & {news_items.TITLE} pour le moment, mais je continu de chercher
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie