Code Monkey home page Code Monkey logo

suluarticlebundle's Introduction

SuluArticleBundle

Official Sulu Bundle Badge

GitHub license GitHub tag (latest SemVer) Test workflow status CircleCI build Sulu compatibility


The SuluArticleBundle integrates a performance optimized way for managing articles in the Sulu content management system. In the context of this bundle, articles are localized content-rich entities that are manageable via the Sulu administration interface and can be rendered on a website delivered by Sulu. This makes them a good choice for managing things like blog posts, products or even recipes in a Sulu project. In order to keep things clean, the bundle allows to manage different types of articles via separated lists in the administration interface.


Sulu Slideshow


The SuluArticleBundle is compatible with Sulu starting from version 2.0. Have a look at the require section in the composer.json to find an up-to-date list of the requirements of the bundle.

๐Ÿš€ย  Installation and Documentation

Execute the following composer commands to add the bundle to the dependencies of your project:

composer require "elasticsearch/elasticsearch:7.9.*" # should match version of your elasticsearch installation
composer require sulu/article-bundle

Afterwards, visit the bundle documentation to find out how to set up and configure the SuluArticleBundle to your specific needs.

๐Ÿ’กย  Key Concepts

Article Characteristics

Like Sulu pages, articles are configured via templates and can include additional SEO and excerpt information. Moreover, articles support the same drafting, publishing and versioning functionality as provided by pages. In contrast to Sulu pages, articles are managed in a flat list instead of a tree structure. Furthermore, unlike the Sulu page tree, the article bundle is optimized for managing a big number of articles.

Elasticsearch dependency

The SuluArticleBundle was originally developed to be used in the publishing industry. To satisfy the initial requirements regarding performance and scalability, a view layer stored in an Elasticsearch index was utilized. Because of this, there is no way to use the bundle without Elasticsearch at the moment. It is planned to remove this hard dependency in the next major version.

If you cannot or do not want to make Elasticsearch a dependency of your project, you can use Sulu pages for certain use cases instead of the SuluArticleBundle. However, be aware that the article list provides a better performance and is more comfortable to use with a large number of entities.

โค๏ธย  Support and Contributions

The Sulu content management system is a community-driven open source project backed by various partner companies. We are committed to a fully transparent development process and highly appreciate any contributions.

In case you have questions, we are happy to welcome you in our official Slack channel. If you found a bug or miss a specific feature, feel free to file a new issue with a respective title and description on the the sulu/SuluArticleBundle repository.

๐Ÿ“˜ย  License

The Sulu content management system is released under the under terms of the MIT License.

suluarticlebundle's People

Contributors

adriansieber avatar alexander-schranz avatar chirimoya avatar danrot avatar dev-newvisibility avatar edvinas9 avatar flytomek avatar gisostallenberg avatar kleinkoerkamp avatar luca-rath avatar mamazu avatar marcostastny avatar mario-fehr avatar mark-gerarts avatar martinlagler avatar niklasnatter avatar olivier127 avatar plozmun avatar popoplanter avatar prokyonn avatar quehnie avatar ramonbakker avatar rogamoore avatar sabinebaer avatar therouv avatar thomasduenser avatar trickreich avatar tstauer avatar vmeijer avatar wachterjohannes avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

suluarticlebundle's Issues

ArticleDataProvider Sorting

Q A
Bug? yes
New Feature? no

Actual Behavior

In the getSearchResult function the search automatically gets sorted on title.
Line 230
$search->addSort(new FieldSort('title'));

Expected Behavior

Gives back the standard order from phpcr.

Possible Solutions

Remove this line to give the user the standard sorting

Language switch forgets selected tab

Q A
Bug? yes
New Feature? no
Sulu Version --
Browser Version --

Actual Behavior

With two hacks it works in this bundle it. When the bug in Sulu is solved these lines could be removed:

Expected Behavior

Same as in Sulu issue.

Reference

sulu/sulu#3198

Type translation

Q A
Bug? no
New Feature? YES
Sulu Version Specific version or SHA of a commit
Browser Version Browser name and version

Actual Behavior

The types wont be translated.

Translations (fr, nl)

Q A
Bug? no
New Feature? no
Sulu Version none
Browser Version none

Actual Behavior

Currently the french translation is not complete and the netherlands translation is not even started.

Possible Solutions

Ask people from slack channel to extend the translations.

Export of articles as csv

Q A
Bug? no
New Feature? yes
Sulu Version 1.5
Article Version 0.3

Actual Behavior

CSV Export is currently not available

Expected Behavior

Export should be added to articles.

Steps to Reproduce

The list view should have a export function.

Possible Solutions

Add basic sulu csv export function.

Own translation for Typ tab

Q A
Bug? no
New Feature? yes
Sulu Version 1.5
Article Version 0.3

Actual Behavior

Currently the Typ translation is the same as the tab translation.

Expected Behavior

There should be 2 Translations for typ used in the list and typ used in the Tabnavigation e.g. the Type is Magazine and the Tab are Magazines

Possible Solutions

Add translation_key_tab or something to the configuration.

Enable multi site per configuration for specific type

Q A
Bug? no
New Feature? yes
SuluArticleBundle Version --
Sulu Version --

Actual Behavior

Multisite is enabled per default for all articles.

Expected Behavior

The developer can configure for which types multisites are enabled.

Adding translation: Proof that the article type can't change

Q A
Bug? yes
New Feature? no
Sulu Version Specific version or SHA of a commit
Browser Version Browser name and version

Actual Behavior

At the moment we don't check if the type is in the request.

Expected Behavior

Proof that the article type can't be different between translations.

ArticleDataProvider additional Sorting

Q A
Bug? no
New Feature? yes

Actual Behavior

The function getSearchResult is private so there isn't a way to extend the sort when you extend from this class.

Expected Behavior & Possible Solutions

Some public function where you can add sort options to the search.

Delete Article

Q A
Bug? no
New Feature? YES
Sulu Version Specific version or SHA of a commit
Browser Version Browser name and version

Actual Behavior

It is not possible to delete an article.

Expected Behavior

It should be possible from list and form.

Path deletion isn't working after Article deletion

Q A
Bug? yes
New Feature? no

Actual Behavior

When an article gets deleted, the related path inside ro_routes isn't deleted.

Expected Behavior

The path to the deleted article should be deleted as well.

Steps to Reproduce

  1. Create an article named test
  2. Check ro_routes table, the generate path should be /test
  3. Delete this article
  4. Create a new article named test
  5. path is now /test-1 because the old pathhasn't been deleted

Missing translation for "sulu_article.list.author"

Q A
Bug? yes
New Feature? no
Bundle Version dev-develop

Actual Behavior

Translation for the key sulu_article.list.author is missing when viewing the articles as list.

bildschirmfoto 2017-03-03 um 14 52 16

Expected Behavior

The key should be translated.

Steps to Reproduce

Develop version of ArticleBundle, create article, head back to the overview and check the field descriptor titles.

Possible Solutions

Add translation key to the backend.??.xlf files.

Smartcontent overlay throws webspace not found in husky

Q A
Bug? yes
New Feature? no
Sulu Version c06cb637486a426eb73f98298db788e84065965b
Browser Version Version 56.0.2924.87 (64-bit) / all

Actual Behavior

Smartcontent with <param name="provider" value="articles"/> doesn't load categories button for filtering.

Error message in console:

Webspace "" has no defined locale

Cannot convert undefined or null to object

Error loading component: smart-content/categories@sulucontent TypeError: Cannot convert undefined or null to object
>> Object.getContentLocale (user-settings-manager.js?v=develop:41)

Expected Behavior

Smartcontent categories button does load and categories are selectable.

Steps to Reproduce

  1. Add an article template with a smartcontent which has <param name="provider" value="articles"/>
  2. click on the smartcontent filter button.
  3. see a loader where the button for categories should be placed.

Possible Solutions

Add default webspace key for articles.

Tests should also be runnned with prefer-lowest

Q A
Bug? no
New Feature? no
Sulu Version <1.5
Browser Version all

Actual Behavior

The tests should run with --prefer-lowest. The problem is that sulu <1.5 is not able to run the tests with lowest.

Extension of ArticleViewDocument

Q A
Bug? yes
New Feature? no
Sulu Version Specific version or SHA of a commit
Browser Version all

Actual Behavior

Additional properties added to ArticleViewDocument for elastic search indexing are not returned in page document.

Expected Behavior

return of properties in page document

Steps to Reproduce

What are the steps to reproduce this bug? Please add code examples,
screenshots or links to GitHub repositories that reproduce the problem.

Possible Solutions

add getContent and getRoutePath to ArticleResourceItem

False webspacekey in structure

Q A
Bug? yes
New Feature? no
Sulu Version 1.4.1

Actual Behavior

False webspacekey in structure

Expected Behavior

Structure should return the current and not articles as webspacekey.

Steps to Reproduce

Content Type with following code:

$webspaceKey = $property->getStructure()->getWebspaceKey();

Possible Solutions

Should get the webspaceKey from the requestAnalyzer.

Reindex command doesn't work correct for different locales

Q A
Bug? yes
New Feature? no
Bundle Version 0.3.*

Actual Behavior

I have multiple languages and an ArticleIndexListener that adds some properties to the custom ArticleViewDocument. The articles only exist in de!

When using the reindex command like this:

app/webconsole sulu:article:index-rebuild en --live -e prod
app/webconsole sulu:article:index-rebuild de --live -e prod

Everything works fine. When the order of the commands is switched (first de, then en), it overwrites the de values with the en values.

Expected Behavior

As the uuid consists of the page uuid and the locale, I expect to receive the correct view document in my listener.

Steps to Reproduce

  1. Install bundle with a version of 0.3.*
  2. Crate article in de but not in en
  3. Create custom view document with a new property
  4. Create an index listener and set the new property
  5. Execute the reindex command first with de then en and check the index

Analyse "routePath"

Q A
Bug? no
New Feature? no
Sulu Version independent
Browser Version independent

Actual Behavior

The routePath of ArticleViewDocument and ArticlePageViewObject are indexed via the standard analyzer.

Expected Behavior

In an ideal world, this property should be analyzed via an analyzer with the path_hierachy tokenizer. But the problem is that this analyzer does not exist for default in elasticsearch.

Possible Solutions

Possibility 1: We could start prepending configuration to the elasticsearch-bundle. The problem here could be that this could be hard to maintain and override.

Possibility 2: We could use a custom analyzer which has to add to the configuration (like the other config). This is not very error-tolerant but would work.

Single Article Author

Q A
Bug? no
New Feature? no
Sulu Version 0.1.0
Browser Version all

Actual Behavior

In sulu we have implemented a single-select author. The same behavior should be in this bundle.

Should also be displayable in the list.

hasNextPage in view object is always false

Q A
Bug? yes
New Feature? no
Sulu Version Specific version or SHA of a commit
Browser Version all

Actual Behavior

the hasNextPage property is always false

Expected Behavior

to get the right value for hasNextPage from the smartcontent contenttype

Content Type "category_list" is not working

Q A
Bug? yes
New Feature? no

Actual Behavior

When adding a property with the content type category_list to an article xml, the rendering in the backend isn't working anymore.

Expected Behavior

The backend article page should load without errors and display the properties instead of a grey area with nothing.

Steps to Reproduce

  1. Create an article xml with a category_list in it
  2. Create / edit an article with the template and the category_list in it
  3. See the error in the devtools:
Uncaught ReferenceError: categoryLocale is not defined
    at eval (eval at _.template (husky.js:13053), <anonymous>:6:9)
    at Object._.template (husky.js:13059)
    at child.renderFormTemplate (main.js?v=develop:187)
    at child.<anonymous> (main.js?v=develop:158)
    at Object.execCb (husky.js:1636)
    at Module.check (husky.js:870)
    at Module.<anonymous> (husky.js:1111)
    at husky.js:129
    at husky.js:1154
    at each (husky.js:57)
    at Module.emit (husky.js:1153)

Versioning support

Q A
Bug? no
New Feature? yes
Sulu Version ^1.5
Browser Version none

Expected Behavior

Versioning should behave like sulu pages. For this we have to drop support for sulu 1.4.

Articles do not work in teaser selection

Q A
Bug? yes
New Feature? no
Sulu Version beb8bdb
Browser Version ---

Actual Behavior

If an article is added as a teaser it doesn't show up in the teaser-selection content type. It also doesn't appear after a save...

Expected Behavior

The list for teaser-selection should also show the assigned articles.

Steps to Reproduce

  1. Create a page with a teaser selection
  2. Create an article
  3. Add the article on a page as a teaser
  4. The article doesn't show up in the list of the teaser selection (but for pages it is working)

Add Behat tests for Sulu admin

Q A
Bug? no
New Feature? yes
Sulu Version --
Browser Version --

Actual Behavior

The SuluArticleBundle has no frontend tests.

Expected Behavior

It would be nice if we would implement frontend tests.

Implement SecurityChecker

Q A
Bug? no
New Feature? yes

Actual Behavior

ArticleController doesn't check the security permissions.

Support for ElasticSearch 5.0

Q A
Bug? no
New Feature? yes
Sulu Version ^1.5
Article Version ^0.3

Actual Behavior

Currently only ElasticSearch 2.* is supported

Expected Behavior

Also ElasticSearch 5.* support available

Remove author selection component when Sulu >= 1.5.*

Q A
Bug? no
New Feature? no
Sulu Version --
Browser Version --

Actual Behavior

We have implemented the author selection overlay in this bundle.
Same code as in Sulu content bundle.
File: /Users/trickreich/Sandbox/sulu-minimal-dev/vendor/sulu/article-bundle/Resources/public/js/components/articles/edit/settings/author-selection/main.js

Expected Behavior

Remove the component and use it from Sulu when updating the dependency to Sulu 1.5.*

Smartcontent with provider article - "elements selected" always 10 if limit is not set

Q A
Bug? yes
New Feature? no
Sulu Version all
Browser Version all

Actual Behavior

Sulu shows 10 elements selected though it should return XX elements selected unless the max limit parameter is set to a specific value. The website returns all of the elements and is not limited to 10 (right behavior).

Expected Behavior

That the sulu backend shows the right value for "elements selected".

Steps to Reproduce

SmartContent with <param name="provider" value="articles"/>. Add more than 10 articles - it will always show 10 elements selected.
In this case we used additionally a filter for categories and tags - SmartContent should have returned 30 elements selected.

Teaser-Selection list: missing locale as url parameter

Q A
Bug? no
New Feature? no
Sulu Version none
Browser Version none

Actual Behavior

Currently the complete teaser-selection/list@sulucontent was copied to this bundle to add a locale parameter.

Expected Behavior

This file should not be copied to the bundle it should be handled correctly in sulu.

Loading status for deletion missing

Q A
Bug? no
New Feature? no

Actual Behavior

When deletion takes some times when you remove multiple articles the loading status is missing.

Expected Behavior

It should also show the loading bubble when delete items.

Steps to Reproduce

Delete many articles no loading is shown.

Possible Solutions

Show loading bubble.

Implement multilingual articles

Q A
Bug? yes
New Feature? yes

Actual Behavior

At the moment the article can only be saved in one language.

Expected Behavior

It should be possible to create language in all locales which are provided by Sulu.

Todo

  • Elastic search: Save one entry per language (id: uuid + locale)
  • Frontend: Implement language switcher
  • Type: Can't change between languages

Property-Configuration

Q A
Bug? no
New Feature? no
Sulu Version 1.5
Browser Version none

Actual Behavior

the code in https://github.com/wachterjohannes/SuluArticleBundle/blob/04908a8d58df8ba8666321212252306a6108a9c8/Resources/public/js/services/property-configuration.js was copied from https://github.com/sulu/sulu/blob/develop/src/Sulu/Bundle/ContentBundle/Resources/public/js/components/content/form/main.js#L255.

Possible Solutions

When updating the dependency for sulu/sulu we could backport this service to content-bundle and use the same in content-bundle and article-bundle.

IMPORTANT

If the update to 1.6-dev will never be done this issue can be closed without any changes.

Article-Selection dont handle locale

Q A
Bug? yes
New Feature? no
SuluArticle Version 0.2.0 develop
Browser Version no

Actual Behavior

Currently the article-selection produces an error because of missing locale parameter in selection.

Add filter options 'filter by...'

Q A
Bug? no
New Feature? yes
Sulu Version --
Browser Version --

Actual Behavior

At the moment we just have two filter options:

  • All
  • Filter by logged in user

Expected Behavior

Add a third option 'Filter by...' which opens a overlay where the user can select a contact id.

Error after changing an article without setting a Changer

Q A
Bug? yes
New Feature? no
Bundle Version dev-develop

Actual Behavior

When saving an article - after changing it via e.g. a Command without setting a changer - following error is thrown:

Entity with the type "" and the id "null" not found.

Request URL:http://oelz.dev/admin/api/users/null
Request Method:GET
Status Code:404 Not Found

Expected Behavior

It should not throw an error.

Steps to Reproduce

  1. Create an article and save it
  2. Update / change the article via a command without setting a changer
  3. Open the article in the backend and save.

Possible Solutions

Do not try to fetch a user when the changer is null or use the creator as changer.

Show error when no template is defined

Q A
Bug? no
New Feature? yes

Actual Behavior

At the moment the dropdown is empty.

Expected Behavior

In my opinion it would be nice if we would display a short info/error.

Article data-provider data-source

Q A
Bug? no
New Feature? yes
Sulu Version cec35da
Browser Version none

Expected Behavior

The ArticleDataProvidershould provide a data-source with a selection of the type.

Index clear does not remove all documents

Q A
Bug? yes
New Feature? no
Sulu Version none
Browser Version 0.1.0

Actual Behavior

The reindex command has the option --clear which should remove all the documents before creating new once. There we use paginated remove - which does not delete all documents.

Possible Solutions

Always fetch first page.

Snippet content type not working with default true

Q A
Bug? yes
New Feature? no
Sulu Version 1.6.0-RC1

Actual Behavior

Currently a snippet content type with default true will throw an error.

Expected Behavior

It should use the current webspace to load the default snippet.

Steps to Reproduce

    <property name="sidebars" type="snippet">
        <meta>
            <title lang="de">Sidebar</title>
            <title lang="en">Sidebar</title>
        </meta>

        <params>
            <param name="default" value="true"/> <!-- the fallback dont work in articles -->
            <param name="snippetType" value="sidebar" />
        </params>
    </property>

Possible Solutions

Use the request analyzer in the snippet (sulu/sulu) or set the webspace key in the ArticleBridge.

Shadow articles

Q A
Bug? no
New Feature? yes
Sulu Version none
Browser Version none

Expected Behavior

Articles should be able to load the content from another locale (like pages). The index should be updated also in live index with the shadowed data.

Unpublish article

Q A
Bug? no
New Feature? yes
Sulu Version 339234b

Actual Behavior

It is not possible to unpublish articles.

Expected Behavior

It should be a dropdown "Edit" with "Delete" and "Unpublish" and a button which indicates the "State" in the toolbar of the form. (see content-form)

Add template infos to symfony profiler

Q A
Bug? no
New Feature? yes
Sulu Version? 1.5.1
Article Version? 0.3

Actual Behavior

Actually you dont see which template is render in the symfony toolbar.

Expected Behavior

It should also be shown which template should be render in the symfony toolbar also the type: article should be shown.

Steps to Reproduce

Open the article page and hover on the symfony profiler sulu icon.

When ElasticSearch is down, ArticleBundle doesn't recognize it and display a readable error.

Q A
Bug? Yes
New Feature? no
SuluArticleBundle Version Any working ArticleBundle / Sulu combo

Actual Behavior

When ElasticSearch is down, the Articles screen in the adminUI dies with a perpetual loader displayed. It doesn't read the 500 error message provided by the app.

Expected Behavior

There should be a flashing error message saying something like "No ES nodes available on the server".

Steps to Reproduce

Install Sulu and ArticleBundle. Kill ES. Open Articles UI in Admin UI.

Possible Solutions

Read the error message (it's very well structured) and produce a simple warning div with its main message flashed. Image below.

screenshot 2017-06-07 13 43 08

When copying an existing article into a new locale, the article is both published and draft

Q A
Bug? yes
New Feature? no
SuluArticleBundle Version 0.5.1
Sulu Version 1.6.0-RC1

Actual Behavior

The article that is copied from an existing locale is both in draft mode and marked as published.

Expected Behavior

It should be only one of those things, preferably draft.

Steps to Reproduce

Write article in locale1. Switch to locale2 and pick to copy content from existing locale.

screenshot 2017-06-07 17 52 23

Language copy locale overlay

Q A
Bug? no
New Feature? yes

Actual Behavior

At the moment this options isn't provided.

Expected Behavior

Same as it works in Sulu pages.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.