New! Our new Issues homepage has the latest issue ticket changes. Follow the latest progress of eZ Publish!


Et un peu hors-sujet :

(En plus du flux RSS global, les billets veille et uniquement ceux là sont listés dans le flux RSS veille)

03/08/2018 05:12 am   pwet.fr/blog   Mirror   Link   @10
@ezpublishlegacy
ezpublishlegacy pushed to master in ezpublishlegacy/Mail
Mar 7, 2018
03/07/2018 12:36 pm   eZPublishLegacy @ GitHub   Mirror   Link   @14
@ezpublishlegacy
ezpublishlegacy pushed to master in ezpublishlegacy/LegacyBridge
Mar 7, 2018
03/07/2018 12:33 pm   eZPublishLegacy @ GitHub   Mirror   Link   @10
@ezpublishlegacy
ezpublishlegacy pushed to master in ezpublishlegacy/ezstudio-demo
Mar 7, 2018
03/07/2018 12:24 pm   eZPublishLegacy @ GitHub   Mirror   Link   @16
@ezpublishlegacy
ezpublishlegacy pushed to master in ezpublishlegacy/ezstudio
Mar 7, 2018
03/07/2018 12:23 pm   eZPublishLegacy @ GitHub   Mirror   Link   @10
@ezpublishlegacy
ezpublishlegacy pushed to master in ezpublishlegacy/ezpublish-kernel
  • @andrerom fa8ea75
    [7.1] Remove Foshttpcache code, leaving that to ezplatform-http-cache…
Mar 7, 2018
03/07/2018 12:19 pm   eZPublishLegacy @ GitHub   Mirror   Link   @8
@ezecosystem
ezecosystem pushed to master in ezecosystem/ezstudio-demo
Mar 7, 2018
03/07/2018 12:03 pm   eZecosystem @ GitHub   Mirror   Link   @8
@ezecosystem
ezecosystem pushed to master in ezecosystem/ezstudio
Mar 7, 2018
03/07/2018 12:03 pm   eZecosystem @ GitHub   Mirror   Link   @10
@ezecosystem
ezecosystem pushed to master in ezecosystem/ezpublish-kernel
  • @andrerom fa8ea75
    [7.1] Remove Foshttpcache code, leaving that to ezplatform-http-cache…
Mar 7, 2018
03/07/2018 12:01 pm   eZecosystem @ GitHub   Mirror   Link   @6
@ezecosystem
ezecosystem pushed to master in ezecosystem/ezmigrationbundle
Mar 7, 2018
03/07/2018 11:59 am   eZecosystem @ GitHub   Mirror   Link   @8

Contributed by
Matt Brunt
in #24777.

Twig supports the overloading of filters, functions, global variables, etc. It's not a commonly needed feature, but it's useful to change the behavior of some extension used in your application.

Overloading those elements require to define them in a new Twig extension and register that extension as late as possible to override the other extensions. When using Twig as a standalone templating engine, it's easy to control the order in which extensions are registered. However, in Symfony you don't have any control of this ordering.

In Symfony 4.1, to allow you to overload any Twig element, we've added support for defining priorities in the Twig extensions. This priority mechanism works the same as in other parts of the framework: priority is defined as a positive or negative integer in the priority attribute of the related service tag (twig.extension in this case):

1
2
3
4
5
6
7
8
# config/services.yaml
services:
    # ...
    App\Twig\AppExtension:
        public: false
        tags:
            # extensions with higher priorities are registered earlier
            - { name: twig.extension, priority: -1024 }

The only caveat is that when defining priorities you cannot rely on autowiring and must register the Twig extension as a service explicitly to define the priority attribute.


Be trained by Symfony experts - 2018-03-12 Cologne - 2018-03-19 Clichy - 2018-03-19 Clichy
03/07/2018 05:10 am   Symfony Blog   Mirror   Link   @14

We’re very excited to announce our new partnership with eZ Systems. Developers leveraging eZ’s open source Content Management Platform, eZ Platform, can now use Cloudinary's award-winning solution to deliver more responsive websites and applications that improve customer engagement.

Cloudinary's end-to-end solution for media management with on-the-fly transformation capabilities significantly enhance developer productivity while decreasing page load times, increasing conversion rates and enhancing SEO across both desktop and mobile environments. Delivered via a single line of code, these transformations, including advanced resizing, automated face detection, watermark creation and much more, can be automatically deployed within the eZ platform.

The full press release is available here.

“Delivering a richer customer experience across all channels, platforms and devices is critically important for all businesses today, and developers are on the front lines working to make these experiences a reality,” said Roland Benedetti, eZ’s Chief Product Officer. “We’re thrilled to be bringing Cloudinary’s end-to-end image and video management solution to our customers. The integration will enable eZ Platform users to deliver the kinds of rich media experiences customers have come to expect no matter where they are, from desktops to mobile to smart TVs.”

“High-quality images and video are central to every website’s user experience and the average site is tasked with managing tens of thousands of these assets,” said Daniel Amitai, Cloudinary’s Vice President of Business Development. "We're pleased to work with eZ to ensure that their customers can create optimal, user-first sites and mobile experiences."

“We share eZ’s developer-first approach and understand the challenges developers face when managing their business-critical media assets across all devices and customer touch-points,” said Kobi Schwarts, Director of Business Development at Cloudinary. “We look forward to helping eZ and its community more easily manage media content and deliver an optimal digital experience.”

Webinar: Optimizing for Page Load Speed

Later this month, on Tuesday, March 20 at 1:00 p.m. ET/10:00 a.m. PT, Cloudinary will join eZ for a webinar titled, “Optimizing for Page Load Speed: Challenges and Strategies to Improve SEO, User Engagement and Conversion Rates.”

Register here and join the discussion on specific challenges marketers and developers face when looking to optimize page load times on websites and mobile devices. Advice on addressing these challenges based on a variety of different use cases will be offered. The webinar will be recorded and a replay link will be available to all registered attendees.

03/06/2018 02:03 pm   ez.no/About-eZ/Blog   Mirror   Link   @8

We’re very excited to announce our new partnership with eZ Systems. Developers leveraging eZ’s open source Content Management Platform, eZ Platform, can now use Cloudinary's award-winning solution to deliver more responsive websites and applications that improve customer engagement.

Cloudinary's end-to-end solution for media management with on-the-fly transformation capabilities significantly enhance developer productivity while decreasing page load times, increasing conversion rates and enhancing SEO across both desktop and mobile environments. Delivered via a single line of code, these transformations, including advanced resizing, automated face detection, watermark creation and much more, can be automatically deployed within the eZ platform.

The full press release is available here.

“Delivering a richer customer experience across all channels, platforms and devices is critically important for all businesses today, and developers are on the front lines working to make these experiences a reality,” said Roland Benedetti, eZ’s Chief Product Officer. “We’re thrilled to be bringing Cloudinary’s end-to-end image and video management solution to our customers. The integration will enable eZ Platform users to deliver the kinds of rich media experiences customers have come to expect no matter where they are, from desktops to mobile to smart TVs.”

“High-quality images and video are central to every website’s user experience and the average site is tasked with managing tens of thousands of these assets,” said Daniel Amitai, Cloudinary’s Vice President of Business Development. "We're pleased to work with eZ to ensure that their customers can create optimal, user-first sites and mobile experiences."

“We share eZ’s developer-first approach and understand the challenges developers face when managing their business-critical media assets across all devices and customer touch-points,” said Kobi Schwarts, Director of Business Development at Cloudinary. “We look forward to helping eZ and its community more easily manage media content and deliver an optimal digital experience.”

Webinar: Optimizing for Page Load Speed

Later this month, on Tuesday, March 20 at 1:00 p.m. ET/10:00 a.m. PT, Cloudinary will join eZ for a webinar titled, “Optimizing for Page Load Speed: Challenges and Strategies to Improve SEO, User Engagement and Conversion Rates.”

Register here and join the discussion on specific challenges marketers and developers face when looking to optimize page load times on websites and mobile devices. Advice on addressing these challenges based on a variety of different use cases will be offered. The webinar will be recorded and a replay link will be available to all registered attendees.

03/06/2018 02:03 pm   eZ Systems News   Mirror   Link   @10

As the winner of the competition, Novactive will receive $2,500 and a contract for $5,000 to build an additional connector with eZ in the Build with eZ phase. The Slack connector provides a range of cool features that seamlessly integrate eZ Platform with Slack. A few notable features are:

  • Slack Connect: Allows users to login in to eZ Platform via Slack. It can also recognize a Slack user in eZ (mapping with roles and permissions).
  • Incoming Webhooks: Allows eZ users to push posts such as notifications on to different Slack channel(s).
  • Interactive Components: Users can create an interactive experience by producing messages that contain an action. For example, a call to action button or menu in which the user can select from a list of options. 
  • Slash Commands: Allows users to trigger actions from Slack on eZ Platform. For example, posting a gif, image, or a starting a conference call. 
  • Event Subscriptions: Users can install a bot that will be able to listen to a specific slack channel. The bot will be able to trigger certain actions according to the information that is being discussed. For example, the bot suggests an article to read about a certain topic that the people are discussing.

Click here to view a demo of the connector and to learn about its capabilities. In addition to the Slack for eZ connector, we had two other connectors great connectors that are great addition to eZ Platform.

Contextual Code created a Facebook Post Importer. The connector is based on Symfony and automates the process of importing Facebook posts to eZ Platform. It leverages the Facebook PHP SDK and allows you to read posts from your page. It works by giving the developer the capability to define the mapping of each post with the content type field definitions to use as a target for import .

To install the plugin, read this blog post.

The last connector in the running this month was xrow’s Active Directory. The Connector lets organizations using eZ Platform to simply connect with their enterprise directory for user authentication and management.

As a reminder, the eZ Connector Competition was launched last month when we announced the eZ Connector expansion program at the eZ’s Barcelona partner meeting. The eZ Connector initiative consists of two programs: eZ Connector Competition and Build with eZ.

These programs are an opportunity for partners, developers, and third-party software vendors to build connectors that extend eZ Platform’s capabilities. Our first eZ Connector competition kicked off on February 1. Participants had one month to build a connector of their choosing and were required to deliver the final product at the end of the month.

The next competition will kick off on April 1. Registration for next month’s competition is already open.

Copyrights and intellectual property requirements: The connectors must be open source and follow the GPL license (version 2). For the eZ Connector Competition phase, participants are welcome to host the codebase of the connector anywhere, be it on their personal Github repository or their company Gitlab account. We however ask that they grant eZ Systems with the right to use the connector following the eZ Contribution License Agreement (CLA) , During the Build with eZ phase, the participant must agree on the same CLA, and, as it will be a collaboration with eZ Systems, we ask the codebase of the connector be hosted on eZ Systems GitHub organization (https://github.com/ezsystems/). eZ Systems will create a dedicated repository for it when launching the phase. To learn more visit our Build a Connector for eZ page.

03/06/2018 01:11 pm   eZ Systems News   Mirror   Link   @12

As the winner of the competition, Novactive will receive $2,500 and a contract for $5,000 to build an additional connector with eZ in the Build with eZ phase. The Slack connector provides a range of cool features that seamlessly integrate eZ Platform with Slack. A few notable features are:

  • Slack Connect: Allows users to login in to eZ Platform via Slack. It can also recognize a Slack user in eZ (mapping with roles and permissions).
  • Incoming Webhooks: Allows eZ users to push posts such as notifications on to different Slack channel(s).
  • Interactive Components: Users can create an interactive experience by producing messages that contain an action. For example, a call to action button or menu in which the user can select from a list of options. 
  • Slash Commands: Allows users to trigger actions from Slack on eZ Platform. For example, posting a gif, image, or a starting a conference call. 
  • Event Subscriptions: Users can install a bot that will be able to listen to a specific slack channel. The bot will be able to trigger certain actions according to the information that is being discussed. For example, the bot suggests an article to read about a certain topic that the people are discussing.

Click here to view a demo of the connector and to learn about its capabilities. In addition to the Slack for eZ connector, we had two other connectors great connectors that are great addition to eZ Platform.

Contextual Code created a Facebook Post Importer. The connector is based on Symfony and automates the process of importing Facebook posts to eZ Platform. It leverages the Facebook PHP SDK and allows you to read posts from your page. It works by giving the developer the capability to define the mapping of each post with the content type field definitions to use as a target for import .

To install the plugin, read this blog post.

The last connector in the running this month was xrow’s Active Directory. The Connector lets organizations using eZ Platform to simply connect with their enterprise directory for user authentication and management.

As a reminder, the eZ Connector Competition was launched last month when we announced the eZ Connector expansion program at the eZ’s Barcelona partner meeting. The eZ Connector initiative consists of two programs: eZ Connector Competition and Build with eZ.

These programs are an opportunity for partners, developers, and third-party software vendors to build connectors that extend eZ Platform’s capabilities. Our first eZ Connector competition kicked off on February 1. Participants had one month to build a connector of their choosing and were required to deliver the final product at the end of the month.

The next competition will kick off on April 1. Registration for next month’s competition is already open.

Copyrights and intellectual property requirements: The connectors must be open source and follow the GPL license (version 2). For the eZ Connector Competition phase, participants are welcome to host the codebase of the connector anywhere, be it on their personal Github repository or their company Gitlab account. We however ask that they grant eZ Systems with the right to use the connector following the eZ Contribution License Agreement (CLA) , During the Build with eZ phase, the participant must agree on the same CLA, and, as it will be a collaboration with eZ Systems, we ask the codebase of the connector be hosted on eZ Systems GitHub organization (https://github.com/ezsystems/). eZ Systems will create a dedicated repository for it when launching the phase. To learn more visit our Build a Connector for eZ page.

03/06/2018 01:11 pm   ez.no/About-eZ/Blog   Mirror   Link   @10
@ezpublishlegacy
ezpublishlegacy pushed to master in ezpublishlegacy/xrowmetadata
Mar 6, 2018
03/06/2018 12:54 pm   eZPublishLegacy @ GitHub   Mirror   Link   @12
@ezpublishlegacy
ezpublishlegacy pushed to master in ezpublishlegacy/ezplatform
  • @andrerom 11d438a
    [Composer] Bump ezplatform-http-cache to v0.5
Mar 6, 2018
03/06/2018 12:17 pm   eZPublishLegacy @ GitHub   Mirror   Link   @8
@ezecosystem
ezecosystem pushed to master in ezecosystem/ezpublish-kernel
Mar 6, 2018
03/06/2018 12:01 pm   eZecosystem @ GitHub   Mirror   Link   @10
@ezecosystem
ezecosystem pushed to master in ezecosystem/ezplatform
  • @andrerom 11d438a
    [Composer] Bump ezplatform-http-cache to v0.5
Mar 6, 2018
03/06/2018 12:00 pm   eZecosystem @ GitHub   Mirror   Link   @8

Contributed by
Jérémy Derussé
in #26232.

The Lock component was introduced in Symfony 3.4 to provide a mechanism to create local (filesystem, semaphore) and remote (Redis) locks that provide exclusive access to a shared resource. Although it's one of the newest components, it's already used in projects like Contao CMS and Google Cloud SDK.

One of its key features are the expiring locks, which are released automatically after some amount of time has passed (called TTL for Time To Live). In case of long-running tasks, it's hard to pick the best TTL, so it's common to start with a not too long TTL and then use the refresh() method to reset the TTL to its original value:

1
2
3
4
5
6
7
8
9
$lock->acquire();
try {
    while (!$finished) {
        // perform a small part of the job...
        $lock->refresh();
    }
} finally {
    $lock->release();
}

The problem of refresh() is that when you are working on different kinds of tasks, the refreshed TTL may not be enough for complex tasks. That's why in Symfony 4.1 we improved the refresh() method to allow passing a TTL as its argument. The new TTL is only used for that refresh() call and not the following ones:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
// the original TTL is 30 seconds
$lock = $factory->createLock('the-lock-name', 30);
// ...
$lock->acquire();

// refresh the lock for 30 seconds
$lock->refresh();
// do some work...

// refresh the lock for 10 minutes (600 seconds) before a heavy task
$lock->refresh(600);
// do some heavy work...

// the new refresh is for the 30 seconds of the original TTL
$lock->refresh();
// do some work...

Be trained by Symfony experts - 2018-03-12 Cologne - 2018-03-19 Clichy - 2018-03-19 Clichy
03/06/2018 05:50 am   Symfony Blog   Mirror   Link   @12

Analemmas

Last week I listened to an episode of The Sceptics' Guide to the Universe where the word of the week was "analemma". An analemma is a diagram showing the position of the Sun in the sky over the course of a year, as viewed at a fixed time of day from the same location on Earth. I once tried to make such a diagram when I was still living in Norway from a series of photos, but the weather wasn't consistent enough to make that work.

But as I am currently starting to update the Guide to Date and Time Programming for a second edition, I was wondering whether I could create an analemma from existing PHP functions. Unfortunately, PHP only provides functionality to calculate when the Sun is at its highest point, through date_sun_info():

getTimestamp(), // Unix timestamp
        51.53,                                     // latitude
        -0.19                                      // longitude
);

$zenith = new DateTimeImmutable( "@{$sunInfo['transit']}" );
echo $zenith->format( DateTimeImmutable::ISO8601 ), "\n";
?>

Which on February 26th, was at 2018-02-26T12:13:38+0000 in London.

Then I remembered that a few years ago I wrote Where is the Sun?. There I features a new hobby library "astro" that I was working on. This library implements a few astronomical calculations. I wrote a little PHP extension around it too: php-solarsystem. Neither library or extension have really been released.

The php-solarsystem extension implements just one function: earth_sunpos(), which fortunately does exactly what I needed for drawing an analemma: it gives you the position of the Sun in the sky for a specific location on Earth at a specific time.

With this function, all I had to do is calculate the position of the Sun in the sky at the same time-of-day for a whole year. With the DatePeriod class in PHP, I can easily create an iterator that does just that:

modify( "+1 year 1 day" );
$dateInterval = new DateInterval( "P1D" );

foreach ( new DatePeriod( $dateStart, $dateInterval, $dateEnd ) as $date )
{
        …
}
?>

We don't really want Daylight Saving Time to be in the way, so we set the time zone to just UTC, which works fine for London for which we'll draw the analemma.

We start at the start of the year (2018-01-01 09:00) and iterate for a year and a day (+1 year 1 day) so we can create a closed loop. Each iteration increases the returned DateTimeImmutable by exactly one day (P1D).

After defining the latitude and longitude of London, all we need to do is to use the earth_sunpos() function to calculate the azimuth and altitude inside the loop. Azimuth is the direction of where the Sun is, with 180° being due South. And altitude is the height of the Sun above the horizon.

$lat = 51.53;
$lon = -0.09;

foreach ( new DatePeriod( $dateStart, $dateInterval, $dateEnd ) as $date )
{
        $ts = $date->format( 'U' );
        $position = earth_sunpos( $ts, $lat, $lon );
        echo $ts, "\n";
        echo $position['azimuth'], ",";
        echo $position['altitude'], "\n";
}

The script outputs the calculation as a "CSV", which we should redirect to a file:

php tests/analemma.php > /tmp/analemma.csv

To plot we use the following gnuplot script:

set style line 1 lt 1 lw 2 pt 0 ps 0 linecolor rgb "orange"
set style line 2 lt 1 lw 1 pt 0 ps 0 linecolor rgb "grey"

set datafile separator comma
set xrange [100:150]
set yrange [0:50]

set grid linestyle 2
set terminal png size 640,640 enhanced font "Helvetica,12"
set output '/tmp/analemma.png'

plot "/tmp/analemma.csv" using 2:3 title "London @ 9 am" with linespoints linestyle 1

With this script, we can then draw the analemma:

gnuplot /tmp/analemma.plot

The result:

Credits

Analemma (Plot) — Derick Rethans

03/06/2018 03:39 am   derickrethans.nl   Mirror   Link   @10

Symfony 4.0.6 has just been released. Here is a list of the most important changes:

  • bug #26393 [DI] Skip resource tracking if disabled (@chalasr)
  • bug #26403 fix the handling of timestamp in the MongoDBSessionHandler (@hjanuschka)
  • bug #26355 [DI] Fix missing "id" normalization when dumping the container (@nicolas-grekas)
  • bug #26368 [WebProfilerBundle] Fix Debug toolbar breaks app (@xkobal)
  • bug #26369 Use fill instead of style for svg colors (@rpkamp)
  • bug #26358 [FrameworkBundle] Silence "Failed to remove directory" on cache:clear (@nicolas-grekas)

Want to upgrade to this new release? Fortunately, because Symfony protects backwards-compatibility very closely, this should be quite easy. Read our upgrade documentation to learn more.

Want to be notified whenever a new Symfony release is published? Or when a version is not maintained anymore? Or only when a security issue is fixed? Consider subscribing to the Symfony Roadmap Notifications.


Be trained by Symfony experts - 2018-03-12 Cologne - 2018-03-19 Clichy - 2018-03-19 Clichy
03/05/2018 04:44 pm   Symfony Blog   Mirror   Link   @12

Symfony 3.4.6 has just been released. Here is a list of the most important changes:

  • bug #26393 [DI] Skip resource tracking if disabled (@chalasr)
  • bug #26355 [DI] Fix missing "id" normalization when dumping the container (@nicolas-grekas)
  • bug #26368 [WebProfilerBundle] Fix Debug toolbar breaks app (@xkobal)
  • bug #26369 Use fill instead of style for svg colors (@rpkamp)
  • bug #26358 [FrameworkBundle] Silence "Failed to remove directory" on cache:clear (@nicolas-grekas)

Want to upgrade to this new release? Fortunately, because Symfony protects backwards-compatibility very closely, this should be quite easy. Read our upgrade documentation to learn more.

Want to be notified whenever a new Symfony release is published? Or when a version is not maintained anymore? Or only when a security issue is fixed? Consider subscribing to the Symfony Roadmap Notifications.


Be trained by Symfony experts - 2018-03-12 Cologne - 2018-03-19 Clichy - 2018-03-19 Clichy
03/05/2018 04:26 pm   Symfony Blog   Mirror   Link   @14

Symfony 2.8.36 has just been released. Here is a list of the most important changes:

  • bug #26368 [WebProfilerBundle] Fix Debug toolbar breaks app (@xkobal)

Want to upgrade to this new release? Fortunately, because Symfony protects backwards-compatibility very closely, this should be quite easy. Read our upgrade documentation to learn more.

Want to be notified whenever a new Symfony release is published? Or when a version is not maintained anymore? Or only when a security issue is fixed? Consider subscribing to the Symfony Roadmap Notifications.


Be trained by Symfony experts - 2018-03-12 Cologne - 2018-03-19 Clichy - 2018-03-19 Clichy
03/05/2018 02:01 pm   Symfony Blog   Mirror   Link   @10

Symfony 2.7.43 has just been released. Here is a list of the most important changes:

  • bug #26368 [WebProfilerBundle] Fix Debug toolbar breaks app (@xkobal)

Want to upgrade to this new release? Fortunately, because Symfony protects backwards-compatibility very closely, this should be quite easy. Read our upgrade documentation to learn more.

Want to be notified whenever a new Symfony release is published? Or when a version is not maintained anymore? Or only when a security issue is fixed? Consider subscribing to the Symfony Roadmap Notifications.


Be trained by Symfony experts - 2018-03-12 Cologne - 2018-03-19 Clichy - 2018-03-19 Clichy
03/05/2018 01:05 pm   Symfony Blog   Mirror   Link   @10
@ezpublishlegacy
ezpublishlegacy pushed to master in ezpublishlegacy/ezpublish-kernel
Mar 5, 2018
03/05/2018 12:18 pm   eZPublishLegacy @ GitHub   Mirror   Link   @12