# Ext: sg_news <img src="https://www.sgalinski.de/typo3conf/ext/project_theme/Resources/Public/Images/logo.svg" /> License: [GNU GPL, Version 2](https://www.gnu.org/licenses/gpl-2.0.html) Repository: https://gitlab.sgalinski.de/typo3/sg_news Please report bugs here: https://gitlab.sgalinski.de/typo3/sg_news TYPO3 version: >7.6 ## About Integrates a powerful News-System. News and Categories can be created like normal TYPO3 pages. Newspages have several additional meta information. ## Integration Before using sg_news you need to supply your frontend some information on how the extension needs to be integrated into your template. As the extension itself provides two new [doktypes](https://docs.typo3.org/typo3cms/CoreApiReference/PageTypes/Index.html), you can simply add a switch case to your Fluid template to provide different rendering paths. ### Example ``` lib.pageTemplate.default > lib.pageTemplate.default = FLUIDTEMPLATE lib.pageTemplate.default { # your default page template file = EXT:project_theme/Resources/Private/Templates/Default.html variables { INTRO = CASE INTRO { key.field = doktype # show nothing for the intro view as sg_news provides it's own default intro section 116 = TEXT 116.value = 117 = COA 117 { 10 < tt_content.list.20.sgnews_latest 20 < styles.content.col0 } # just show the content default < styles.content.col0 } CONTENT = CASE CONTENT { key.field = doktype # show the single view of a news article if the page type matches 116 < tt_content.list.20.sgnews_singleview # show the category view of the news if the page type matches 117 = COA 117 { 10 < tt_content.list.20.sgnews_listbycategory 20 < styles.content.col1 } # just show the content default < styles.content.col1 } } } ``` In this example we will load the first column for the intro section by default and the second column in the backend for the content below that. The news category (doktype 117) will render by default not the content on the page alone, but also the default category listing. With our example we don't want the intro section (116) and the default content to be rendered, because the extension handles those parts. The single news plugin also needs some additional information so it can get the base content. By default it will resolve to the following code if not provided by you: ``` lib.mainContent < styles.content.col1 ``` ### Tags In addition to categories, multiple tags can be created and specified for each news page. Tags can be created by adding sys_category records to the root page of the news block (blog). In order to differentiate each block's tags from the others, the PageTS value of **TCEFORM.pages.tx_sgnews_tags.PAGE_TSCONFIG_ID** can be set for each of the blocks containing the pid value for the selectable tags. To make sure that only the correct tags are displayed in the FE, the **plugin.tx_sgnews.settings.tagPid** constant must be set to the same value. ### Creating a news blog Add the plugin **News Overview** and optionally the plugin **Latest News** to a standard TYPO3 page. After that you must create sites of type **Category** sites below the blog page level and name them accordingly. On the next lower page level of each **Category** you can create pages of type **News**. On these pages you can use all your usual content elements to visualize your news entries belonging to the specific category. ### Plugins General settings for the plugins can be found in the **Frontend/setup.txt** and **Frontend/constants.txt** TypoScript file: # setup.txt settings { # Name of your site - required for the news.xml siteName = # Your rootpage id - required for the news.xml to retrieve the base path rootpageId = 1 # News limit (can be usually set also inside the flexforms) newsLimitPerPage = {$plugin.tx_sgnews.settings.newsLimitPerPage} # Uid of the page containing sys_category records used as tags tagPid = {$plugin.tx_sgnews.settings.tagPid} # How to sort the news in general (date, positionInTree) sortBy = date } #constants.txt settings { newsLimitPerPage = 12 tagPid = } This extension comes with several plugins to display and categorize news: ###### News Overview Provides an overview over all news. Additionally there is a tab navigation for groups of news. Plugin options: - **Group By**: By which aspect should your news be grouped in the tab navigation (none, category, tags) - **News Limit**: The maximum amount news to be displayed. Further news can be displayed after the user clicks a button. - **Only news within this page section**: Should only news from subpages be shown, or from all sites in this TYPO3 instance ? --- ###### List News by Category/Tag Lists all news from subpages for the given Categories / Tags. Plugin options: - **News Limit per Page**: The maximum amount of news to be shown. - **Categories**: Here you can select which categories you want to be included (If none are selected, all are shown). - **Tags**: Here you can select which tags the news entries need to have to be shown here (If none are selected, all are shown). --- ###### News Single View Provides a new page type **News** in the **Page Module**, that renders the content as a news element in the frontend. --- ###### News Feed Provides a RSS Feed **news.xml** as a typenum. The typenum is defined in the **Frontend/setup.txt** and needs to be included in your TypoScript template: # news feed as own page type newsFeed = PAGE newsFeed { typeNum = 78906523 10 = USER 10 { userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run extensionName = SgNews pluginName = NewsFeed vendorName = SGalinski controller = NewsFeed action = index view < plugin.tx_sgnews.view persistence < plugin.tx_sgnews.persistence features < plugin.tx_sgnews.features legacy < plugin.tx_sgnews.legacy settings { # if not provided all categories are shown showCategories = } } config { disableAllHeaderCode = 1 additionalHeaders = Content-type:text/xml no_cache = 1 xhtml_cleaning = 0 } } --- ###### PageBrowser Automatically adds a pagination to the **News Overview** and **List News** plugins. You find the settings in the **Fontend/constants.txt** configuration file: pagebrowser.settings { # Number of page links to show before the current page pagesBefore = 1 # Number of page links to show before the current page pagesAfter = 1 # Enables section for "more" pages. This section is shown after links to next pages, normally like three dots (1 2 3 ...). Notice that you can also hide it by emptying corresponding template section. enableMorePages = 1 # Enables section for "less" pages. This section is shown after links to next pages, normally like three dots (... 1 2 3) Notice that you can also hide it by emptying corresponding template section. enableLessPages = 1 } --- ###### addLike Automatically adds an AJAX like button to each single news entry. Make sure, that the extension sg_ajax is installed, otherwise this feature will be disabled. If it should be like this, then make sure to remove this button from the sg_news default templates.