Custom WordPress Development

One of the things we have been doing right from the start at TenTwentyFour1024 – and in which we have thus been able to build quite some expertise – is just about any kind of WordPress-related development. From set-up and configuration over custom plug-in development up to fully-fledged theme development, we’ve done it all and we’re constantly improving and extending existing, or adding new projects to our portfolio.

Our WordPress plug-ins are clear and concise. Building on WordPress’ action and filter hooks, we stick to the official API, avoiding custom database tables and queries or ugly hacks.

Listed below are some of the plug-ins and websites we created for our clients.

Don’t hesitate to contact us for any customization or development jobs.

Agenda & Content SynchronisationClient: MNHN

The National Museum of Natural History (Musée national d’histoire naturelle – MNHN) features permanent and temporary exhibitions and offers educative and interesting activities for young people and school classes.

Listing of events and filter possibilities

Several WordPress-based websites cater to the respective target groups of the museum, the general public, youth and children, school classes and youth groups.

For those websites, TenTwentyFour has developed – and gradually improved – a plug-in to synchronize the museum’s internal database of educative activities and workshops with their websites. Events and themed visits are retrieved from a Microsoft SQLServer and imported into WordPress as Custom Posts, using custom taxonomies and custom fields (meta-data) for storing and organising the events.

As opposed to earlier versions of the plug-in, the current version relies entirely on native WordPress functionality, bringing no custom database tables or other custom tweaks.

Since the museum’s websites and database contents are both multilingual, imports are done in all available languages using the Sitepress WPML plug-in, despite some of the difficulties we encountered while using as of yet undocumented and unsupported WPML functionality.

The import process uses a range of checks to make sure the already existing items are complete and not missing any details such as location or featured image. Should such be the case, or should any change have been made to the original items in the SQL database, the respective entity is updated in WordPress.

Among the features of the plug-in are a calendar widget displaying upcoming events per day and a search/filter interface for both events and visits, allowing site-operators to restrict the displayed events to a thematic category and visits to even further narrow down their search.

Cross-platform user accounts and login management Client: MNHN

Not only does the MNHN manage a huge amount of events per year, it also has an impressive user base. Their users consist of parents and youngsters who have signed up to events over the years, of educational personnel who has booked one of their visits or mobile trucks, and of their guides and workshop tutors.

Sign-in or sign-up no the science-club.lu website

In order to allow all of those users to authenticate on any of the MNHN’s websites, manage their children or themselves as participants, manage subscriptions to magazines and on-line newsletters, sign-up for events, consult the state of their registrations or the history of events they – or the people they manage – participated in.

Using a central database, all users are dynamically synchronized between the individual websites, allowing users to log-in anywhere using the same account and access the same information. Existing users are securely migrated to the new format, relying on email confirmation to make sure the users are whom they claim to be. As for the Agenda-Plug-in described above, all contents are localized (l10n) in the languages used by the MNHN’s web-sites.

WordPress website with custom posts, archives and content filtering Client: Forum a.s.b.l.

forum – für Politik, Gesellschaft und Kultur is a monthly, independent magazine publishing stories about politics, society and culture in Luxembourg. Their website provides the editorial staff with a way to engage existing and new readers by publishing news, articles, pod-cast and videos of their regular debates called public forum. Readers will find excerpts from their current publication as well as the means to browse through all the previously published issues and their articles.

A digital subscription feature gives subscribers access to the newest articles and issues in PDF format, while releasing the entire content to the non-subscribers usually a year after the release.

All issues and articles from the first issue in 1976 on are browseable and searchable from the issue archive, allowing users to restrict their search by author, title, published year or even content.

Based on a graphic design by Andrea Beck, TenTwentyFour1024 developed and delivered a WordPress installation combining the fully-responsive forum2015 theme – using selected Bootstrap 4 components – and two additional plug-ins to manage issue and article publication, as well as to import contents from the previously used database.

As for both plug-ins described above, all functionality uses WordPress Custom Posts and Taxonomies. Among the highlights of the development are the deep integration with WordPress, infinite-scroll functionality on the search results page depending on the number of results and automated media-content extraction and tagging from posts that contain audio or video material.

EuroDesk.lu & CarteJeunes.luClient: Centre Information Jeunes a.s.b.l.

Building on existing plug-ins and native WordPress functionality, TenTwentyFour1024 built a system for the Luxembourgian Centre Information Jeunes to manage CarteJeunes members entirely using the WordPress system they’ve come to know and like in the past couple of years.

The CIJ CarteJeunes plug-in extends registration forms, user-profiles as well as filters, actions and bulk-actions on the user-list in WordPress’ admin back-end. It tracks payment information, generates unique Membership IDs for several organisations across a WordPress multisite installation, and allows to create PDFs for cards conforming to the ISO/IEC 7810 ID-1 standard individually or in batches.

Each generated card sets a time-stamp on the respective user, further allowing to filter out people who already have a card, select all the remaining users, and batch-generate either cards, or even labels for postage. A cron-job checks expiry dates on memberships tracked through the plug-in and notifies administrators of that pending expiry.

For the same organisation, TenTwentyFour1024 built a plug-in to synchronize program entries from the European EuroDesk database through their OAuth-protected API, then list and display them directly on the national EuroDesk website, eurodesk.lu.

This WordPress Importer/Visualizer plug-in imports all contents retrieved from the EuroDesk database into WordPress Custom Post Types and Taxonomies, thus allowing to use and manipulate the data just like any other WordPress content, using it in widgets, including it in site-wide searches, etc.

Technologies used in building this application

WordPress

WordPress is a free and open-source content management system (CMS) based on PHP and MySQL. Based around hooks and filters, the core WordPress application can be extended to do almost anything. (+)

PHP

PHP is a popular general-purpose scripting language that is especially suited to web development. Fast, flexible and pragmatic, PHP powers everything from your blog to the most popular websites in the world. (+)

Twig

A flexible, fast, and secure template engine for PHP by the creators of the Symfony framework used – for instance – by the Silex micro-framework. (+)

Pimple

Pimple is a simple PHP Dependency Injection Container used – for instance – at the core of the Silex micro-framework. We use Pimple to decouple the interfaces that we use from our concrete implementations and thus improve maintainability and testability of our code. (+)

TCPDF

TCPDF is an Open Source PHP class for generating PDF documents that does not require any external libraries, supports standard and custom page formats, and brings full support for UTF-8 Unicode. (+)

wkhtmltopdf

wkhtmltopdf and wkhtmltoimage are open source (LGPL) command line tools to render HTML into PDF and various image formats using the QT Webkit rendering engine. These run entirely "headless" and do not require a display or display service. (+)

jQuery

jQuery is a fast, small, and feature-rich JavaScript library. It makes things like HTML document traversal and manipulation, event handling, animation, and Ajax much simpler with an easy-to-use API that works across a multitude of browsers. (+)

Bootstrap

Bootstrap is the most popular HTML, CSS, and JS framework for developing responsive, mobile first projects on the web. Bootstrap makes creating good-looking website easy and allowed us to focus on the functional aspects of the application. (+)

OAuth 2.0

OAuth 2.0 is a protocol for authentication and authorization that focuses on client developer simplicity while providing specific authorization flows for web applications, desktop applications, mobile phones, and living room devices. (+)