New! Checkout our new Forums homepage! Follow the latest activity in eZ Publish Forums on Share.ez.no, Projects.ez.no and StackOverflow.com


@ezpublishlegacy
ezpublishlegacy pushed to master in ezpublishlegacy/xrowworkflow
  • @xinyuexrow 17ba73d
    Some modifications to the image licensing logic.
Mar 22, 2018
03/22/2018 12:35 am   eZPublishLegacy @ GitHub   Mirror   Link   @12
@ezecosystem
ezecosystem pushed to master in ezecosystem/ezpublish-kernel
Mar 22, 2018
03/21/2018 11:59 pm   eZecosystem @ GitHub   Mirror   Link   @4
@ezpublishlegacy
ezpublishlegacy pushed to master in ezpublishlegacy/ezstudio
Mar 21, 2018
03/21/2018 12:21 pm   eZPublishLegacy @ GitHub   Mirror   Link   @10
@ezpublishlegacy
ezpublishlegacy pushed to master in ezpublishlegacy/ezpublish-kernel
  • @alongosz 8eea69f
    EZP-28962: Fixed REST OPTIONS Controller name (#2282)
Mar 21, 2018
03/21/2018 12:17 pm   eZPublishLegacy @ GitHub   Mirror   Link   @10
@ezpublishlegacy
ezpublishlegacy pushed to master in ezpublishlegacy/ezplatform-demo
Mar 21, 2018
03/21/2018 12:14 pm   eZPublishLegacy @ GitHub   Mirror   Link   @6
@ezpublishlegacy
ezpublishlegacy pushed to master in ezpublishlegacy/ezplatform
Mar 21, 2018
03/21/2018 12:14 pm   eZPublishLegacy @ GitHub   Mirror   Link   @10
@ezecosystem
ezecosystem pushed to master in ezecosystem/Sylius
Mar 21, 2018
03/21/2018 12:09 pm   eZecosystem @ GitHub   Mirror   Link  
@ezecosystem
ezecosystem pushed to master in ezecosystem/ezstudio
Mar 21, 2018
03/21/2018 12:03 pm   eZecosystem @ GitHub   Mirror   Link   @10
@ezecosystem
ezecosystem pushed to master in ezecosystem/ezpublish-kernel
  • @alongosz 8eea69f
    EZP-28962: Fixed REST OPTIONS Controller name (#2282)
Mar 21, 2018
03/21/2018 12:01 pm   eZecosystem @ GitHub   Mirror   Link   @10
@ezecosystem
ezecosystem pushed to master in ezecosystem/ezplatform-site-api
Mar 21, 2018
03/21/2018 12:00 pm   eZecosystem @ GitHub   Mirror   Link   @4
@ezecosystem
ezecosystem pushed to master in ezecosystem/ezplatform-demo
Mar 21, 2018
03/21/2018 12:00 pm   eZecosystem @ GitHub   Mirror   Link   @4
@ezecosystem
ezecosystem pushed to master in ezecosystem/ezplatform
Mar 21, 2018
03/21/2018 12:00 pm   eZecosystem @ GitHub   Mirror   Link   @10
@ezecosystem
ezecosystem pushed to master in ezecosystem/docker-php
Mar 21, 2018
03/21/2018 11:57 am   eZecosystem @ GitHub   Mirror   Link   @4

Below I just want to go over some recent topics within the diversity initiative.

Respectful Review Comments

Thanks to the work of Sebastiaan Stok we now have a guide on how to write respectful review comments. The aim of this guide is to give hints on how to not discourage contributors during the review process. It's quite normal for issue tickets and pull requests to require some adjustments or even just further explanations. Especially for newcomers, this process can feel quite harsh. With this guide, we want to help make this process a positive learning experience for everyone involved.

Mentorship program

Another area the diversity initiative identified is the creation of a mentorship program to help bring in more people of underrepresented groups into our community. Kevin Dunglas has taken on this issue which resulted in a paid scholarship to work on API platform. We hope that we will see more such initiatives. RGSoC is a great project, which as you can see has grown beyond "just" Ruby on Rails. Another similar initiative is Outreachy. Powercoders in turn is focusing on enabling refugees. So best talk to the people in charge of sponsorship budgets at your company to try and get funds allocated to initiatives like these. Outreachy for example will begin to seek new sponsors in August. Speaking of which, Daniel Gomes is looking into organizing a training event for local university students in parallel to SymfonyCon Lisbon.

Code of conduct and enforcement process

That being said, bringing new people into the community requires that we also ensure that we are truly welcoming. As such we are still very much committed to the idea of adding a code of conduct to Symfony. However, a code of conduct is of little help if there is no process in place to enforce it in case of violations. Therefore Tobias, Michelle, Egidijus and I have been working on a set of PRs to cover these topics, which are currently under discussion. Especially the enforcement topic still has some ongoing discussions that need to be resolved. At the same time, the real world example overview aims to show people why this issue is so important to address. Furthermore, we are looking into how GDPR will affect all of this, specifically the topic of record keeping and collecting consent.

Context and Slack discussions

We also had some intense debates on the Symfony slack about cursing, edgy jokes and more specifically the word "context". Cursing in a chat channel when something goes wrong might seem innocent since it's not directed at a specific person. Similarly making an edgy joke with someone you know intimately might also seem like a non-issue.

However, in a chat where literally thousands of people come and go, message scroll through. Each of us comes with their own "context" of what we deem appropriate, how much of the previous discussions we have read and whom we know in the chat. As such assuming all participants fully know the "context" in which a specific message was written is quite dangerous and can quickly create an environment where only a certain "in-group" might feel comfortable.

So the kind of talk that might be ok in an in-person discussion among close friends is not appropriate in a Slack channel. Now the occasional slip of the word is not going to derail the entire atmosphere. Furthermore just like in many cases when different cultures meet, one might not even be aware that certain sentences or phrases are considered inappropriate by some. When being informed in such cases, just listen, apologize, learn and move on. No need to draw red lines into the ground or become defensive. In the same sense if you do see someone using inappropriate language, simply point out that action (potentially also via a DM), no need to attack the person's character. In fact I must say I very much appreciate the willingness of several community members to adjust their behavior already!

New slack channels

Speaking of slack we have two new channels, one is called #thankyou and the other is called #victory. The purpose of the channels is to show appreciation to fellow people in the community and the other to celebrate personal achievements. The ultimate goal is to create positive energy and at the same time keep up with cool stuff happening in the community.

Final words

One last initiative I want to mention has recently been taken over by Maximilian relates to networking Symfony with initiatives that aim to improve the representation of specific groups. Please add any such initiatives to the ticket. This could for example become a great resource for conference organizers.

So to conclude, while I wish we would have already managed to adopt a code of conduct and many more things, I realize that it helps nobody to rush this. However, I am really thrilled with how many topics have already been proposed and picked up and are being worked on actively! Also, the willingness to listen and learn, especially on the above noted "Slack - context" discussion, has really been encouraging to see. Speaking of slack we now have over 60 people in the #diversity channel which is becoming a great resource for anyone interested in this topic. We obviously still have a long path ahead but with this much commitment, we will be able to realize the vision of the diversity initiative.


Be trained by Symfony experts - 2018-04-3 Paris - 2018-04-3 Paris - 2018-04-3 Paris
03/21/2018 04:57 am   Symfony Blog   Mirror   Link   @8
@ezpublishlegacy
ezpublishlegacy pushed to master in ezpublishlegacy/mugoobjectrelations
  • @peterkeung 7a74012
    Preserve extra field when the related object is moved, swapped, or re…
Mar 21, 2018
03/21/2018 12:21 am   eZPublishLegacy @ GitHub   Mirror   Link   @6
@ezpublishlegacy
ezpublishlegacy pushed to master in ezpublishlegacy/ezstudio
Mar 21, 2018
03/21/2018 12:14 am   eZPublishLegacy @ GitHub   Mirror   Link   @4
@ezpublishlegacy
ezpublishlegacy pushed to master in ezpublishlegacy/ezplatform
Mar 21, 2018
03/21/2018 12:10 am   eZPublishLegacy @ GitHub   Mirror   Link   @4
@ezecosystem
ezecosystem pushed to master in ezecosystem/ezstudio
Mar 21, 2018
03/21/2018 12:00 am   eZecosystem @ GitHub   Mirror   Link   @10
@ezecosystem
ezecosystem pushed to master in ezecosystem/ezplatform
Mar 21, 2018
03/20/2018 11:59 pm   eZecosystem @ GitHub   Mirror   Link   @8
03/21/2018 06:22 pm   eZ Publish Youtube   Mirror   Link   @8
@ezpublishlegacy
ezpublishlegacy pushed to master in ezpublishlegacy/repository-forms
  • @ViniTou cb987b5
    EZP-28279: User cannot set max file size in Image field type (#226)
Mar 20, 2018
03/20/2018 12:44 pm   eZPublishLegacy @ GitHub   Mirror   Link   @12
@ezpublishlegacy
ezpublishlegacy pushed to master in ezpublishlegacy/ezpublish-kernel
  • @ViniTou 68a7e9e
    EZP-28279: User cannot set max file size in Image field type (#2280)
Mar 20, 2018
03/20/2018 12:18 pm   eZPublishLegacy @ GitHub   Mirror   Link   @10
@ezpublishlegacy
ezpublishlegacy pushed to master in ezpublishlegacy/ezplatform
Mar 20, 2018
03/20/2018 12:15 pm   eZPublishLegacy @ GitHub   Mirror   Link   @4
@ezecosystem
ezecosystem pushed to master in ezecosystem/repository-forms
  • @ViniTou cb987b5
    EZP-28279: User cannot set max file size in Image field type (#226)
Mar 20, 2018
03/20/2018 12:08 pm   eZecosystem @ GitHub   Mirror   Link   @8
@ezecosystem
ezecosystem pushed to master in ezecosystem/ezpublish-kernel
  • @ViniTou 68a7e9e
    EZP-28279: User cannot set max file size in Image field type (#2280)
Mar 20, 2018
03/20/2018 12:01 pm   eZecosystem @ GitHub   Mirror   Link   @8
@ezecosystem
ezecosystem pushed to master in ezecosystem/ezplatform
Mar 20, 2018
03/20/2018 12:00 pm   eZecosystem @ GitHub   Mirror   Link   @4

Contributed by
Nicolas Grekas
in #26499.

In Symfony 3.4 we made all services private by default meaning that you cannot longer call $this->get('my_service_id') in your controllers to quickly get some service.

We made this change because using the service container directly is not considered a good practice: it hides the dependencies of your classes, making them coupled to external configuration, thus harder to test and to review.

Whenever we remove a feature like that, we provide an alternative that is considered better and, if possible, as simple to use as the previous one. That's why controllers allow injecting services with type hints in their action methods and their constructors.

The only remaining drawback of "private services by default" is that testing was harder than before. Some developers even defined some config in the test environment to make all services public in tests. In Symfony 4.1, we did the same and now tests allow fetching private services by default.

In practice, tests based on WebTestCase and KernelTestCase now access to a special container via $client->getContainer() or the static::$container property that allows to fetch non-removed private services:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
use App\Entity\User;
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
use Symfony\Component\Console\Tester\CommandTester;

class AddUserCommandTest extends KernelTestCase
{
    private function assertUserCreated()
    {
        self::bootKernel();

        // returns the real and unchanged service container
        $container = self::$kernel->getContainer();

        // returns the special container that allows fetching private services
        $client = static::createClient();
        $container = $client->getContainer();
        // alternative way to get the special container:
        // $container = self::$container;

        $user = self::$container->get('doctrine')->getRepository(User::class)->findOneByEmail('...');
        $this->assertTrue(self::$container->get('security.password_encoder')->isPasswordValid($user, '...');
        // ...
}

Be trained by Symfony experts - 2018-04-3 Paris - 2018-04-3 Paris - 2018-04-3 Paris
03/20/2018 10:22 am   Symfony Blog   Mirror   Link   @8

For those who are new to eZ, a custom tag is used to extend eZ Platform Rich Text fields by giving editors a way to include advanced content and information as new structured information in rich text. The beauty of a custom tag is that third-party developers can easily create, define and render a new custom tag. Once done, the custom tag shows up as a new button in the Rich Text editor toolbar.

Use cases are numerous and unlimited. Custom tags can be used to embed information coming from external platforms like Youtube videos, Tweets and Facebook posts or others. They can also be used to structure content in the CMS, for instance to defines content such as quotes or abstracts. Another use case is to pull interactivity and information from a third-party system, such as communicating with a marketing automation company for embedding a form or pulling data from a business application. The developer's imagination is the only limit.

Custom tag example:

How to create a custom tag:

Creating a custom tag is something that any eZ Platform developer will be able to do rather simply and quickly. 

First he/she will have to declare the custom tag to the system, by defining it in the global YML custom tags configuration file. By "defining" we mean:

  • Linking to the custom tag icon (icon that will be displayed in the online editor)
  • Defining its attributes (the fields that will have to be filled by the editor to render the tag)
  • Referencing the template to be used to render the tag
  • Optionally, defining the translations for the tag's name and attribute

Here is an example of a YouTube custom tag:

Attributes support four different types: integer, string, Boolean (true or false checkbox) or selection (drop-down list). This might be extended in the future depending on a customer’s feedback and needs.

Then the developer will have to create the template for his tag to be rendered, and for that he'll use standard TWIG templates just like for any other rendering in eZ Platform (note that the template can also be customized using the design engine).

The custom tag will then have to be activated at the siteaccess level.

From there the custom tag will be available in the online editor allowing users to create content using this custom tag.

For more detailed information on how to setup and use custom tags you can to dig a bit more in the documentation.

We already have a few improvements lined up in our backlog for custom tags for the summer release. Feel free to discuss your ideas on our forum, or to simply send your feedback to productmanagement@ez.no.

03/20/2018 09:41 am   ez.no/About-eZ/Blog   Mirror   Link   @8

For those who are new to eZ, a custom tag is used to extend eZ Platform Rich Text fields by giving editors a way to include advanced content and information as new structured information in rich text. The beauty of a custom tag is that third-party developers can easily create, define and render a new custom tag. Once done, the custom tag shows up as a new button in the Rich Text editor toolbar.

Use cases are numerous and unlimited. Custom tags can be used to embed information coming from external platforms like Youtube videos, Tweets and Facebook posts or others. They can also be used to structure content in the CMS, for instance to defines content such as quotes or abstracts. Another use case is to pull interactivity and information from a third-party system, such as communicating with a marketing automation company for embedding a form or pulling data from a business application. The developer's imagination is the only limit.

Custom tag example:

How to create a custom tag:

Creating a custom tag is something that any eZ Platform developer will be able to do rather simply and quickly. 

First he/she will have to declare the custom tag to the system, by defining it in the global YML custom tags configuration file. By "defining" we mean:

  • Linking to the custom tag icon (icon that will be displayed in the online editor)
  • Defining its attributes (the fields that will have to be filled by the editor to render the tag)
  • Referencing the template to be used to render the tag
  • Optionally, defining the translations for the tag's name and attribute

Here is an example of a YouTube custom tag:

Attributes support four different types: integer, string, Boolean (true or false checkbox) or selection (drop-down list). This might be extended in the future depending on a customer’s feedback and needs.

Then the developer will have to create the template for his tag to be rendered, and for that he'll use standard TWIG templates just like for any other rendering in eZ Platform (note that the template can also be customized using the design engine).

The custom tag will then have to be activated at the siteaccess level.

From there the custom tag will be available in the online editor allowing users to create content using this custom tag.

For more detailed information on how to setup and use custom tags you can to dig a bit more in the documentation.

We already have a few improvements lined up in our backlog for custom tags for the summer release. Feel free to discuss your ideas on our forum, or to simply send your feedback to productmanagement@ez.no.

03/20/2018 09:41 am   eZ Systems News   Mirror   Link   @8