EMTP.com Drupal Project
Drupal compontents for Drupal websites and custom modules that span the versions from 8.7 through to 11 modules / theme components and integrations.Below are the projects and notable contributions.
Drupal Websites Collection
- [Site A – EMTP ] emtp
- Site B – Artog.co
- Site C – Pinmento.com
Shared Modules
These custom modules are reused across multiple projects as a base for customized requirements:
- Email Subscriber Module
- Star Rating Module
- Custom Download Module
- Custom Vector Map Module
- Conference Agenda Module
- Conference Leads Module
- User Profile Account
Customized Modules
These modules are custom to EMTP with the removal of sensitive or private substance that may be discretionary.
- emtp_migration – migration of an external database of content, requires content types, setting up image and file fields to import correctly. It utilized the Migrate Module dependance built in to Drupal. The code base ran against multiple tables in a secondary database to create the content types and its files storage to improve upon SEO.
- emtp_forms – specialized forms specific to the EMTP Sales engagements. includes a data flow to Hubspot for handling workflows within sales / deals containers. see Email Subscriber Module for a basic configuration page similar to this customized module.
- emtp_api – connects user and hubspot for account creations. Uses the built in HTTP Basic Authentication and RESTful Web Services to process User functionality.
- emtp_email_subscriber – uses email subscriber to extend into a customized module functionality. Includes a brevo api connection push to hubspot via a brevo workflow. See - Email Subscriber Module. The emtp site required emails to both internal sales and external to client to respond with an appropriate message and therefore these elements are also included in the configuration of emtp forms.
- devices_read_folder – this modules reads the content of the devices folder which correlates to the software devices components and their documentation. The need is to upload changing files dependent on the new software release that can be found or used by sales when supporting the software.
Web Developer Role:
The emtp.com website I was the sole developer and manager of the web integrations with a title of Web Developer. My role expanded across the server setup, installations, content type migration and module / theme developments.
- Single employee responsibilities from server setups and configuration to code implementations, maintaining a site running 24/7 worldwide.
- Develop code, deploy, maintain code base and custom code from 8.7-10.4
- Redevelop a deprecated theme(nexus) using bootstrap barrio subtheme and bootstrap view module for carousels, cards, tables etc.
- Implement customized modules that facilitate the website needs such as user api between third party systems - hubspot user creations, email subscriptions with Brevo api double opt-in design landing subscribed url.
- Implemented customized forms for sales engagement using block placement and page level theme. Emailing features, api connection to Hubspot Forms, internal workflow code via python.
- Migrated content from an old php site inside drupal via php filter, into proper content types, file system migrations and taxonomy migrations. This includes: Exchange Platform, Technical Presentations, and Events/Conferences using customized code, theming and blocks.
- Migrated third party CRM into Hubspot CRM using python, mysql, excel and injection techniques to support the company objectives for Jan 2024 go-live.
- Implement views to display the new content types working within the theme hooks and views data to display subsets of data or full view pages. Twig templates were customized to display the pages as originally designed. Paging and view more configurations as required.
- Create a module to handle webform remote_post_handler for the two forms that were originally designed and configured. This handler required configuration fields and used in the theme hooks to push through guzzle http requests. json configuration mapped the webform fields as per the below code:
Customize the Webform remote_post_handler
The code is simple. The Webform module to send data through to an api create a form then navigate to the handlers section choose “Remote Post” to create a new handler with uri / method and json payload tokens :
{
"name": "[webform_submission:values:name]",
"email": "[webform_submission:values:email]",
"message": "[webform_submission:values:message]"
}
<?php
namespace Drupal\your_module\WebformHandler;
use Drupal\webform\Plugin\WebformHandlerBase;
use Drupal\webform\WebformSubmissionInterface;
/**
* Sends submission to external API.
*
* @WebformHandler(
* id = "api_post_handler",
* label = @Translation("API Post Handler"),
* category = @Translation("Custom"),
* description = @Translation("Posts data to external API.")
* )
*/
class ApiPostHandler extends WebformHandlerBase {
public function submitForm(array &$form, FormStateInterface $form_state, WebformSubmissionInterface $webform_submission) {
$data = $webform_submission->getData();
$client = \Drupal::httpClient();
$response = $client->post('https://your.api/endpoint', [
'json' => $data,
'headers' => [
'Authorization' => 'Bearer YOUR_TOKEN',
],
]);
// Optionally check response, log, etc.
}
}
Project Image Gallery
The below screenshots capture some of the modules and components built that visually help relate the modules and features designed and implemented within the site. Customized modules are not accessible to the general public however generalized modules are extended from the general repositories online. They represent some areas that are more exclusive the EMTP & web ecosystem. The list and images are non-exhaustive.




The below images are related to two form modules. One specific to emtp called emtp_forms
what displays One Hour Call page block forms and the webform module
example.

