Ajouter des élémentsapparait dans la configuration de HomeLanding, permettant d'ajouter le module dans la liste des modules compatibles.
/HomeLanding/additional/, la récupération des scripts se fait par une reconnaissance de présence de fichiers. Le nom de ces fichiers est arbitraire, seul compte leur contenu selon leur emplacement. Ainsi on pourra ajouter au choix
/blog/config.ini
homelandingdans la liste des
featuresdu module.
featuresn'existe pas dans le
config.inidu module, il suffit de l'ajouter.
features = "homelanding"
Ajouter des éléments. Une fois sur cette page, passez aux étapes suivantes SANS VALIDER.
/HomeLanding/admin/addou
/HomeLanding/?url=/admin/add/selon l'état de votre
url_rewriting
!! IMPORTANT !!
/HomeLanding/additional/add/AdditionalAdd.php
<?php $module = new HomeLandingModule(); $module->set_module_id(HomeLandingBlog::MODULE_BLOG); $module->set_phpboost_module_id(HomeLandingBlog::MODULE_BLOG); $module->hide(); $modules[] = $module->get_properties(); ?>
/HomeLanding/additional/add/AdditionalInit.php
<?php $module = new HomeLandingModule(); $module->set_module_id(HomeLandingBlog::MODULE_BLOG); $module->set_phpboost_module_id(HomeLandingBlog::MODULE_BLOG); $module->hide(); $modules[] = $module->get_properties(); ?>
/HomeLanding/additional/form/AdditionalForm.php
<?php if ($this->modules[HomeLandingBlog::MODULE_BLOG]->is_active()) { $fieldset_blog = new FormFieldsetMultitabsHTML('admin_blog', $this->lang['homelanding.module.display'] . ModulesManager::get_module($this->modules[HomeLandingBlog::MODULE_BLOG]->get_module_id())->get_configuration()->get_name(), array('css_class' => 'tabs tabs-animation') ); $form->add_fieldset($fieldset_blog); $fieldset_blog->add_field(new FormFieldCheckbox('blog_enabled', $this->lang['homelanding.show.full.module'], $this->modules[HomeLandingBlog::MODULE_BLOG]->is_displayed(), array( 'class'=> 'custom-checkbox', 'events' => array('click' => ' if (HTMLForms.getField("blog_enabled").getValue()) { HTMLForms.getField("blog_limit").enable(); } else { HTMLForms.getField("blog_limit").disable(); }' ) ) )); $fieldset_blog->add_field(new FormFieldNumberEditor('blog_limit', $this->lang['homelanding.items.number'], $this->modules[HomeLandingBlog::MODULE_BLOG]->get_elements_number_displayed(), array( 'min' => 1, 'max' => 100, 'hidden' => !$this->modules[HomeLandingBlog::MODULE_BLOG]->is_displayed() ), array(new FormFieldConstraintIntegerRange(1, 100)) )); } ?>
/HomeLanding/additional/save/AdditionalSave.php
<?php if ($this->modules[HomeLandingBlog::MODULE_BLOG]->is_active()) { if ($this->form->get_value('blog_enabled')) { $this->modules[HomeLandingBlog::MODULE_BLOG]->display(); $this->modules[HomeLandingBlog::MODULE_BLOG]->set_elements_number_displayed($this->form->get_value('blog_limit')); } else $this->modules[HomeLandingBlog::MODULE_BLOG]->hide(); } ?>
/HomeLanding/additional/submit/AdditionalSubmit.php
<?php if ($this->modules[HomeLandingBlog::MODULE_BLOG]->is_active()) { $this->form->get_field_by_id('blog_limit')->set_hidden(!$this->modules[HomeLandingBlog::MODULE_BLOG]->is_displayed()); } ?>
// Additional modules
# INCLUDE BLOG #
/HomeLanding/additional/home/AdditionalHome.php
<?php if ($this->modules[HomeLandingBlog::MODULE_BLOG]->is_displayed() && CategoriesAuthorizationsService::check_authorizations(Category::ROOT_CATEGORY, HomeLandingBlog::MODULE_BLOG)->read()) $this->view->put('BLOG', HomeLandingDisplayItems::build_view(HomeLandingBlog::MODULE_BLOG)); ?>
/HomeLanding/services/modules/HomeLandingBlog.class.php
<?php class HomeLandingBlog { const MODULE_BLOG = "blog"; public static function get_blog_view() { $now = new Date(); $module_config = BlogConfig::load(); $home_config = HomeLandingConfig::load(); $modules = HomeLandingModulesList::load(); $module_name = self::MODULE_BLOG; $theme_id = AppContext::get_current_user()->get_theme(); if (file_exists(PATH_TO_ROOT . '/templates/' . $theme_id . '/modules/HomeLanding/pagecontent/' . $module_name . '.tpl')) $view = new FileTemplate('/templates/' . $theme_id . '/modules/HomeLanding/pagecontent/' . $module_name . '.tpl'); elseif (file_exists(PATH_TO_ROOT . '/HomeLanding/templates/pagecontent/' . $module_name . '.tpl')) $view = new FileTemplate('/HomeLanding/templates/pagecontent/' . $module_name . '.tpl'); else $view = new FileTemplate('HomeLanding/pagecontent/items.tpl'); $home_lang = LangLoader::get_module_langs('HomeLanding'); $module_lang = LangLoader::get_module_langs($module_name); $view->add_lang(array_merge(LangLoader::get_all_langs(), $home_lang, $module_lang)); $authorized_categories = CategoriesService::get_authorized_categories(Category::ROOT_CATEGORY, $module_config->is_summary_displayed_to_guests(), $module_name); $result = PersistenceContext::get_querier()->select('SELECT blog.*, member.*, cat.rewrited_name AS rewrited_name_cat FROM ' . PREFIX . 'blog blog LEFT JOIN ' . PREFIX . 'blog_cats cat ON cat.id = blog.id_category LEFT JOIN ' . DB_TABLE_MEMBER . ' member ON member.user_id = blog.author_user_id WHERE (published = 1 OR (published = 2 AND publishing_start_date < :timestamp_now AND (publishing_end_date > :timestamp_now OR publishing_end_date = 0))) AND id_category IN :authorized_categories ORDER BY blog.update_date DESC LIMIT :blog_limit', array( 'authorized_categories' => $authorized_categories, 'user_id' => AppContext::get_current_user()->get_id(), 'timestamp_now' => $now->get_timestamp(), 'blog_limit' => $modules[$module_name]->get_elements_number_displayed() )); $view->put_all(array( 'C_NO_ITEM' => $result->get_rows_count() == 0, 'C_VIEWS_NUMBER' => true, 'C_GRID_VIEW' => $module_config->get_display_type() == BlogConfig::GRID_VIEW, 'C_TABLE_VIEW' => $module_config->get_display_type() == BlogConfig::TABLE_VIEW, 'MODULE_NAME' => $module_name, 'MODULE_POSITION' => $home_config->get_module_position_by_id($module_name), 'ITEMS_PER_ROW' => $module_config->get_items_per_row(), 'L_MODULE_TITLE' => ModulesManager::get_module($module_name)->get_configuration()->get_name(), )); while ($row = $result->fetch()) { $item = new BlogItem(); $item->set_properties($row); $view->assign_block_vars('items', array_merge($item->get_array_tpl_vars(), array( 'C_SEVERAL_VIEWS' => $item->get_views_number() > 1, ))); } $result->dispose(); return $view; } } ?>
/HomeLanding/additional/home/AdditionalHome.php
<?php if ($this->modules[HomeLandingBlog::MODULE_BLOG]->is_displayed() && CategoriesAuthorizationsService::check_authorizations(Category::ROOT_CATEGORY, HomeLandingBlog::MODULE_BLOG)->read()) $this->view->put('BLOG', HomeLandingBlog::get_blog_view(HomeLandingBlog::MODULE_BLOG)); ?>
/HomeLanding/templates/pagecontent/blog.tpldans lequel il faut à minima déclarer la variable de position pour pouvoir placer le module où l'on veut sur la page d'accueil:
Ajouter des éléments
Valider