News

Unless you are a designer, the progressions you will see with Joomla 4 are in the UI. There is another default format called Aurora and another admin template called Atum. Joomla 4 will move to the Bootstrap 4 structure, while Joomla 3 is right now on Bootstrap 2.

Read more: Joomla 4 : First contact

March 2017... Soon the joomla 3.7 version and its set of new features. The same for AllEvents

A new feature especially out question to me: The custom fields. I remember the number of hours that I needed to develop them in AllEvents one year ago and the single hour (yes, less than 60 minutes) to integrate this new feature in AllEvents. Developers friends, I am going to say you how I just did afterwards. 

In the set of news in the 3.4.7 it's mainly the introduction of plugins that makes that anybody is able to develop its own event displays, event forms, list of events. It's the end of the overrides. All is performed thru plugin: you develop it, you install itr and you maintain the display. We can also add bugs corrections, the field of thumbnail and poster fulfilling in frontend, the editor correction in the frontend, a "webinar like" new event display mode .

Come back to this Joomla 3.7 new feature

Custom fields

Custom fields are one out of the new Joomla 3.7 features. Natively, you will be able to add sutyom fields to articles, user profiles and contact form. With its integration in AllEvents you will be able to do the same thing in your events.

If you are an AllEvents user, that's all for you. But, if you are a developer, the next part should interest you.

Reminder

As any componentr, AllEvents is based on a MVC model. So, I consider that your component is compliant with this model. 

Theorically, you should have an attribs column or params in your table. That allows to store metadata for example... So, I consider you have it.

Step 1 : You have to define the display in your menu on the left. Your componet becomes a context (in our case: com_allevents.event) of the com_fields component of Joomla.

It's located in /administrator/helpers/allevents.php

We add these few lines:

if (JComponentHelper::isEnabled('com_fields'))
{
    JHtmlSidebar::addEntry(
        JText::_('JGLOBAL_FIELDS'),
        'index.php?option=com_fields&context=com_allevents.event',
        $vName == 'fields.fields'
    );
    JHtmlSidebar::addEntry(
        JText::_('JGLOBAL_FIELD_GROUPS'),
        'index.php?option=com_fields&view=groups&context=com_allevents.event',
        $vName == 'fields.groups'
);
}

fields

I have defined two entries: one for the fields, another one fro the groups. You immediately checkj the result by depositing this file int right location.

Step 2: modify the event.xml manifest file to display the custom fields in the screen of event fulfill

This is located in the /administrator/models/forms/event.xml file

<fieldset name="display" label="JGLOBAL_FIELDSET_DISPLAY_OPTIONS" addfieldpath="/administrator/components/com_fields/models/fields">
    <field name="show_user_custom_fields" type="fieldgroups" multiple="true" context="com_allevents.event" label="COM_ALLEVENTS_FIELD_USER_CUSTOM_FIELDS_SHOW_LABEL" description="COM_ALLEVENTS_FIELD_USER_CUSTOM_FIELDS_SHOW_DESC">
        <option value="-1">JALL</option>
    </field>
</fieldset>

Step 3: In the frontend get back the fulfilled values of your element

This is located in the /models/event.php file. The fields are got back in fields. In the AllEvents use cas, the used columns is params.

if (!isset($this->_item->fields)){ $this->_item->fields = [] ; }
if (class_exists('FieldsHelper'))
{
    // Convert parameter fields to objects.
    $this->_item->params = new Registry($this->_item->params);
    $this->_item->params = $this->_item->params->toArray();
    $this->_item->fields = FieldsHelper::getFields('com_allevents.event', $this->_item, true, $this->_item->params) ; 
}

Step 4:In the frontend get back the fulefilled values of element

This is located in the /views/event/tmpl/event.php file. A small piece of code got back in the contact display:

<?php
$eventFieldGroups = array();

foreach ($item->fields as $field) :
    if ((!$field->group_id )) : 
        continue; 
    endif; 
    if (!key_exists($field->group_title, $eventFieldGroups)) : 
        $eventFieldGroups[$field->group_title] = array(); 
    endif; 
    $eventFieldGroups[$field->group_title][] = $field; 
endforeach; 
?>
<?php foreach ($eventFieldGroups as $groupTitle => $fields) : ?>
<?php $id = JApplicationHelper::stringURLSafe($groupTitle); ?>
<?php echo '<h3>' . ($groupTitle ?: JText::_('COM_ALLEVENTS_EVENT_FIELDS')) . '</h3>'; ?>

<div class="contact-profile" id="user-custom-fields-<?php echo $id; ?>">
<dl class="dl-horizontal"> 
<?php foreach ($fields as $field) : ?>

<?php if (!$field->value) : ?>
<?php continue; ?>
<?php endif; ?>

<?php echo '<dt>' . $field->label . '</dt>'; ?>
<?php echo '<dd>' . $field->value . '</dd>'; ?>
<?php endforeach; ?>
</dl>
</div> 
<?php endforeach; ?>

Step 5 : There is not... That's all for AllEvents

As you have seen it, by modifying 4 AllEvents files, we are able to propose custom fields to our users.

Some thing remain to do like:

  • The distinction of the groups of field: distinguish the fiels related to the events and the ones related to the registreations
  • The evntual translations of the tag in the backend

If you have any questions or feedback abou this article, you can easily join me.

Emmanuel

 

 

 

AllEvents provides infinite scroll in the events list with navigation. A demo : List events with Infinite scroll

A simple parameter "Infinite scroll" in the display and you provide a new way to navigate to your visitors.

OK. But what is the "Infinite Scroll" ?

Read more: Events list : Infinite Scroll parameter

2017 is coming soon, come back a little bit on the 2016 year rich for AllEvents 

An enforced communication and visibility

AllEvents is an events and agenda manager for Joomla.


We know and you know this… The question that is raised is « How to do it know to other Joomla users? »

In order to begin tp answer this question, a new AllEvents website has been built, more design, more responsive, more SEO… AllEvents has also changed its communication components (acyMailing to send the newsletters) and  products delivery (RD-Subs has replaced CB-Subs).

Add also two new little vidéos as a whiteboard to present our component is less than one minute. Of course, these are our first steps in the digital discovery and its adapted communication.

About Joomla community events, AllEvents was also bronze partner of 2016 Joomla Days 2016 FR in Paris last April.

A team that grows

Charles  Jean Pierre

First Charles gas been coming to his end-of-study traineeship with usavec nous. Charles is a pure marketing in the spirit, he has known how to propose now topics  to clean up the  the d’AllEvents catalog and to make more consistent. AllEvents is not a product with amarketing team dedicated toi the internet survey ... Charles has succeeded to raise this question "Can we do more with the current means?" 

Secondly,  lieu Jean Pierre who is mostly a non professionalMarseille scuba diver (see his article for more information) has begun to help us for the d’AllEvents integration. Since the beginning 2016, he translate in english all the website articles. Many thanks to himl!

New features

Users of premium version have seen the disposal of new displal as the display of events as a "Google Maps" map and the display as a dynamic grid.

The common topic betwwen these two news? The idea comes from AllEvents users, users as you! Aurélien from t2area.com who wished provide to his wbebusers a French events map on the map of the France has proposed the display mode as a map. Eric from salsa04.com who wished display his events around dance in his website has proposed the display mode as a dynamic grid.

For the 2017 year, what can we wish to AllEvents ? It remains itself : a component for and with his users

AllEvents needs you

You want improve one out of the AllEvents display modes?

You have in main a new display or a new feature for your events and you wish to share it with the  AllEvents community?

You have seen a display mode that should be perfect with your events?

Feel free: get in touch with us! It will be a pleasure to study your proposal and try to implement it to share it with the community.