public function __construct($view, $title_page) { parent::__construct($view); $lang = LangLoader::get('common', 'articles'); $this->set_title($lang['articles']); $this->add_link(LangLoader::get_message('categories.management', 'categories-common'), ArticlesUrlBuilder::manage_categories()); $this->add_link(LangLoader::get_message('category.add', 'categories-common'), ArticlesUrlBuilder::add_category()); $this->add_link($lang['articles_management'], ArticlesUrlBuilder::manage_articles()); $this->add_link($lang['articles.add'], ArticlesUrlBuilder::add_article()); $this->add_link(LangLoader::get_message('configuration', 'admin-common'), ArticlesUrlBuilder::configuration()); $env = $this->get_graphical_environment(); $env->set_page_title($title_page, $lang['articles']); }
public function get_actions_tree_links() { $lang = LangLoader::get('common', 'articles'); $tree = new ModuleTreeLinks(); $manage_categories_link = new AdminModuleLink(LangLoader::get_message('categories.manage', 'categories-common'), ArticlesUrlBuilder::manage_categories()); $manage_categories_link->add_sub_link(new AdminModuleLink(LangLoader::get_message('categories.manage', 'categories-common'), ArticlesUrlBuilder::manage_categories())); $manage_categories_link->add_sub_link(new AdminModuleLink(LangLoader::get_message('category.add', 'categories-common'), ArticlesUrlBuilder::add_category())); $tree->add_link($manage_categories_link); $manage_articles_link = new AdminModuleLink($lang['articles_management'], ArticlesUrlBuilder::manage_articles()); $manage_articles_link->add_sub_link(new AdminModuleLink($lang['articles_management'], ArticlesUrlBuilder::manage_articles())); $manage_articles_link->add_sub_link(new AdminModuleLink($lang['articles.add'], ArticlesUrlBuilder::add_article(AppContext::get_request()->get_getint('id_category', Category::ROOT_CATEGORY)))); $tree->add_link($manage_articles_link); $tree->add_link(new AdminModuleLink(LangLoader::get_message('configuration', 'admin-common'), ArticlesUrlBuilder::configuration())); if (!AppContext::get_current_user()->check_level(User::ADMIN_LEVEL)) { $tree->add_link(new ModuleLink($lang['articles.add'], ArticlesUrlBuilder::add_article(AppContext::get_request()->get_getint('id_category', Category::ROOT_CATEGORY)), ArticlesAuthorizationsService::check_authorizations()->write() || ArticlesAuthorizationsService::check_authorizations()->contribution())); } $tree->add_link(new ModuleLink($lang['articles.pending_articles'], ArticlesUrlBuilder::display_pending_articles(), ArticlesAuthorizationsService::check_authorizations()->write() || ArticlesAuthorizationsService::check_authorizations()->contribution() || ArticlesAuthorizationsService::check_authorizations()->moderation())); return $tree; }
* ################################################### * * This program is a 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 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. * ###################################################*/ #################################################### # French # #################################################### $lang['root_category_description'] = 'Bienvenue dans l\'espace des articles du site ! <br /><br /> Une catégorie et un article ont été créés pour vous montrer comment fonctionne ce module. Voici quelques conseils pour bien débuter sur ce module. <br /><br /> <ul class="formatter-ul"> <li class="formatter-li"> Pour configurer ou personnaliser l\'accueil de votre module, rendez vous dans l\'<a href="' . ArticlesUrlBuilder::configuration()->relative() . '">administration du module</a></li> <li class="formatter-li"> Pour créer des catégories, <a href="' . ArticlesUrlBuilder::add_category()->relative() . '">cliquez ici</a> </li> <li class="formatter-li"> Pour ajouter des articles, <a href="' . ArticlesUrlBuilder::add_article()->relative() . '">cliquez ici</a></li> </ul> <br />Pour en savoir plus, n\'hésitez pas à consulter la documentation du module sur le site de <a href="http://www.phpboost.com">PHPBoost</a>.';
* 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. * ###################################################*/ ##################################################### # French # #################################################### $lang = array(); $lang['default.category.name'] = 'Catégorie de test'; $lang['default.category.description'] = 'Articles de démonstration'; $lang['default.article.title'] = 'Débuter avec le module Articles'; $lang['default.article.description'] = ''; $lang['default.article.contents'] = 'Ce bref article va vous donner quelques conseils simples pour prendre en main ce module.<br /> <br /> <ul class="formatter-ul"> <li class="formatter-li">Pour configurer votre module, <a href="' . ArticlesUrlBuilder::configuration()->relative() . '">cliquez ici</a> </li><li class="formatter-li">Pour ajouter des catégories : <a href="' . ArticlesUrlBuilder::add_category()->relative() . '">cliquez ici</a> (les catégories et sous catégories sont à l\'infini) </li><li class="formatter-li">Pour ajouter un article : <a href="' . ArticlesUrlBuilder::add_article()->relative() . '">cliquez ici</a> </li></ul> <ul class="formatter-ul"> <li class="formatter-li">Pour mettre en page vos articles, vous pouvez utiliser le langage bbcode ou l\'éditeur WYSIWYG (cf cet <a href="http://www.phpboost.com/articles/articles-6-61+mise-en-page-du-contenu.php">article</a>)<br /> </li></ul><br /> <br /> Pour en savoir plus, n\'hésitez pas à consulter la documentation du module sur le site de <a href="http://www.phpboost.com">PHPBoost</a>.<br /> <br /> <br /> Bonne utilisation de ce module.';
* 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. * ###################################################*/ ##################################################### # English # #################################################### $lang = array(); $lang['default.category.name'] = 'First category'; $lang['default.category.description'] = 'Demonstration of an article'; $lang['default.article.title'] = 'How to begin with the articles module'; $lang['default.article.description'] = ''; $lang['default.article.contents'] = 'This brief article will give you some simple tips to take control of this module.<br /> <br /> <ul class="formatter-ul"> <li class="formatter-li">To configure your module, <a href="' . ArticlesUrlBuilder::configuration()->relative() . '">click here</a> </li><li class="formatter-li">To add categories: <a href="' . ArticlesUrlBuilder::add_category()->relative() . '">click here</a> (categories and subcategories are infinitely) </li><li class="formatter-li">To add an item: <a href="' . ArticlesUrlBuilder::add_article()->relative() . '">click here</a> </li></ul> <ul class="formatter-ul"> <li class="formatter-li">To format your articles, you can use bbcode language or the WYSIWYG editor (cf this (cf cet <a href="http://www.phpboost.com/articles/articles-6-61+mise-en-page-du-contenu.php">article</a>)<br /> </li></ul><br /> <br /> For more information, please see the module documentation on the site <a href="http://www.phpboost.com">PHPBoost</a>.<br /> <br /> <br /> Good use of this module.';
* ################################################### * * This program is a 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 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. * ###################################################*/ #################################################### # English # #################################################### $lang['root_category_description'] = 'Welcome to the articles section of the website! <br /><br /> One category and one article were created to show you how this module works. Here are some tips to get started on this module. <br /><br /> <ul class="formatter-ul"> <li class="formatter-li"> To configure or customize the module homepage your module, go into the <a href="' . ArticlesUrlBuilder::configuration()->relative() . '">module administration</a></li> <li class="formatter-li"> To create categories, <a href="' . ArticlesUrlBuilder::add_category()->relative() . '">clic here</a></li> <li class="formatter-li"> To create articles, <a href="' . ArticlesUrlBuilder::add_article()->relative() . '">clic here</a></li> </ul> <br />To learn more, don \'t hesitate to consult the documentation for the module on <a href="http://www.phpboost.com">PHPBoost</a> website.';
public function get_tpl_vars() { $category = $this->get_category(); $description = $this->get_real_description(); $user = $this->get_author_user(); $user_group_color = User::get_group_color($user->get_groups(), $user->get_level(), true); $sources = $this->get_sources(); $nbr_sources = count($sources); return array('C_EDIT' => $this->is_authorized_to_edit(), 'C_DELETE' => $this->is_authorized_to_delete(), 'C_HAS_PICTURE' => $this->has_picture(), 'C_USER_GROUP_COLOR' => !empty($user_group_color), 'C_PUBLISHED' => $this->is_published(), 'C_PUBLISHING_START_AND_END_DATE' => $this->publishing_start_date != null && $this->publishing_end_date != null, 'C_PUBLISHING_START_DATE' => $this->publishing_start_date != null, 'C_PUBLISHING_END_DATE' => $this->publishing_end_date != null, 'C_DATE_UPDATED' => $this->date_updated != null, 'C_AUTHOR_DISPLAYED' => $this->get_author_name_displayed(), 'C_NOTATION_ENABLED' => $this->get_notation_enabled(), 'C_READ_MORE' => !$this->get_description_enabled() && $description != FormatingHelper::second_parse($this->contents) && strlen($description) >= ArticlesConfig::load()->get_number_character_to_cut(), 'C_SOURCES' => $nbr_sources > 0, 'ID' => $this->get_id(), 'TITLE' => $this->get_title(), 'DATE' => $this->get_date_created()->format(Date::FORMAT_DAY_MONTH_YEAR_HOUR_MINUTE_TEXT), 'DATE_DAY' => $this->get_date_created()->get_day(), 'DATE_MONTH' => $this->get_date_created()->get_month(), 'DATE_YEAR' => $this->get_date_created()->get_year(), 'DATE_ISO8601' => $this->get_date_created()->format(Date::FORMAT_ISO8601), 'DATE_SHORT' => $this->get_date_created()->format(Date::FORMAT_DAY_MONTH_YEAR), 'STATUS' => $this->get_status(), 'PUBLISHING_START_DATE' => $this->publishing_start_date != null ? $this->publishing_start_date->format(Date::FORMAT_DAY_MONTH_YEAR_HOUR_MINUTE) : '', 'PUBLISHING_START_DATE_ISO8601' => $this->publishing_start_date != null ? $this->publishing_start_date->format(Date::FORMAT_ISO8601) : '', 'PUBLISHING_END_DATE' => $this->publishing_end_date != null ? $this->publishing_end_date->format(Date::FORMAT_DAY_MONTH_YEAR_HOUR_MINUTE) : '', 'PUBLISHING_END_DATE_ISO8601' => $this->publishing_end_date != null ? $this->publishing_end_date->format(Date::FORMAT_ISO8601) : '', 'DATE_UPDATED' => $this->date_updated != null ? $this->date_updated->format(Date::FORMAT_DAY_MONTH_YEAR) : '', 'DATE_UPDATED_DAY' => $this->date_updated != null ? $this->date_updated->get_day() : '', 'DATE_UPDATED_MONTH' => $this->date_updated != null ? $this->date_updated->get_month() : '', 'DATE_UPDATED_YEAR' => $this->date_updated != null ? $this->date_updated->get_year() : '', 'DATE_UPDATED_ISO8601' => $this->date_updated != null ? $this->date_updated->format(Date::FORMAT_ISO8601) : '', 'DATE_UPDATED_SHORT' => $this->date_updated != null ? $this->date_updated->format(Date::FORMAT_DAY_MONTH_YEAR) : '', 'L_COMMENTS' => CommentsService::get_number_and_lang_comments('articles', $this->get_id()), 'NUMBER_COMMENTS' => CommentsService::get_number_comments('articles', $this->get_id()), 'NUMBER_VIEW' => $this->get_number_view(), 'NOTE' => $this->get_notation()->get_number_notes() > 0 ? NotationService::display_static_image($this->get_notation()) : ' ', 'C_AUTHOR_EXIST' => $user->get_id() !== User::VISITOR_LEVEL, 'PSEUDO' => $user->get_display_name(), 'DESCRIPTION' => $description, 'PICTURE' => $this->get_picture()->rel(), 'USER_LEVEL_CLASS' => UserService::get_level_class($user->get_level()), 'USER_GROUP_COLOR' => $user_group_color, 'C_ROOT_CATEGORY' => $category->get_id() == Category::ROOT_CATEGORY, 'CATEGORY_ID' => $category->get_id(), 'CATEGORY_NAME' => $category->get_name(), 'CATEGORY_DESCRIPTION' => $category->get_description(), 'CATEGORY_IMAGE' => $category->get_image()->rel(), 'U_EDIT_CATEGORY' => $category->get_id() == Category::ROOT_CATEGORY ? ArticlesUrlBuilder::configuration()->rel() : ArticlesUrlBuilder::edit_category($category->get_id())->rel(), 'U_COMMENTS' => ArticlesUrlBuilder::display_comments_article($category->get_id(), $category->get_rewrited_name(), $this->get_id(), $this->get_rewrited_title())->rel(), 'U_AUTHOR' => UserUrlBuilder::profile($this->get_author_user()->get_id())->rel(), 'U_CATEGORY' => ArticlesUrlBuilder::display_category($category->get_id(), $category->get_rewrited_name())->rel(), 'U_ARTICLE' => ArticlesUrlBuilder::display_article($category->get_id(), $category->get_rewrited_name(), $this->get_id(), $this->get_rewrited_title())->rel(), 'U_EDIT_ARTICLE' => ArticlesUrlBuilder::edit_article($this->id, AppContext::get_request()->get_getint('page', 1))->rel(), 'U_DELETE_ARTICLE' => ArticlesUrlBuilder::delete_article($this->id)->rel(), 'U_SYNDICATION' => ArticlesUrlBuilder::category_syndication($category->get_id())->rel(), 'U_PRINT_ARTICLE' => ArticlesUrlBuilder::print_article($this->get_id(), $this->get_rewrited_title())->rel()); }
private function build_articles_listing_view(Date $now, $field, $mode, $page, $subcategories_page) { $sort_mode = $mode == 'asc' ? 'ASC' : 'DESC'; switch ($field) { case 'title': $sort_field = 'title'; break; case 'view': $sort_field = 'number_view'; break; case 'com': $sort_field = 'number_comments'; break; case 'note': $sort_field = 'average_notes'; break; case 'author': $sort_field = 'display_name'; break; default: $sort_field = 'date_created'; break; } $condition = 'WHERE id_category = :id_category AND (published = 1 OR (published = 2 AND publishing_start_date < :timestamp_now AND (publishing_end_date > :timestamp_now OR publishing_end_date = 0)))'; $parameters = array('id_category' => $this->get_category()->get_id(), 'timestamp_now' => $now->get_timestamp()); $pagination = $this->get_pagination($condition, $parameters, $field, $mode, $page, $subcategories_page); $result = PersistenceContext::get_querier()->select('SELECT articles.*, member.*, com.number_comments, notes.average_notes, notes.number_notes, note.note FROM ' . ArticlesSetup::$articles_table . ' articles 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 ' . $condition . ' ORDER BY ' . $sort_field . ' ' . $sort_mode . ' LIMIT :number_items_per_page OFFSET :display_from', array_merge($parameters, array('user_id' => AppContext::get_current_user()->get_id(), 'number_items_per_page' => $pagination->get_number_items_per_page(), 'display_from' => $pagination->get_display_from()))); $this->view->put_all(array('C_MOSAIC' => $this->config->get_display_type() == ArticlesConfig::DISPLAY_MOSAIC, 'C_COMMENTS_ENABLED' => $this->config->are_comments_enabled(), 'C_NOTATION_ENABLED' => $this->config->is_notation_enabled(), 'C_ARTICLES_FILTERS' => true, 'C_DISPLAY_CATS_ICON' => $this->config->are_cats_icon_enabled(), 'C_PAGINATION' => $pagination->has_several_pages(), 'C_NO_ARTICLE_AVAILABLE' => $result->get_rows_count() == 0, 'C_ONE_ARTICLE_AVAILABLE' => $result->get_rows_count() == 1, 'C_TWO_ARTICLES_AVAILABLE' => $result->get_rows_count() == 2, 'PAGINATION' => $pagination->display(), 'ID_CAT' => $this->get_category()->get_id(), 'U_EDIT_CATEGORY' => $this->get_category()->get_id() == Category::ROOT_CATEGORY ? ArticlesUrlBuilder::configuration()->rel() : ArticlesUrlBuilder::edit_category($this->get_category()->get_id())->rel())); while ($row = $result->fetch()) { $article = new Article(); $article->set_properties($row); $this->build_keywords_view($article); $this->view->assign_block_vars('articles', $article->get_tpl_vars()); $this->build_sources_view($article); } $result->dispose(); }