
Integrated Device Technology, Inc., (IDT®) (NASDAQ: IDTI), the Analog and Digital Company™ delivering essential mixed-signal semiconductor solutions, re-launched and expanded IDT.com using Drupal in January of 2012. Leveraging Apache Solr and advanced jQuery solutions, the site provides visitors an interface to easily search and explore the depths of the company's broad portfolio of products.
IDT, the market leader in timing, serial switching and interfaces, wanted a new web site without the hassle of maintaining the code of a homegrown Web Content Management System (CMS). IDT found it difficult and costly to keep its previous site's content current, as the staff struggled with the system's overall complexity and inflexibility. IDT approached Mediacurrent to help migrate the ColdFusion site to Drupal. The legacy site was starting to show signs of age, and IDT wanted to avoid being locked into yet another CMS that would fail to evolve.
IDT required a solution that would prove to be fast, have an extremely easy-to-use interface, scale to thousands of products and offer the flexibility to grow and change quickly to keep pace with the company's markets. Mediacurrent and IDT turned to Drupal to leverage its vast array of features that allow non-technical product managers to easily and quickly deploy product updates.
Mediacurrent delivered a solution that met IDT's requirements, and launched the site with more than 100 hours under the project budget.
"Like the innovative engineering developments at IDT, there are risks and unknowns in any complex web design project," said Andrew Luchsinger, Technical Marketing Manager at IDT. "Mediacurrent’s highly-skilled team was able to mitigate our risks with a detailed specification and then tackle the unknowns with creative solutions. These skills, coupled with a prowess in project management and clear communication, makes for a valuable service."
The project team from Mediacurrent would like to share some of what we've learned while bringing this new enterprise client into the Drupal community.
Integrated Device Technology, Inc., the Analog and Digital Company™, develops system-level solutions that optimize its customers' applications. IDT uses its market leadership in timing, serial switching and interfaces, and adds analog and system expertise to provide complete application-optimized, mixed-signal solutions for the communications, computing and consumer segments. Headquartered in San Jose, Calif., IDT has design, manufacturing and sales facilities throughout the world. IDT stock is traded on the NASDAQ Global Select Stock Market® under the symbol "IDTI."
IDT's existing website was a homegrown ColdFusion-based framework that could not keep up with the pace of the ever-developing web and the flood of new IDT products. This is a familiar scenario. When a site is built on a homegrown framework authored by one person, clients must choose between implementing new features, fixing bugs, or updating content. Conversely, when a site is built on an open-source framework like Drupal, bugs and security patches are maintained by the community so that time can be spent on customized solutions, and content can be managed by individuals who don’t have a technical background.
One of the largest technical hurdles that Mediacurrent faced was the limitations on JavaScript when rendered by older browsers. The primary issue is that some browsers have a maximum number of lines of code that can run before they display a "script timeout" error. Even though the Parametric Search script was running in just a few seconds the users would still see that error. Mediacurrent resolved the problem with a two-pronged approach. First, Mediacurrent moved pre-calculation into the related Drupal module and passed the pre-compiled HTML to the JavaScript via JSON. This allowed the JavaScript to be limited to handle basic input and output. Second, Mediacurrent implemented an Infinite Scroll to address the issue that a single Parametric Search might have hundreds of products that could still trip the "script timeout" error. The Infinite Scroll solved the overall problem by only displaying the first 50 products when the page is first loaded. When a user scrolled to a pre-set region towards the bottom of the page an AJAX request was queued to load 50 more products. This process would continue as the user scrolled down the page until the user stopped scrolling or all of the products were displayed. The combination of these two solutions allows the Parametric Search to easily scale while still loading in under a few seconds for older browsers.
IDT has thousands of products that must be updated regularly by subject matter experts who don’t have time to use a complex web system. The legacy site allowed for updating of content, but most users avoided making updates because they found the system too complex when adding data. To encourage the product managers to engage and update the new site, Mediacurrent engineered the site to allow for entry/modification of products in only one screen, leveraging data from existing products to reduce redundant input.

IDT.com contains information on users and tens of thousands of products and product-related documents. Mediacurrent leveraged the Migrate module to import all of the product-related data including node references. IDT can also utilize this module to import large batches of products at a later date. Additional Migrate scripts and plugins were written to allow data to be imported for content with custom field types, well beyond the standard field types.
The IDT data structure mimics a pattern that many sites follow. The highest level is the Category, there can be SubCategories listed under a Category (as children) as well as under themselves. The lowest level is the Product, which can be attached to any level of Subcategories. (Category -> Subcategory {Up to 5 levels} -> Product) Normally this wouldn't pose much of a problem, but Drupal nodes are considered to be all on the same level. Mediacurrent addressed this issue by using node references for all three content types. This way, a Category would have links to all of its child Subcategories and all Subcategories would have links to its child Subcategories or Products. Mediacurrent designed the tree structure in this way so it would be possible for a "branch" of the tree to live in multiple locations at the same time as well as bringing along all of its children and grandchildren.
Mediacurrent created the Parametric Tree module to allow for tree traversal through recursion. The module starts at a starting point (the Category), finds the child node IDs and then repeats the process down the line for each child, child's child, etc. until it reaches the bottom of that branch. The module then returns back up the line and starts over with the next set of branches from the Category. Using recursion allows IDT the flexibility of adding as many nodes/branches to the tree as they need without having to hard code limitations such as "Each Category can only have a maximum of four Subcategories."
The following diagram is a demonstration of Subcategory B, as well as its child subcategories living under both Category A and Category B at the same time. This multi-homing could be done at any point in the tree but is done on the second level for simplicity in this example.

The new site references data from multiple external vendors to provide crucial product-related information to IDT customers. Mediacurrent combined multiple APIs (SOAP and REST) with a tiered caching system to provide the most up-to-date data to users while intelligently managing server load.
During the implementation, IDT transitioned to a new document management system and wanted it to be the authoritative source on all documents. Mediacurrent worked with IDT to implement a custom Document Importer module to update documents in near real-time. The solution used both cron (a time-triggered action performed by the hosting server) and Drupal Queue to allow the site to update in a scalable manner.
IDT has thousands of products grouped into various categories and subcategories. Each product needs to have its own set of fields, or attributes, that may or may not be similar to another product. Because any one product can have dozens of attributes, IDT needed an interactive way for users to be able to search these fields and easily narrow down which part would serve their purpose. Mediacurrent integrated a large amount of JavaScript code, an intermediary module and Apache Solr to create the dynamic system known as the Parametric Search. From an administrative perspective, IDT's product manager only needs to edit the node and select which columns should be displayed. The Parametric Search module takes care of the appropriate look-ups and display of the table.
To accomplish IDT's vision of the Parametric Search, Mediacurrent created two modules: the first to handle the loading of field-related data for JavaScript to consume on page display, and the second module to handle requests from the JavaScript. The custom JQuery-based JavaScript for the Parametric Search utilizes JQuery Address to allow for browser history preservation, as well as deep linking. The JavaScript also uses the JQuery UI library to display the sliders that are used for integer-, float- and range-based fields. When a user changes any of the dynamic inputs, the script requests updated data from the Parametric Search module which in turn queries Apache Solr for the relevant filtered information. The returned data is then cut into easy-to-consume chunks which enables the endless scroll to load additional data as the user nears the bottom of the page.

In conjunction with the migration from the legacy platform, the IDT.com graphic design was also redesigned as part of the project. IDT's marketing team worked with designer Kevan Hollenback to create mockups and style guides. Mediacurrent then adapted the PSDs to use the grid-based AdaptiveTheme.
The project team chose the AdaptiveTheme because all layouts are content first, supporting information (sidebars) second. The enriched semantic markup is lightweight, which means quicker page load and rendering times. AdaptiveTheme also fully supports both RDFa and ARIA Roles, further improving semantics and content findability.
Mediacurrent worked closely with the IDT team to ensure cross-browser compatibility and a uniform user-experience. CSS3 and jQuery were used to implement features like rotating slideshow blocks and jQuery UI sliders.
Armed with cutting-edge Drupal tools such as the Migrate module and Apache Solr integration, the project team delivered on IDT's requirements and launched under budget. Employees in IDT offices around the globe report faster loading times compared to the old site, while product managers enjoy a system that is easier to keep current with the latest product information.
Mediacurrent helps organizations architect custom websites by leveraging our proven processes and deep expertise in Drupal. We are home to an elite team of Drupal experts, who have a proven track record of building amazing websites. We strongly believe in open-source principles, collaboration, and sharing knowledge to strengthen the Drupal community. For more information regarding Mediacurrent's services and portfolio please visit http://www.mediacurrent.com.
Andrew Riley - Development, Lead Architect
Josh Estep - Development
Kendall Totten - Theme Development
Chris Hales - Development
Brent Ratliff - Development, Quality Assurance
Jeff Diecks - Project Management