Assistance with Open Source adoption

Open Source News

How to disable XML Log Files in Liferay 7.x

Liferay - Tue, 07/31/2018 - 11:52

Liferay 7.0 started to produce a pair of log files per day:

ls -l /opt/liferay/home7/logs/ total 3104 -rw-r--r-- 1 michael admin 285201 May 26 13:24 liferay.2016-05-26.log -rw-r--r-- 1 michael admin 898027 May 26 13:24 liferay.2016-05-26.xml -rw-r--r-- 1 michael admin 400811 Aug 19 13:08 liferay.2016-08-19.log -rw-r--r-- 1 michael admin 0 Aug 19 12:26 liferay.2016-08-19.xml

To disable Liferay logging to XML files, create portal-log4j-ext.xml in the following path:

tomcat-8.0.32/webapps/ROOT/WEB-INF/classes/META-INF/portal-log4j-ext.xml <?xml version="1.0"?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j="">       <appender name="XML_FILE" class="org.apache.log4j.ConsoleAppender"/>       <root>         <priority value="INFO" />         <!--appender-ref ref="CONSOLE" /-->         <appender-ref ref="TEXT_FILE" />         <!--appender-ref ref="XML_FILE" /-->     </root> </log4j:configuration>

This file overrides two elements of META-INF/portal-log4j.xml in ROOT/WEB-INF/lib/portal-impl.jar, which stops Liferay from copying log entries to catalina.out and the daily XML log file.

You can also create the extension XML file as a copy of the original in the JAR as the following:

cd tomcat-8.0.32/webapps/ROOT/WEB-INF unzip -p lib/portal-impl.jar META-INF/portal-log4j.xml > classes/META-INF/portal-log4j-ext.xml


Michael Chen 2018-07-31T16:52:00Z
Categories: CMS, ECM

Joomla 3.8.11 Release

Joomla! - Tue, 07/31/2018 - 08:45

Joomla 3.8.11 is now available. This is a bug fix release for the 3.x series of Joomla including over 35 bug fixes and improvements.

Categories: CMS

Global shopping trends and tourism offer new sales opportunities to merchants

PrestaShop - Tue, 07/31/2018 - 03:06
The global market is opening up more and more for merchants in Europe, bringing with it enormous opportunities, provided that merchants are keeping up with current deve
Categories: E-commerce

Blade Project Version

Liferay - Mon, 07/30/2018 - 13:08

TL;DR - Add "-v 7.0" to your Blade command line to create modules for Liferay CE 7.0 and Liferay DXP 7.0.

Hey, just a quick blog post here for something that developers may need to know...

I updated my Blade command line tool recently (since I use Intellij, I rely on the command line tool quite a bit for new module project creation), but I hadn't started a new module after updating.

That changed last Friday... Had a hot customer request for a customization so I used Blade to create a new workspace and started creating my modules. Modules loaded into Intellij just fine, and I happily start cranking out the code.

When I was happy with development, I built my 3 modules (SB API and Service modules and one UI module) and dropped them into my Liferay 7.0 DXP deployment folder.

Normally, I see the happy messages that my modules have started. I mean, these modules were not rocket science and they had no weird transitive dependency issues, so they should have just started.

But none of them did, not even the API module and those never have an issue starting.

So I fire up the Gogo shell, issue my lb command, and there are my modules at the end of the list, all in the Installed state.

So I command Gogo to start my API module, but it won't start, it has unresolved references on portal-kernel 3.0 and other such references.

I realize right away that portal-kernel 3.0 is from Liferay 7.1, but I wasn't building anything for Liferay 7.1, I'm still building for 7.0.

All of my modules suffered from the same problem, all had references to 7.1 artifacts.

Not knowing any better, I went back into the build.gradle files for my 3 modules and updated all of the versions so they were back at the normal 7.0 versions, rebuilt and redeployed and all was good.

So I asked my friend Greg Amerson what the deal was, and he informed me that the new default project version for the Blade tool is now 7.1. To have Blade create a project for Liferay CE 7.0 or Liferay DXP 7.0, you have to add "-v 7.0" to the Blade command line arguments.

So, there you go.  Avoid my Blade update headaches and just remember to tack on the "-v 7.0" for all of your new 7.0 modules.

Update 08/2018

So I checked with the folks that know, unfortunately there is no way to "default" the new blade to 7.0.  There are plans on the roadmap, but I don't know what that means for when it is available.

In the mean time, if you are using and developing for Liferay CE 7.0 or Liferay DXP 7.0, don't upgrade your blade until you move to 7.1 or they get the default setting in place.

If you did upgrade your blade, you can either remember to add the -v 7.0 args to your invoke of blade, or the easier option might be to just revert to an older version of Blade.

All you need to do is:

  1. jpm remove blade
  2. jpm install -f

That should get you back to a pre-7.1 version where the default will be 7.0.

David H Nebinger 2018-07-30T18:08:00Z
Categories: CMS, ECM

Key to GDPR success: honour these 8 customer rights

VTiger - Mon, 07/30/2018 - 10:01
Ever since the European General Data Protection Regulation (GDPR) came into effect, businesses have been rigorously taking measures to ensure the privacy and protection of their customer’s personal data. To successfully become GDPR compliant, businesses have to enable their customers to exercise eight fundamental rights. These rights give customers a greater control over how businesses […]
Categories: CRM

Digital transformation: Three ways HR can use AI more effectively

SnapLogic - Fri, 07/27/2018 - 13:00

Orginially published on AI and analytics tools are only as good as the data they can access, so in order to make the best use of these, HR teams need to ensure that they have the right data integration strategy in place. Data is changing the world, but today’s enterprises remain inundated with an ever-rising[...] Read the full article here.

The post Digital transformation: Three ways HR can use AI more effectively appeared first on SnapLogic.

Categories: ETL

American Councils for International Education

Drupal - Fri, 07/27/2018 - 08:11
Completed Drupal site or project URL:

Since 1974, American Councils for International Education (ACIE) has been making international education accessible for all. And today, the organization has built a global community of 85 countries and 89,000 alumni through cultural and academic exchanges, research assessments, language immersion programs, and professional development. ACIE’s alumni include everyone from high school students to professionals, national leaders, ministers, members of parliament, ambassadors, and CEOs.

In an effort to improve national security, prosperity, and peace, ACIE’s goal for its members is to prepare them to succeed in our increasingly interconnected and rapidly changing world. But ACIE most recently created a whole new set of strategic goals, and brought in Threespot, a digital communications agency, for a website redesign to expand its global impact, strengthen its financial standing, and build a stronger understanding of who they are. Threespot partnered with Inclind, ACIE’s ongoing Drupal development partner to implement the new design and upgrade the website's functionality.

DC-based Threespot provides digital strategy, creative, and development services exclusively for organizations and ideas that align with their progressive values. Known for strong collaborative capabilities, Inclind brings to the table nearly 20 years of experience developing, designing, supporting and maintaining web content management systems. With ACIE's mission to prepare tomorrow's leaders for an ever-changing world and its need for a more modern and sophisticated Drupal site, a collaboration among the three organizations was a no-brainer.

“We’ve worked with Inclind in the past and they’re a trusted partner,” says Liz Ott, Director of Client Engagement with Threespot. “With collaborative projects like this, there’s a real value in leveraging partner agencies for their strengths. Our track record working strategically with progressive nonprofits dovetailed nicely with Inclind’s strengths as Drupal developers, giving ACIE the best of both worlds.”

Categories: CMS

An improved SnapLogic Partner Connect Program – helping to transform business models

SnapLogic - Thu, 07/26/2018 - 13:06

Microsoft, Adobe, IBM, GE, and Netflix – have all been through it. In the case of Netflix, they’ve been through it twice. And both IBM and GE have been through it before and are now trying to do it again. The “it” I’m talking about is the fundamental transformation of business models that built each[...] Read the full article here.

The post An improved SnapLogic Partner Connect Program – helping to transform business models appeared first on SnapLogic.

Categories: ETL

Designing animations for a multicultural product

Liferay - Thu, 07/26/2018 - 05:32

The world is big and diverse. Right now there are around 7.6 billion people in the world, 4 billion with an internet access. When you’re improving a Design System for a product used worldwide, like Lexicon for Liferay, you should take this simple statement into account. Cultural, religious and regional concerns need to be considered. It may sound obvious, but the true fact is that we sometimes forget about it.

I’m going to explain how we redesigned and tested empty states illustrations for Liferay products.


1. The past

Let’s put a bit of context around this story. As you may know, an empty state illustration is shown when there is not any other info to display and capture the user’s attention. A friendly face looking around, smiling, or winking was the animation family for empty states in Lexicon 1 by Marcos Castro. They were created to give feedback in a memorable way and provide a pleasurable experience for the user but the fact was that the smiling face animation caused some cultural issues.

In some cultures a wink could be understood in a sexual way. Of course, we fixed that ASAP. For our next version, Lexicon 2, we wanted to avoid possible misunderstandings and make sure that our set of animations are universal, appropriate, understandable and polite for every culture in different geographical localizations all over the world.


2. The theme

How did we select a common theme? Firstly, the subject was very carefully chosen. It should suggest the emptiness in a pleasurable and descriptive way. Think about it, but the way of representing emptiness is not so obvious. In fact, we started crafting ideas around the desert concept but at the end the selected topic was outer space. The reason behind this decision was that the space is usually related with curiosity, technology and challenges in a good way unlike the desert which is normally related to death.


3. Visual identity

With the topic selected, it was the turn for visual design, where Emiliano Cicero turned concepts into illustrations.

Regarding the visual guidelines, it was necessary to make a clear, understandable design, with clean shapes that show the idea with simple animations to catch the user attention but without being too aggressive. We created 3 illustrations as part of the collection: a satellite surrounded by asteroids, the moon with comets and a spaceship launch.

The idea was to tell a story that accompanies users in their journey using the product, giving consistency through different animations depending on the interface status but totally related to a common topic, outer space.


4. The test

Next step was the testing stage to validate the new concept and design. For the test, we chose different profiles of Liferay workers all around the world, representing different regions, cultures, and religions. Then they were requested to fill a questionnaire to make sure that the illustrations couldn’t be interpreted as offensive, obscene, inappropriate, menacing, insulting or impolite for anyone in their culture or region. We asked participants to answer the questions with specific comments, ideas or feelings on why they thought the animation could be appropriate and understandable or not. Moreover, we included the description of future possible ideas to use in new illustrations related with outer space, as an astronaut arriving to the moon, an astronaut putting a flag, a comet, a spaceship flying or planets orbiting around a star. All these scenes together create the story.

As a summary of the test results, 100% of the answers agreed that the images weren’t offensive, obscene, inappropriate, impolite, menacing or insulting for them, their regions or their cultures. Nevertheless, 40% pointed that the pictures didn’t necessarily mean an empty state because of the presence of many elements. And comments on other possible scenes related to the space gave us lot of information on what to do and what to avoid.


5. Design iteration

Regarding all the information provided by participants, we iterated the design again, refining and polishing details to get to the new empty state animations set. We took into account the importance of having a universal, appropriate, understandable and polite design for each of the possible users for our product. As an example, we reduced the number of elements based on the feedback and we changed the powerful bright colors to a grayscale to not be so intense but still eye-catching.


6. The result

As an outcome of all this study and design process we created three animated illustrations for our empty states.

A telescope looking into the sky for the empty search/filter action when there are not results.

A satellite when there are no elements yet in a dataset.

A spaceship launch when the user has emptied the dataset for a good end, for example, when the notifications list has been cleared out.

Our animations set for empty states conformed a collection that makes users feel comfortable and part of the story. This is just the beginning and we expect to expand the family as our needs grow. We expect the experience using Liferay products will be more pleasurable, memorable, understandable and universal.

What do you think?

Susana Vázquez 2018-07-26T10:32:00Z
Categories: CMS, ECM

CiviMobile - a Native Mobile Application for CiviCRM

CiviCRM - Wed, 07/25/2018 - 08:44

Categories: CRM

Reconciling money with CiviCRM

CiviCRM - Tue, 07/24/2018 - 16:32

If you are a medium or large organization and use a payment processor with CiviCRM, and especially if your reporting needs are complex (e.g. political parties that need to report income rather carefully), then you will have run into the challenge of reconciling payment processor income in CiviCRM against your bookkeeping system and/or your bank account. 

Categories: CRM

Why enterprises still struggle with data

SnapLogic - Tue, 07/24/2018 - 15:18

Originally published on If you spend any time in Silicon Valley these days, it’s easy to believe every business in America is becoming a data analytics powerhouse. We hear so many stories about companies reinventing themselves with data—opening new revenue streams, better targeting customers, slashing costs. It’s enough to make a statistician weep with[...] Read the full article here.

The post Why enterprises still struggle with data appeared first on SnapLogic.

Categories: ETL

How to contribute to the Prestashop Project ?

PrestaShop - Mon, 07/23/2018 - 03:21
As the title of this article indicates, we have prepared a guide that contains all the information you need to contribute to the PrestaShop Project.
Categories: E-commerce

Unleash the power of Gogo Shell

Liferay - Sun, 07/22/2018 - 17:30

// The french version of this article can be found here: Libérez la puissance de Gogo Shell.

Gogo Shell opens huge opportunities but some obstacles limit the expression of its potential. Let's see in this post how to remove these barriers.

Few reminders: usual use of Gogo Shell

Apache Felix Gogo Shell is an interactive shell that allows you to interact with an OSGi container.

Gogo Shell can be accessed via telnet:

$ telnet localhost 11311 Trying Connected to localhost. Escape character is '^]'. ____________________________ Welcome to Apache Felix Gogo g!

Warning ! Since version 7.1 of Liferay, access to Gogo Shell via telnet is no longer enabled by default. To enable it, you must add the following line in the file:

Once the telnet connection is open, the Gogo Shell commands can be executed one after another without any restriction:

g! lb | grep search 438|Active | 10|Liferay Portal Search Elasticsearch (2.1.8) true g!

Beyond the commands dedicated to the management of the OSGi container, Gogo Shell offers a fairly complete language, including standard control structures such as loop or conditional:

g! each [1 2 3] { echo -- $it -- } -- 1 -- -- 2 -- -- 3 -- null null null

Additionally, Gogo Shell allows you to call any method of any service deployed within the OSGi container:

g! ((($.context getService ($.context getServiceReference com.liferay.portal.kernel.service.UserLocalService)) getUserByScreenName 20116 'test') getFullName) Test Test Non-interactive mode

When you want to use Gogo Shell for task automation, typically within a bash script, the telnet connection poses difficulties.

Good news, as indicated in the official Liferay documentation, the Blade development tool can be used to overcome this obstacle:

$ blade sh 'lb | grep search' lb | grep search 438|Active | 10|Liferay Portal Search Elasticsearch (2.1.8) true

Unfortunately, using Blade on production environment is often impossible. Indeed, by the time these lines are written, the installation procedure of Blade is not adapted to a production context. Moreover, ops teams generally do not appreciate the installation of a tool dedicated to development on a production server.

Hopefully, there is another way to automate a telnet session. An Expect script, for example, does the job very well:

#!/usr/bin/expect -f log_user 0 spawn telnet localhost 11311 expect "g!" send -- "lb | grep search\n" expect "g!" send_user $expect_out(buffer)

The Expect interpreter is a battle-tested command (created almost 30 years ago) that can be installed through standard tools of Linux distributions.

For a distro supporting APT:

sudo apt-get install expect

For a distro supporting YUM:

sudo yum install expect Beyond OSGi: Groovy to the rescue!

In terms of executing portal components, Gogo Shell is confined to services exposed at the OSGi container level. Off, the portal Liferay offers many interesting Java classes that are not exposed in OSGi.

But luckily nothing is ever completely impossible with Liferay!

Indeed, as explained by Piotr Swiniarski in a post published on the blog of Mimacom, it is possible to invoke the Liferay Groovy script execution service from Gogo Shell.

Thus, it is possible to invoke any class of the portal. For example, using this principle, you can change the log level of a particular logger through an Expect script like this:

#!/usr/bin/expect -f log_user 0 spawn telnet localhost 11311 expect "g!" set groovy_script " \ import static com.liferay.util.log4j.Log4JUtil.setLevel; \ setLevel('','DEBUG',true); \ "; send -- " \ ($.context getService (( \ $.context getServiceReferences \ com.liferay.portal.kernel.scripting.ScriptingExecutor \ \"(scripting.language=groovy)\" \ ) 0)) eval null null null \"$groovy_script\" \ \n" expect "g!" send_user $expect_out(buffer)

Thanks to this brilliant idea of ​​Piotr, the possibilities become endless.

On the other hand it allows to use a language familiar to Java developers, much more convenient than Gogo Shell’s language.

Go to the next Level

At this point the possibilities are immense, but before your script is ready to go into production with confidence, there are still a lot of things to be done:

  • handle all error cases (telnet connection failure, exception in Groovy code, etc.)

  • manage the return status of the script

  • manage any buffer overflows from Expect interpreter

  • etc.

But don’t be afraid, you will not have to deal with it yourself, because the repository slemarchand/liferay-gogo-scripts on GitHub contains more than fifteen complete scripts that you can use as is or use as source of inspiration to write your own scripts.

You will find in this git repository, among others, the following scripts:

  • gogo-groovy-script directly execute a groovy script from a file,

  • gogo-get-bundle-status print the status of a particular OSGi bundle,

  • gogo-bundle-start and gogo-bundle-stop respectively start and stop an OSGi bundle,

  • gogo-set-log-level set the log level of a particular logger,

  • gogo-reindex-all-search-indexes re-builds all search indexes,

  • et gogo-clear-all-caches clear all server caches.

Something to share ?

Have you ever encountered these obstacles with Gogo Shell? How did you overcome them? Have you encountered any other challenges?

Feel free to share your experiences in the comments of this post to make some contribution to the Liferay community!


Sébastien Le Marchand
Freelance Technical Consultant in Paris


Sébastien Le Marchand 2018-07-22T22:30:00Z
Categories: CMS, ECM

Libérez la puissance de Gogo Shell

Liferay - Sun, 07/22/2018 - 16:04

// The english version of this article can be found here: Unleash the power of Gogo Shell.

Gogo Shell ouvre d’énorme possibilités mais certains obstacles limite la plein expression de son potentiel. Voyons au fil de ce billet comment lever ces barrières.

Quelques rappels : utilisation usuelle de Gogo Shell

Apache Felix Gogo Shell est un interpréteur de commandes en mode interactif qui permet d’interagir avec un conteneur OSGi.

Gogo Shell est accessible simplement via telnet :

$ telnet localhost 11311 Trying Connected to localhost. Escape character is '^]'. ____________________________ Welcome to Apache Felix Gogo g!

Attention ! À partir de la version 7.1 de Liferay, l’accès à Gogo Shell via telnet n’est plus activé par défaut. Pour l’activer, il faut ajouter la ligne suivante dans le fichier :

Une fois que la connexion telnet est ouverte, les commandes Gogo Shell peuvent être enchaînées à loisir :

g! lb | grep search 438|Active | 10|Liferay Portal Search Elasticsearch (2.1.8) true g!

Au delà des commandes propres à la gestion du conteneur OSGi, Gogo Shell propose un langage assez complet, doté notamment des structures de contrôle standards comme la boucle ou la conditionnelle :

g! each [1 2 3] { echo -- $it -- } -- 1 -- -- 2 -- -- 3 -- null null null

De plus Gogo Shell permet d’appeler n’importe quelle méthode de n’importe quel service déployé au sein du conteneur OSGi :

g! ((($.context getService ($.context getServiceReference com.liferay.portal.kernel.service.UserLocalService)) getUserByScreenName 20116 'test') getFullName) Test Test S’affranchir du mode interactif

Dès lors que l’on souhaite utiliser Gogo Shell à des fins d’automatisation des tâches, par exemple au sein d’un script bash, la connexion telnet pose des difficultés.

Bonne nouvelle, comme indiqué dans la documentation officielle Liferay, l’outil de développement Blade peut être utilisé pour surmonter cet obstacle :

$ blade sh 'lb | grep search' lb | grep search 438|Active | 10|Liferay Portal Search Elasticsearch (2.1.8) true

Seulement voilà, sur un environnement de production, l’utilisation de Blade est souvent impossible. En effet, au moment où ces lignes sont écrites, la procédure d’installation de Blade n’est pas adaptée à un contexte de production. De plus les équipes d’exploitation apprécient généralement peu l’installation d’un outil dédié au développement sur un serveur de production.

Heureusement, il existe d’autre moyen d’automatiser un session telnet. Un script Expect par exemple, remplit très bien ce rôle :

#!/usr/bin/expect -f log_user 0 spawn telnet localhost 11311 expect "g!" send -- "lb | grep search\n" expect "g!" send_user $expect_out(buffer)

Il suffit ensuite d'exécuter le script :

$ ./ lb | grep search 438|Active | 10|Liferay Portal Search Elasticsearch (2.1.8) true

L’interpréteur Expect est une commande éprouvée (elle existe depuis presque 30 ans) qui peut être installée via les outils d’installation standard des distributions Linux.

Pour une distribution supportant APT :

sudo apt-get install expect

Pour une distribution supportant YUM :

sudo yum install expect Au delà d’OSGi : Groovy à la rescousse !

En terme d’exécution de composants du portail, Gogo Shell se cantonne aux services exposés au niveau du conteneur OSGi. Hors, le portail Liferay propose de nombreuses classes Java très intéressantes qui ne sont pas exposées en OSGi.

Mais heureusement rien n’est jamais complètement impossible avec Liferay !

En effet, comme expliqué par Piotr Swiniarski dans un billet publié sur le blog de Mimacom, il est possible d’invoquer le service d'exécution de script Groovy de Liferay depuis Gogo Shell.

Ainsi, il est possible d’invoquer n’importe quelle classe du portail. Par exemple, en utilisant ce principe, on peut changer le niveau de log d’un logger particulier via un script Expect comme celui-ci :

#!/usr/bin/expect -f log_user 0 spawn telnet localhost 11311 expect "g!" set groovy_script " \ import static com.liferay.util.log4j.Log4JUtil.setLevel; \ setLevel('','DEBUG',true); \ "; send -- " \ ($.context getService (( \ $.context getServiceReferences \ com.liferay.portal.kernel.scripting.ScriptingExecutor \ \"(scripting.language=groovy)\" \ ) 0)) eval null null null \"$groovy_script\" \ \n" expect "g!" send_user $expect_out(buffer)

Grâce à cette brillante idée de Piotr, les possibilités deviennent infinies.

D’autre part cela permet d’utiliser un langage familier des développeurs Java, bien plus pratique à l’usage que le langage de Gogo Shell.

Passer au niveau supérieur

À ce stade les possibilités sont immenses, mais avant que votre script soit prêt à partir en production en toute sérénité, il y a encore pas mal de points à traiter :

  • gérer tous les cas d’erreur (échec de connexion telnet, exception dans le code Groovy, etc),

  • gérer le statut de retour du script,

  • gérer les éventuels dépassements de buffer de l'interpréteur Expect,

  • etc.

Mais n’ayez pas peur, vous n’aurez pas à gérer cela vous-même, car le dépôt slemarchand/liferay-gogo-scripts sur GitHub contient plus d’une quinzaine de scripts complets que vous pourrez utiliser directement, ou sur lesquels vous pourrez vous baser pour réaliser vos propres scripts.

Vous trouverez dans ce dépôt de sources, entre autres, les scripts suivants :

  • gogo-groovy-script qui vous permettra d'exécuter directement un script groovy à partir d’un fichier,

  • gogo-get-bundle-status qui vous retourne le statut d’un bundle OSGi particulier,

  • gogo-bundle-start et gogo-bundle-stop qui respectivement démarre et arrête un bundle OSGi,

  • gogo-set-log-level qui modifie le niveau de log d’un logger particulier,

  • gogo-reindex-all-search-indexes qui re-construit tous les index de recherche,

  • et gogo-clear-all-caches qui vide tous les caches du serveur.

Quelque chose à partager ?

Avez-vous déjà eu rencontré ces problématiques autour de Gogo Shell ? Comment de votre côté les avez-vous résolus ? Avez-vous rencontré d’autres problématiques connexes ?

N’hésitez pas à partagez vos expériences dans les commentaires de ce billet pour apporter votre pierre à l’édifice de la communauté Liferay !


Sébastien Le Marchand
Consultant Technique indépendant à Paris


Sébastien Le Marchand 2018-07-22T21:04:00Z
Categories: CMS, ECM

GSoC Project Updates-Making CiviCRM Cloud Native and Docker Friendly

CiviCRM - Sat, 07/21/2018 - 10:19

Few months back I joined the civiCRM developers community as a Google Summer of Code intern with the objective of improving in my coding skills by making a significant contribution to open source software. It's gone quite well so far. With the help of my mentor and other CiviCRM community members I have successfully completed phase 1 and 2 of the program.

This blog post is a summary of what I have been able to achieve from the time coding began till July 09, 2018.

Categories: CRM

Want to customize the contact summary screen?

CiviCRM - Fri, 07/20/2018 - 13:34

Configurable contact summary layouts are coming soon. Help make it happen!

Categories: CRM

Liferay University now available

Liferay - Fri, 07/20/2018 - 05:00

Good news. Now that Liferay Portal CE 7.1 and Liferay DXP 7.1 are available, your training is also just a fingertip away. No longer do you have to travel far, or juggle your calendar, because these trainings are ready and available whenever you are, at your own pace.

Liferay University is the place where you can find all of Liferay's trainings in a convenient place. And if you can't find what you're looking for today, it's worth coming back in a bit, because more courses and lessons are already in the pipeline - editing those videos and setting it all up takes quite some time.

About the content: The lessons that you find on University are available for free, just log in with your, the one that you use here as well. The "full" courses have their price listed, but if you want to get a special deal for them - we've got you covered as well: Just get a  Liferay Passport and you'll have a flat rate access to all of the trainings offered.

The free lessons, as of today, consist of

  • Mobile Development
  • Building Engaging Websites
  • Digital Asset Management
  • OSGi Basics (featuring yours truly ;) )

...and there are more to come...

Paid courses that are available as of today work on a pre-release of the current 7.1 release, but will be updated soon to the GA release of Liferay DXP 7.1

  • Liferay Fundamentals
  • Content Management
  • Backend Developer
  • Frontend Developer

...and there are also more to come...

Of course, if you prefer to have a live trainer in the room: The regular trainings are still available, and are updated to  contain all of the courses that you find on Liferay University and Passport. And, this way (with a trainer, on- or offline) you can book courses for all of the previous versions of Liferay as well.

And, of course, the fine documentation is still available and updated to contain information about the new version already.

(Photo: CC by 2.0 Hamza Butt)

Olaf Kock 2018-07-20T10:00:00Z
Categories: CMS, ECM

Meet Cyril and Edouard, Ambassadors of the month | July 2018

PrestaShop - Thu, 07/19/2018 - 17:00
About you Three words to best describe you: Edouard: “dithyrambique”. @dithyrambique it’s my name on Instagram @dithyrambique and it’s a real state of mind.
Categories: E-commerce

Harnessing the Mass-Mailing Power of CiviMail and the Mosaico Extension

CiviCRM - Thu, 07/19/2018 - 12:28

So you’ve got that perfect donation page, you’ve grouped your nonprofit’s audience into three neat segments, and you’re announcing your latest fundraising campaign via your social media channels.

But do you have the perfect automated email marketing system to keep in touch with your new donors and reach out to prospective contributors? Here’s what you need to know about CiviCRM to help you ace the email marketing campaign you’re dreaming of.

Categories: CRM
Syndicate content