eZPlatform display content and override field template

1 Star2 Stars3 Stars4 Stars5 Stars (2 votes, average: 3.00 out of 5)
Loading...

This is the final result how to add content relations filed to an existing content type and override or customize the image template (tested with ezplatform 1.3 and ezplatform 1.4):

final_content_relations

With eZPlatform we can easily create content types and also create the corresponding Twig templates to render content.

In this video you can learn how to create content types in the eZPlatform Backend UI:

Once the new content type is created you should then create the Twig template to get the content of the different fields.

You can follow the instructions in this video tutorial and see how to create a content type template:

You find the basic code example here: https://gist.github.com/ramzi-arfaoui/abbf0cdcfb3bf29c9a293e76b352d455  (doesn’t contain the content relations example)

You can browse or download the whole bundle from here: https://bitbucket.org/Ramzi-Arfaoui/ezplatform-project-bundle/src  (the content relations definition and template are available here)

Content type definition is also available here: http://www.screencast.com/t/WnwchfxA

As example how to override a template field , we wil examinate images added as content relations (Multiple) [ezobjectrelationlist]. In the programming language we call this type of relations “related objects”.

The ezobjectrelationlist field type content relations is defined as following:

Name:(required) to display it later when editing a content item.
Identifier:(required) unique filed name (maschine name) . Generally lowercase without special characters or spaces.
Default location:(optional) from where we should add related objects. Outside this location it is not possible to add or bind any content. In our case images.
Allowed content types: (optional) if this is defined, the editor will be able only to add a specific content type(s). In this example we will only allow the editor to add image content type.

Here is an example from our vehicle content type. The editor is only allowed to add images from the Vehicule Images folder defined in the media library.

ezplatform_filed_type_definition

Expamle adding images within the content item:

ezplatform_adding_content_relations

Let see now the output result in the twig template using two diffrent functions:

Here is the output results:

ezplatform_render_content_relations

In both cases , we get either the image names or the contentIds of the related objects. But we need the whole content of the image like the image itself and the alternative text.

To have this informations we have to get the image content from the available contentId. This is possible when using the ez_content controller

More information about the ez_content controller can you find it also here: https://doc.ez.no/display/DEVELOPER/Content+Rendering

Using this controller we can now extend the vehicle twig template:

More template functions are available here: https://gist.github.com/ramzi-arfaoui/797e56d25f203420ee1634db09c58a55

The viewType option allow us to override the default template for common view types.

So now we open the ezplatform.yml and we add following code:

You have to customize the template line with your bundle name and you can use also a diffrent name for you twig template or your view Type.

Using the code above we can get the image content object using the default ez_content controller . At this step you can economise your time to write your own controller.

let define now the twig template. this must be located within the line folder:

line_template_ezplatform

class: we have added the ‘img-responsive’ class from the vehicle twig template. Per default is empty (|default(”)).
src: contains the image path. This is also the general use to get an image path.
alt: is defined in the image content type.

This is now the final html source code :

eZPlatform 1-Installation

1 Star2 Stars3 Stars4 Stars5 Stars (3 votes, average: 3.67 out of 5)
Loading...


1.Inslallation Server & requirement Information
System Information:
Ubuntu 14.04 LTS
Php 5.6
Apache 2.4
MYSQL 5.5

System Requirement:
Take it from here : https://doc.ez.no/display/TECHDOC/Requirements

2.Inslallation of eZPlatform clean
2.1. Download from share.ez.no the latest ezpublish version
2.2. create Database & User
2.3.Creating the “app/config/parameters.yml” file (database & e-mail access)

2.4.Run installation command:
This will install an eZPlatform Clean (No content) Installation.

PS: eZ Studio can also a good descision at this Step, so that you can quickly and easily create content with drag and drop. the clean Installation require some KnowHow for creating content. See below if you want first to trust your self with a demo installation.

OR (Optional) Install eZ Plattform Demo (Demo Content):
PS: Maybe it is better to install a second eZ Plattform instance on your server to see how some content is used and do the same in your clean Installation.
At this step we get the demo throw the composer

2.5. Setup folder rights

More infos: https://doc.ez.no/display/TECHDOC/Installation

3.DEV VirtualHost
Change paths and ServerName

/etc/apache2/sites-enabled/ez6_rewrite/ez6_rewrite_dev

4.Prod VirtualHost
Change paths and ServerName

/etc/apache2/sites-enabled/ez6_rewrite/ez6_rewrite_prod

4.Access your installtion
PS: Don’t forget to use your ServerName
frontend dev : http://dev.ez201604.de/
backend dev : http://dev.ez201604.de/ez

frontend prod : http://prod.ez201604.de/
backend prod : http://prod.ez201604.de/ez

User:admin
password:publish

Good luck!

 

Drupal8:Rendering multiple TWIG template

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)
Loading...

I meet this situation as i wanted to add some hard coded text bevor the pagination table. It is just a demonstration how to render multiple TWIG templates within one return and can be useful to add third party code like external services (RSS, Webservices …)

The “custom_html_content_page” template theme should be defined in mymodule.module file, something like:

And finally the TWIG template in the templates folder:

OUTPUT:

Headline

Lorem ipsum …

Drupal8:Basic Jquery Ajax custom module controller

1 Star2 Stars3 Stars4 Stars5 Stars (3 votes, average: 5.00 out of 5)
Loading...

In the previous tutorial (drupal8-create-module-with-multiple-route-and-custom-route-contoller-twig-template/) we have create a custom modul using different Route and some TWIG templates. Now  we want to call one of the route using Ajax .

First of all, we should have create a custom theme and add our custom JavaScript file in MY-THME.info.yml :

Now we have to define the “global-scripting” in the MY-THME.libraries.yml

In js/ajax.js we add the usual Jquery ajax code

Let explain what we have define in the js/ajax.js:
1. The HTML Link to click:

2. Then we have to prevent to reload the page with: event.preventDefault();
3. We get the content of the href attribute, because this will be the Ajax Route call:

4. Now we start the Ajax call , we will add a post variable, that indicate our controller that we are comming from an ajax request.
5. We set the URL in the browser with the Route using:

Why we do this ? Simple , if Google will index our link or user disable Javascript in the browser , we have then to be sure that the link will works without the ajax call . In the Controller we will have a condition using the post variable “ajaxCall”.
6. The Controller response will then displayed in the content div.

 

So now we have to extend the editContact($id) Method within the custom module Controller “ContactController”:

You will be able now to call your own Business Logic, extend and transfer your variables to the TWIG tempalte.
IMPORTANT: Don’t forget to define your variables first in mymodule.module . Clearing the cache if no changes can be very helpful.

drupal8: create module with multiple route and custom Route Contoller Twig Template

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)
Loading...

In the most example of drupal8 you will experiment the Hello World module. This is just a demostration how you can create your custom module within the new drupal8 concept.

But your application can be more complicated as just a Hello World module, you want may be create one module, multiple route and a custom twig template for each route

User case is if you want to create your own module but managing a multiple Route within one module.

When you add a new yaml file you should uninstall the modul and insatll it again. I haven’t found other solution for this right now ! This will help you if you can’t see any changes when you add some configuration or yml files.Or when you get following error:
Theme hook YOUR-TEMPLATE not found.

Let say you want to create a module to manage contact and edit them. My Module in this case is named “mymodule”

Let start to create the diffrent route in “mymodule.routing.yml” file:

 

Add your Conroller in src folder with the name ContactController.php:

Create following yml file “mymodule.module”:

At the end just create the Twig templates within your templates folder:

templates/contact_edit.html.twig

templates/contacts_show.html.twig

So now, you are able to create diffrent routes and templates using Drupal8 and transfer variables from the controller to the twig template
using your own business logic operations.

Drush8 Drupal8 on unix system

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...

First install composer for all projects(Required User root)

Then change directory to to the Drupal8 installtion and edit composer.json and add the drush line:

at the end update compser with: (Required User www-data)

if permissions Problem:

 

clear cache with: (Required User www-data)

or if you have your own site:

Upgrade PHP 5.5 to 5.6 and PHP Warning PHP Startup Unable to initialize module

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...

How to upgrade PHP to 5.6 is not a big challenge. In some cases , some manuell installed modul over pecl like imagick will not properly works. This is because some modul are compiled with the old  php module.

The error looks like:

So the new php 5.6 in this case is compiled with module API=20131226 . All what you have to do is to upgrade the php5-dev package and reinstall the modul again. In this case imagick.

That’s all.

Basically, if you want to install imagick for the first time you can use the following commands:

Add File imagick.ini in :
/etc/php5/cli/conf.d and
/etc/php5/apache2/conf.d
With content:

mysql_secure_installation – mysql-5.5 wheezy-security; urgency=high

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...

Ifyou get following message during server upgrade:

Then you have to run following command to secure and restrict your Database aceess.

The test Database will be deleted and also the anoymous user access from the localhost.

multipart_chunk_size_mb – upgrade s3cmd from 1.0.0 to 1.5.2 AWS Ubuntu 12.04.3 LTS

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)
Loading...

if you get some of the following errors , you should upgrade the s3cmd from 1.0.0 to 1.5.2:

[Errno 104] Connection reset by peer
[Errno 32] Broken pipe

The Problem is that files with size more han 5GB will not be able to be uploaded to AWS S3.  It is recommended that s3cmd  should be updated to 1.5.2 . This update gives the possibilitities to split / chunk the uploaded file.

Update to the recent s3cmd Version

1. Backup your /root/.s3cfg file
2. Get the latest Version with:
wget http://sourceforge.net/projects/s3tools/files/s3cmd/1.5.2/s3cmd-1.5.2.tar.gz
3. tar zxf s3cmd-1.5.2.tar.gz
4. cd s3cmd-1.5.2/
less INSTALL
5. apt-get install python-setuptools
6. python setup.py install
7. s3cmd –version
If this doesn’t work , then :  cp -a s3cmd /usr/bin/
8. s3cmd –version
9. s3cmd –configure

You can see now new options like : multipart_chunk_size_mb

Example: