.. include:: /Includes.rst.txt .. highlight:: typoscript .. _typoscriptGeneral: ================ General settings ================ Any setting needs to be prefixed with :typoscript:`plugin.tx_news.settings.`. .. only:: html .. contents:: Properties :depth: 1 :local: .. _tsCssFile: cssFile ======= .. confval:: cssFile :type: string :Default: Depends on the chosen layout :Path: plugin.tx_news.settings Path to the css file. This is included with the Layouts. .. _tsFormat: format ====== .. confval:: format :type: string :Default: html :Path: plugin.tx_news.settings Set a different format for the output. Use e.g. :code:`xml` for RSS feeds. useStdWrap ========== .. confval:: useStdWrap :type: string :Default: singleNews :Path: plugin.tx_news.settings Add all TypoScript properties as a comma separated list which need support for stdWrap. As an example: :: settings { useStdWrap = singleNews singleNews.stdWrap.cObject = CONTENT singleNews.stdWrap.cObject { # ... } } .. _tsOverrideFlexformSettingsIfEmpty: overrideFlexformSettingsIfEmpty =============================== .. confval:: overrideFlexformSettingsIfEmpty :type: string :Path: plugin.tx_news.settings :Default: cropMaxCharacters,dateField,timeRestriction,orderBy,orderDirection, backPid,listPid,startingpoint, recursive,list.paginate.itemsPerPage,list.paginate.templatePath The default behaviour of Extbase is to override settings from TypoScript by the one of the FlexForms. This is even valid if the setting is left empty in the FlexForms. Therefore you can define those settings which value should be taken from TypoScript if nothing is set in the plugin. .. _tsDisplayDummyIfNoMedia: displayDummyIfNoMedia ===================== .. confval:: displayDummyIfNoMedia :type: boolean :Path: plugin.tx_news.settings :Default: 1 If set and no preview image is defined in the record, a placeholder image defined via :confval:`list.media.dummyImage` is shown. .. confval:: list.media.dummyImage :type: string :Default: typo3conf/ext/news/Resources/Public/Images/dummy-preview-image.png If preview image is defined, the defined placeholder is displayed. Example: Display a dummy image from your sitepackage ---------------------------------------------------- .. code-block:: typoscript :caption: my_sitepackage/Configuration/TypoScript/setup.typoscript plugin.tx_news.settings { displayDummyIfNoMedia = 1 list.media.dummyImage = EXT:my_sitepackage/Resources/Public/Images/News/MyPreviewImage.png } Example: Remove dummy image from list view ------------------------------------------ .. code-block:: typoscript :caption: my_sitepackage/Configuration/TypoScript/setup.typoscript plugin.tx_news.settings { displayDummyIfNoMedia = 0 } .. _tsDetailPidDetermination: detailPidDetermination ====================== .. confval:: detailPidDetermination :type: string, comma separated list of keywords :Default: "flexform, categories, default" :Path: plugin.tx_news.settings This setting defines which page is used for the link to the detail view. 3 possible options are available which processed in the given order until a page has been found. flexform This setting tries to get the detail page from the plugin's setting :confval:`detailPid` :guilabel:`PageId for single news display` which can also be set by using TypoScript:: # If set via TypoScript, also add detailPid to the setting "overrideFlexformSettingsIfEmpty" plugin.tx_news.settings.detailPid = 123 categories A detail page can also be defined for every category. Use the field **Single-view page for news from this category** for that. **default** This type tries to get the value from the setting :confval:`defaultDetailPid`:: plugin.tx_news.settings.defaultDetailPid = 456 .. _tsDefaultDetailPid: defaultDetailPid ================ .. confval:: defaultDetailPid :type: int :Default: 0 :Path: plugin.tx_news.settings If :confval:`detailPidDetermination` contains the keyword "default" this value is used to determine the pid used for detail links of news records. .. _tsHideIdList: hideIdList ========== .. confval:: hideIdList :type: string :Default: (none) :Path: plugin.tx_news.settings Define a list of ids of news articles which are excluded in the view. This is similar to the setting :confval:`excludeAlreadyDisplayedNews` but the exclusion is defined in TypoScript instead of the template. Example: Hide current news in the list -------------------------------------- As an example this excludes the news record of a detail action of the same page:: plugin.tx_news.settings { useStdWrap := addToList(hideIdList) hideIdList.cObject = TEXT hideIdList.cObject { data = GP:tx_news_pi1|news } } .. _tsOrderByAllowed: orderByAllowed ============== .. confval:: orderByAllowed :type: string :Default: sorting,author,uid,title,teaser,author,tstamp,crdate,datetime,categories.title :Path: plugin.tx_news.settings Due to restrictions of Extbase itself it is required to define all fields which are allowed for sorting results. .. _tsAnalyticsSocial: analytics.social ================ .. confval:: analytics.social :type: array Use additional code for google analytics tracking of the social functionalities. Default:: analytics.social { facebookLike = 1 facebookShare = 1 twitter = 1 } .. _tsDemandClass: demandClass =========== .. confval:: demandClass :type: string :Path: plugin.tx_news.settings Overload the demand object which is used to build the queries. Read more about how to use and extend :ref:`demands `. .. _tsLinkHrDate: link.hrDate =========== .. confval:: link.hrDate :type: boolean / array :Default: 0 :Path: plugin.tx_news.settings The url to a single news record contains only the uid of the record. Sometimes it is nice to have the date in url too (for example :samp:`https://example.org/news/2021/8/news-title.html`). If this setting is enabled parameters for year, month and day are added to the URL. A :ref:`Routing configuration ` can then be used to create a human readable date like the example above. Each parameter (day, month, year) can be separately configured by using the full options of the `php function date() `_ . This example will add the day as a number without leading zeros, the month with leading zeros and the year by using 4 digits:: link = 1 link { hrDate = 1 hrDate { day = j month = m year = Y } } This option is only applied if the build-in :ref:`LinkViewHelper ` is used .. _tsLinkTypesOpeningInNewWindow: link.typesOpeningInNewWindow ============================ .. confval:: link.typesOpeningInNewWindow :type: string :Default: 2 :Path: plugin.tx_news.settings Comma separated list of news types which open with :html:`target="_blank"` Default is 2 which is the news type "Link to external page". This option is only applied if the build-in :ref:`LinkViewHelper ` is used. .. _tsFacebookLocale: facebookLocale ============== .. confval:: facebookLocale :type: string :Default: en\_US :Path: plugin.tx_news.settings Facebook locale which is used to translate facebook texts. Examples are de\_DE, fr\_FR, ... .. _tsOpengraph: opengraph ========= .. confval:: opengraph :type: array :Path: plugin.tx_news.settings Additional open graph properties can be defined using TypoScript. Those are included in the the template partial :file:`EXT:news/Resources/Private/Partials/Detail/Opengraph.html`. The most important properties are filled automatically: og:title is filled with the field **Alternative title** or if that is empty with the **Title**. og:description is filled with the field **Description** or if that is empty with the **Teaser**. og:image is filled with the first preview image. og:url is filled with the current url. Check out https://dev.twitter.com/cards/getting-started for more information regarding the twitter cards. Default:: opengraph { site_name = {$plugin.tx_news.opengraph.site_name} type = article locale = admins = twitter { card = {$plugin.tx_news.opengraph.twitter.card} site = {$plugin.tx_news.opengraph.twitter.site} creator = {$plugin.tx_news.opengraph.twitter.creator} } } .. _tsDetailMedia: detail.media ============ .. confval:: detail.media :type: array :Path: plugin.tx_news.settings Configuration for media elements in the detail view. .. attention:: If you need different options like using **width** instead of **maxWidth** you need also to adopt the template files. Default:: detail.media { image { maxWidth = 282 maxHeight = # If using fluid_styled_content lightbox { enabled = {$styles.content.textmedia.linkWrap.lightboxEnabled} class = {$styles.content.textmedia.linkWrap.lightboxCssClass} width = {$styles.content.textmedia.linkWrap.width} height = {$styles.content.textmedia.linkWrap.height} } # If using css_styled_content, use those ssettings # lightbox { # enabled = {$styles.content.imgtext.linkWrap.lightboxEnabled} # class = {$styles.content.imgtext.linkWrap.lightboxCssClass} # width = {$styles.content.imgtext.linkWrap.width} # height = {$styles.content.imgtext.linkWrap.height} # rel = lightbox[myImageSet] # } } video { width = 282 height = 300 } } .. _tsDetailErrorHandling: detail.errorHandling ==================== .. confval:: detail.errorHandling :type: string :Path: plugin.tx_news.settings :Default: "showStandaloneTemplate,EXT:news/Resources/Private/Templates/News/DetailNotFound.html,404" If no news entry is found, it is possible to use various types of error handling. showStandaloneTemplate A template is rendered. The syntax is `showStandaloneTemplate,,`, for example `showStandaloneTemplate,EXT:news/Resources/Private/Templates/News/DetailNotFound.html,404` redirectToListView Redirect to the list view on the same page. redirectToPage Redirect to any page by using the syntax redirectToPage,,. This means e.g. redirectToPage,123,404 to redirect to the page with UID 123 and error code 404. pageNotFoundHandler The page not found handler defined in the site configuration is called. Example: Show a custom not found template ----------------------------------------- If the current news record is not found, show the custom template instead and return the HTTP-code `404` (not found):: plugin.tx_news.settings.detail.errorHandling = showStandaloneTemplate,EXT:my_sitepackage/Resources/Private/Templates/NotFound.html,404 Example: Redirect to page 123 if news record is not found --------------------------------------------------------- If the current news record is not found, forward to page 123 with the HTTP-code `301` (moved permanently):: plugin.tx_news.settings.detail.errorHandling = redirectToPage,123,301 .. _tsDetailCheckPidOfNewsRecord: detail.checkPidOfNewsRecord =========================== .. confval:: detail.checkPidOfNewsRecord :type: boolean :Default: 0 If set, the detail view checks the incoming news record against the defined :confval:`startingpoint`. If those don't match, the news record won't be displayed and :confval:`detail.errorHandling` applied. .. _tsDetailShowMetaTags: detail.showMetaTags =================== .. confval:: detail.showMetaTags :type: boolean :Path: plugin.tx_news.settings :Default: 1 If enabled, the meta tags including title, description and various open graph tags (defined in :confval:`opengraph`) are rendered. .. _tsDetailShowPrevNext: detail.showPrevNext =================== .. confval:: detail.showPrevNext :type: boolean :Default: 0 If enabled, links to the previous and next news records are shown .. _tsDetailRegisterProperties: detail.registerProperties ========================= .. confval:: detail.registerProperties :type: string :Path: plugin.tx_news.settings :Default: keywords,title This property is currently not used. .. _tsDetailShowSocialShareButtons: detail.showSocialShareButtons ============================= .. confval:: detail.showSocialShareButtons :type: boolean :Default: 1 If the extension `rx_shariff `__ is installed and this option is enabled, the social share functionality provided by rx\_shariff is shown. You can install this extension with composer: .. code-block:: bash :caption: bash composer req reelworx/rx-shariff list.media ========== .. confval:: list.media :type: array :Path: plugin.tx_news.settings Configuration for media elements in the list view. .. attention:: If you need different options like using **width** instead of **maxWidth** you need also to adopt the template files! Default:: list.media { image { maxWidth = 100 maxHeight = 100 } } .. _tsListPaginate: list.paginate ============= .. confval:: list.paginate :type: array :Path: plugin.tx_news.settings EXT:news uses a custom ViewHelper to render the pagination. The following settings are available: class The class that should be used for the pagination itemsPerPage Define how many items are shown on one page. insertAbove Set it to `0` to hide the pagination before the actual news items. insertBelow Set it to `0` to hide the pagination after the actual news items. maximumNumberOfLinks If set, not all pages of the pagination are shown but only the given amount. Imagine 1000 news records and 10 items per page. This would result in 100 links in the frontend. Default:: list.paginate { class = GeorgRinger\NumberedPagination\NumberedPagination itemsPerPage = 10 insertAbove = 1 insertBelow = 1 maximumNumberOfLinks = 3 } .. _tsListRss: list.rss ======== .. confval:: list.rss :type: array :Path: plugin.tx_news.settings Additional settings for the RSS view. See the :ref:`RSS configuration `. Default:: rss { channel { title = {$plugin.tx_news.rss.channel.title} description = {$plugin.tx_news.rss.channel.description} language = {$plugin.tx_news.rss.channel.language} copyright = {$plugin.tx_news.rss.channel.copyright} generator = {$plugin.tx_news.rss.channel.generator} link = {$plugin.tx_news.rss.channel.link} } } .. _tsSearchFields: search.fields ============= .. confval:: search.fields :type: string :Path: plugin.tx_news.settings :Default: teaser,title,bodytext Comma separated list of fields which are used for the search. .. hint:: You can also search in relations, e.g. the category title by using :code:`categories.title` search.splitSearchWord ====================== .. confval:: search.splitSearchWord :type: boolean :Path: plugin.tx_news.settings :Default: 0 If set to `1`, the search subject will be split by spaces and it will not only find the phrase but also if the search terms are scattered in a field. As an example: Searching for *hello world* will give you as result also the news item with the title `hello the world`. The search terms must be found in the same field, which means that a news item with the world *hello* in the `title` and the word *world* in the bodytext won't be found. .. hint:: If you need a better search experience, think about using something like EXT:solr!