Modules are Drupal plug-ins that add functionality to your site. Your YaleSite incorporates a comprehensive list of modules necessary to build a fully functional dynamic site. Many modules are enabled when your site is provisioned; other modules can easily be enabled as needed based on your site’s requirements.
Below you will find a list of the most common functionality requested to create dynamic websites. Clicking on the link provides the modules and links to instructions and tutorials necessary to add the functionality to your site. For a full list of modules available on your YaleSite, check the Module Listing.
You can check for broken links using the Link Checker module. Once enabled, you can configure the module to indicate which Content Type(s) you want checked and how frequently you want to check for links.
You can check your site for broken links within and outside your site using the Broken links option from the Reports menu:
You can check your site for broken links within and outside your site using the Broken links option from the Reports menu:
Your YaleSite has basic, out-of-the-box search capabilities that allow site visitors to search your site. These capabilities can be enhanced by adjusting the basic configuration or enabling the Custom Search module.
The Google CSE (Custom Search Engine) module is also supported, allowing for the enabling of a Google Custom Search engine that offers additional customization and the ability to search across multiple sites.
The Google CSE Module is available as part of the YaleSites Module listing. If you do not see the Module listed on your site, please request a refresh and all of the latest Modules will be added to your site.
(Note the Google CSE module should not be confused with the Custom Search module.)
Before getting started, a customized Google Custom Search Engine must be created using an EliApps account or any Google account. Instructions for creating the Google Custom Search engine can be found here.
Congratulations! Your new Google Custom Search engine is now configured as the active search module on your Drupal 7 site.
YaleSites utilizes the Drupal Core Search feature that allows site visitors to search using keywords that are found on your site. However, what if you want a specific page to display when a related keyword is used to Search but that keyword is not used on a page within the site? You can add a hidden field to any Content Type and expose that field only in the Search Results and Search Index View Modes. This will allow you to add terms that are not part of a page but related to the content to ensure that page displays in the search results if the keyword is used in the search.
View Modes is a Drupal Core feature that allows you to control what is seen or utilized on a page display based on the context in which it is viewed – i.e. full pages or teasers. Additional View Modes are available based on the Modules you have enabled.
The following lists the View Modes that are available as part of Drupal Core:
In this tutorial we will focus on the Search Index and Search Result View Modes to optimize the search results for your site using the Search and Custom Search Modules.
The first step to optimizing your search results is to create a Keywords field. Here you will place words that describe and give information about other data but are not found within that specific page.
Configuring View Modes is fairly straightforward regardless of the Module enabled. View Modes can be found as part of the structure of a Content Type in the Vertical Tile labeled Custom Display Settings.
Click on the Search Index and Search Result check boxes and save the configuration. You will notice new tabs at the top of your Manage Display configuration page.
Click on each tab and drag the fields that you do not want in to search to the Hidden section. In this example, we will only display the Body and Keywords field, all the others are in the Hidden section. Save the configuration.
Do the same for the Search Results View Mode.
The site will need to be re-indexed in order for the search results to display. This happens automatically overnight but may take more than one night depending on the size of your site.
You might have a manual, guide or other structured documentation that you want to use as a separate a set of pages on your site. The Book module provides the interface that allows you to create a book with pages are tied together in a hierarchical sequence. The Module includes navigation that links to the next and previous pages, as well as a Table of Contents that lists the chapters, sections, subsections based on your outline.
For analytics gathering and reporting, Yale University recommends all YaleSites use Google Analytics. In order to use Google Analytics, the site administrator must enable and configure the Google Analytics module to begin tracking site usage.
Several reports are available to help you monitor the activity of your site. These reports can be accessed from the Reports link in the Administration menu then selecting the desired report.
Recent Log Messages - lists site activity including page creation and updates, module configuration, notices and warnings. Each message is stamped with the date, user, and link to more information.
Top ‘access denied’ errors - lists the pages anonymous users were restricted from viewing along with a number of times that error displayed.
Top ‘page not found’ errors - lists the URL that leads to the 404 page, indicating the page could not be found as well as the number of times this error occurred.
You may want to manage your website maintenance process with a more formal workflow structure. This would allow you to define your workflow states, (i.e. “draft”, “ready for review” and “published”), as well as assign permissions to the various individuals who will be responsible for working on your site’s content (i.e. “editors” can only update but not publish content). Workbench is a suite of modules that provides all the tools/modules necessary to create the workflow states and permission levels.
We’ve had a lot of requests for more information on restricting or controlling access to content. This is relatively easy to do with YaleSites using the right module combination:
YaleSites allows you to control who can edit/view content with roles. Out-of-the-box, anonymous and authenticated users (anyone with a NetID) can view your site; the Editor, Site Builder, Administrator roles all have varying degrees of access based on the permissions granted. These permissions can be customized based on a site’s needs. Read More…
The Content Access Module gives you a way to control who can view or edit content for specific Content Types or individual pages/nodes on your site based on roles. Read More…
Although the Content Access Module allows you to restrict access to pages or sections of your site, this alone does not prevent someone from viewing or downloading PDFs or other files that have been uploaded to your site. In order to prevent access to files, you need to configure the Private File settings and the Content Access module. Read More…
There may be times when you want to limit a page or webform to the internal Yale community. You can easily redirect someone to CAS prior to opening a page or webform using the CAS module. Read More…
Need to restrict access to a small group that includes users who are outside the Yale community? Since these users do not have NetIDs, they can’t log in or be assigned a role. In these cases, you can use the Protected Node module to create a password for distribution. Read More…
You can easily restrict access to specific pages or sections of your site using the Content Access Module. This allows you to provide access to view and/or edit content for a specific content type based on a user’s role. In addition, you can provide permission to specific pages on an as-needed basis, in the event that only one page of a specific content type requires restriction.
Since the use of multiple user access modules can create conflicts, YaleSites will only offer the Contact Access module as the option to restrict/grant access to users. For instructions on how to configure this module, please visit the Content Access module page on the YaleSites How-To Guide.
You can restrict access to pages on your site using the Content Access module, but this does not prevent anyone from viewing files that have been uploaded on those pages. In order to so this, the field used to upload the file needs to be set as “private” when it is created. Some site configuration must be done to make the private option available.
The first thing you need to do is configure the Private directory on your site.
For files that require restricted access, create a Private Files content type. This is the Basic Page content type but with the “file upload” field set to “private”. Once created, you need to set permissions to allow specific roles to view any of the content on that page, including the uploaded files.
The Private Files cannot be viewed when they are in the private directory unless access is provided to the content type the file is associated with. Therefore, you need to set access permissions to the Private Files content type using the Content Access Module in order to allow anyone to see and/or download the file.
The downloadable file that is attached to this file takes on the permissions of the permissions set here.
Please note: the Lynda.com video describes how to set up a Private file directory and create a Private File content type. This is not necessary. You do not need to create/or change the Private File system path. This has already been set up as part of your YaleSite.
There are several ways to collect information from site visitors to solicit opinions, gather information or register people for an event.
Surveys: If you want to create surveys or gather information from site visitors, you can use the Webform module. This allows you to capture information and send it to designated email addresses. The submissions are available to be downloaded via Excel or viewed directly on the website.
Polls: The Poll module allows you to create simple polls and display the results on your site in a Block.
Contact Us: Use the Contact module to setup online contact forms with multiple topics; each can be configured independently to identify the email subject, body and email address to receive the information.
Five Star: Implement Voting on specific pages.
A blog is a group of web pages that are arranged in the order and grouped by a specific topic or relevant terms. Blogs are not much different than websites, but there are some subtle differences:
The Blog post content type is now be available and any entries you make will display at the following URL: yoursite.yale.edu/blog
You create categories for your Blog, with taxonomy. See Creating Categories with Taxonomy.
It is very common to allow site visitors to comment on Blog entries. This is possible when permissions are set prior to the blog entries being created. For more information visit Managing comments.
Important note: If your blog allows multiple authors and/or site visitors to comment on your site, it is recommended you put a disclaimer statement to the effect that the opinions expressed on the Blog are not necessarily those of the organization/department hosting the site. Additionally, the group hosting the Blog must regularly review or moderate content and provide ways for people to report inappropriate posts. It is recommended that each organization/department provide a statement from that content will be removed at the discretion of the organization/department .
The Frequently Asked Questions module (FAQ) provides an environment to capture and organize Questions and Answers for your site. The Module allows you to create, change the order and layout, and use taxonomy to create an FAQ category.
If you are including email addresses of staff or faculty on your site, there is the risk that a spam-bot can harvest the addresses, increasing the spam found in in-boxes. To prevent this, you can use the Invisimail module to configure the email fields to be hidden from spam-bots.
Here’s how it works**:
Invisimail scans content for email addresses and then converts each character of the address to its ASCII-code equivalent. The email address will appear normally on the page, but the source html will not appear as an email address. For even more security, the filter can use a JavaScript write command to further obscure the email address.
** taken from the Advanced Help Readme.txt file which is available when you enable the Invisimail module.
YaleSites allows you to provide a summary of key information from your web site as an RSS feed. You can create links to these feeds within your site or site visitors can subscribe to your feed.
Each site an automatic RSS feed that can be found at yoursite.yale.edu/rss.xml. This feed lists any page that has been checked as Promote to Front Page under Publishing options.
You can create settings for all your RSS feeds by following these simple steps:
IMPORTANT NOTE: The date that displays in the RSS feed is the DateStamp, or the date the page/node was created. You can change the date field in the Authoring Information field to the true published date if you wish.
We get many requests from site builders that want to provide an RSS feed that lists content from their sites. The RSS feed provides a list of links for designated content (most frequently news and events) to display on a browser or phone. People can subscribe so they can view the list that is updated automatically as content is added to the site.
Creating an RSS Feed with YaleSites can be done with a few adjustments to the News and Events pre-built features. For this example we will use the News Content Type and View.
RSS format is very simple, displaying just a Title, description, author, and publication date. Most of the fields that you need for an RSS feed already exist in the News Content Type, but you will need to add the Path and Author fields in order to capture that information.
The Views Module provides RSS Feed as one of the display options. This makes it relatively easy to create an RSS feed for your site. You just need to set the filters and fields based on the RSS format.
Be sure to apply theses changes to This display
The YaleSites News Feature comes with a date field, but the format needs to be adjusted. Because the RSS feeds uses the RFC 2822 date format, your date field needs to be formatted in order for it to be accepted. You can to create the format in the following way, then assign it to the View.
Each piece of content that is added to your site is stamped with an author, or the person who created the page. This information is part of the People Profile so it is not added directly to the News Content Type. Therefore in order to associate the Author field with the News Content Type, a Relationship must be created.
Now that you have the relationship you can add the Author field in the Field section
Go back and Setup the RSS Field Mapping
Once you have created the feed, you might want to attach an RSS icon to the main news listing so people can easily subscribe to it. This is relatively easy to do.
You can also add additional filters through the Filter section of your Views interface or using Contextual Filters.
If you want more control over the content that is pulled into your site from an RSS feed or you want to integrate the articles with current content (i.e. News, Videos) you can import RSS feeds to your site using the Feeds Module. The example below provides instruction for how to import an RSS Feed from news.yale.edu into the YaleSites News Feature Content Type. Important Note: If you want to pull the image from the news feed you must use the jSon Feed option.
The RSS or data feed imports the data into a Content Type; you must create a Content Type if you do not already have one.
Once you have created the importer, you can indicate the RSS feed to pull in and import the RSS feeds.
Yale News (news.yale.edu) is the main source of news related to the academics, research and community activities. You can include articles from the Yale News site in your news listing by importing one of the Yale News jSON feeds with the Feeds Module and making a few adjustments to the News Content Type.
While you can use the basic RSS Feed to pull this information, you won’t have a lot of control over what is pulled into your site. For the most part, you can import the title of the article, the description and the date. If you want to exercise more control and import the picture, you can use a jSON feed.
By default, the news articles created with the News Content Type are published. However, once you setup the jSON feed to import articles into the News Content Type, you’ll most likely want to monitor how and when they are published.
In order to pull in the entire feed, including the image, we need to use the json feed setting when creating the feeds importer.
Once you have created the importer, you can indicate the jSON feed to pull in and import the jSON feeds.
Once the news items are imported, you can choose the ones you want to publish, upload an image and click on the Published checkbox to make it live.
YaleSites provides 2 Feature that enable you to capture your events to display on your site – the YaleSite Calendar Feature and the Yale Bedework Calendar Feature.
The Calendar feature provides a way to add your events to your site and list them in various displays, including a calendar grid. Read more about the YaleSites Calendar Feature
The Yale Institutional Calendar (calendar.yale.edu) is developed using the Bedework calendar system that conforms to current calendaring standards. Events are hosted on a centralized server so that events can be shared across many platforms including YaleSites. Read more about the Yale Institutional Calendar.
There are many groups that have external calendars other than Bedework (Google) but would like to display the events as if they were part of their YaleSite. The following options are available:
YaleSites now allows for an alternative way to showing your Google Calendar. This is the recommended procedure and allows for an easier implementation into your page using Blocks rather than installing a completely separate module.
Obtain the Google Calendar’s Source Code
Add the Source Code to your Drupal page via Blocks
You can import a Google Calendar into your site using Feeds Aggregator. This imports the events in an RSS feed-like format, with very little control over how the events display.
Important Note: Remember to click Update Items after creating feed or your feed will remain in 0 items until the next Feeds Pull.
You will now have a block with your issued title that can be assigned to any region within your YaleSite.
The Agenda module allows you to display a list of upcoming events from Google Calendar as a block on your website. The example below provides instructions for enabling the Agenda Module and how to import your Google Calendar into your YaleSite.
To attach a style to the Agenda Module you need to create a CSS Injector Rule. If you do not have CSS Injector, see instructions on Enabling CSS Injector.
Apply the Following CSS Rules:Agenda Module CSS Styiling
Note: Copy and paste the code from these files into separate CSS Injector rules.
Many organizations or departments store and display their events in external calendars such as Google Calendar, but want to display those same events on their YaleSites. To avoid duplicating effort and entering the events in 2 places, you can import the Google Calendar using an iCal feed.
In order to import using iCal, be sure you have the versions of the following Module on your YaleSites. If you have a lower version, please request a Refresh my site and the latest Modules will be updated on your site.
The feed importer indicates the type of feed you are creating and allows you to map the fields from the importer (Date, Location, Description, etc.) to the fields in the Event Content Type.
If you are using the YaleSites Calendar feature, site visitors might want to add your events to the calendar on their phone, google calendar etc. As the site administrator you might want to import your events from another calendar such as a Google Calendar. In order for this functionality to be available as part of your Calendar Feature, you must create an iCal (or iCalendar) feed and attach it to your calendar or the individual events on your calendar.
iCal is an Internet file format that allows you to do just that, share events on your calendar between various calendar products used by your site visitors. There are 2 main ways you might want to share information on YaleSites Calendar:
This tutorial will provide you with instructions for adding the iCal feed to your calendar or individual event so site visitors can import your events to their calendars, and importing events from external calendars, in this case a Google Calendar.
Important Note: if you are importing your events from the Yale Institutional Calendar (Bedeworks) you can use the pre-built feature. Instructions can be found here.
The first step is to enable the necessary Modules.
All Content Types allow you to create custom displays so you can show/hide and arrange fields for the unique requirements of that display. Once you have enabled the Date iCal module, a Custom Display for iCal is available.
Creating an iCal feed for your full calendar, but you might want to allow site visitors to add individual events to their calendar. To do this, you must add contextual filters to the view and another display to create the link for each event.
Create a Contextual Filter for the NodeID
<a href=”/calendar/ical/!1/calendar.ics” class=”ican-icon” title=”Add to your calendar”>Add to your calendar</a>
There are several modules that allow you to incorporate social media into your site.
You can embed a Google Map into your page without having to install a separate module. This is done using the Full HTML capabilities of the Text Editor and pasting the iframe code right into your Body field.
You should now have a Google Map in your content area pointing out your location as well as give people the opportunity to get Directions and more.
YaleSites now provides the ability to create drop-down options from the Main Menu using the Superfish Module. The instructions are intended for use with YaleSites Templates and provide you with the necessary steps to ensure your menus display properly in browsers and modern devices, including iPads, mobile and tablets. The CSS included ensures the menus are styled and colors coordinated with the chosen highlight color.
Configuring Superfish | Configuring the Block
Once you have your Superfish Module enabled, you must disable one of the default Libraries in your YaleSites Template settings for the SF-Touchscreen plugin to work correctly. This should be done in the main theme settings for the YaleSites Template you are using (Boxed, Standard, or Wide) as well as the Home Page Deltas.
Menu drop-down arrows can be helpful to visually identify which menu items can be expanded to reveal more list items without the need for interaction. The Superfish menu has a built-in drop-down arrow function although it is not visible within the YaleSites 2016 Standard theme without additional customization. This can be resolved with the following CSS:
/*(1)Hides arrows from main nav bar--->*/ ul.sf-menu > li > a > span.sf-sub-indicator {display: none;}
/*(2)Replaces white .PNG arrow asset with black forward .SVG--->*/ .sf-sub-indicator {background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26'%3E%3Cpath d='M15.405,13L6.821,4.236C6.438,3.845,6.442,3.217,6.829,2.83l1.536-1.536c0.391-0.391,1.026-0.39,1.417,0.002l10.925,10.997 C20.902,12.488,21,12.744,21,13c0,0.256-0.098,0.512-0.293,0.707L9.782,24.704c-0.39,0.393-1.025,0.394-1.417,0.002L6.829,23.17 c-0.387-0.387-0.391-1.015-0.008-1.406L15.405,13z'/%3E%3C/svg%3E%0A");}
There are times when you need a place to store an image for another application or email. This is often the case for Bedeworks Calendar where you want to add images to the header. Do to this, you need to:
You can either create the View manually or download the following files and import them.
Importing the Content Type and View
Rather than recreate the structures you can use the following instructions to import the Content Type and View (Reusing content types and views). Upload the following files.
To get the URL for the image to use in the other application or email, simply click on the image and copy the URL from the browser location field.
A Banner Menu allows you to have a secondary menu located above the primary Navigation Menu. This menu can be used for affiliate links, Intranet Links within your site, or Special Content Links. YaleSites already has pre-created content region named Banner Menu where it can be assigned.
Under Banner Menu select List Links
Select Add Link
Add Menu Link Title and Path (URL)
Note: Make sure Parent Link is set to <Banner Menu>. This will guarantee links show in Banner Menu.
You should now see a block named Banner Menu if you go to Structure > Blocks. You can now edit the block and assign it to the Banner Menu region.
Using CSS Injector, insert the attached CSS Rule. This will style the menu to match the YaleSites Template.
<img src=”/sites/default/files/images/exhibition-main.jpg” width=”260” height=”479” usemap=”#m_exhibitionmain” alt=”” />
YaleSites provides several ways to add Audio and Video content from external streaming services. Regardless of the method used, it is important to know that all Audio and Video files must be stored by a 3rd Party service such as Vimeo, YouTube, or SoundCloud. YaleSite provides Modules to pull the media into your site, however, you must store your files in a YouTube, Vimeo or SoundCloud account in order to use this module.
Broadcast Media Center has further information on how to distribute audio/video content through Yale official channels. If you do not have or wish to have your own account, please contact Yale Broadcast to request hosting your files on Yale Partner’s Umbrella.
As additional media providers become available we will work on making these accessible via YaleSites. Please contact the YaleSites team with suggestions.
You can either embed Audio and Video through the WYSIWYG toolbar or use Content Types and Views for more control in the presentation to create lists or featured blocks.
YaleSites Video Feature - provides the basic Content Type and Views you need to start displaying your Videos hosted on Vimeo or YouTube.
SoundCloud Audio Field - allows you to create a SoundCloud field in a custom Content Type so you can display your audio in a list Block view display.
Each of the recommended providers allow you to control access to who sees your media.
Privacy Options:
Privacy Options:
Embedding:
Privacy Options:
This tutorial will demonstrate how to create a rotating text block by creating a Custom Content Type and View. This will provide you with the basic information necessary to better understand these 2 foundation concepts when building a site using YaleSites or Drupal.
Content Types are used to capture data for your website. While Drupal provides some basic Content Types, it is often necessary to create custom content types to capture the various types of content that are unique to your site. This tutorial will provide you with the basic understanding to create a Custom Content Type.
Once your Content Type is created, you can create additional fields to refine the data that you are capturing. In this example, we’ll add 1 new field - Faculty Member Name and use 2 fields that already exist on other Content Types for your site - Date and Image.
Set image sizes and caption/alt text.
Changes to the field settings will change the Image field for each instance.
Click on Save settings.
Once your have Content Type created, you can begin to create the View that will rotate each quote using transitions to move from one to the next.
We get a lot of questions asking how to migrate data from a D6 YaleSites to D7 or from other web formats (HTML or other CMS). At this time, there is no direct method to migrate content, however, much of the data can be migrated using the Feeds Module. With a little preparation, this process can provide a relatively painless way to facilitate moving the content from one location to the other.
Feeds Module pulls data from a feed or file into a Content Type with fields that match data structure being imported. When configuring the Feeds module, the fields are mapped so the data is available in the correct fields the field names in the file are mapped to the fields in the Content Type.
**Important Note: some of the techniques in this tutorial require advanced knowledge i.e. creating Custom Content Types, Views, Excel Macros etc.
You have a page that lists the department names, chairs, phone and fax numbers. You will need a comma delaminated text file and Content Type with those fields. The Content Type needs to be structured with the same fields as the data that is being imported.
The text file would be structured like this:
The Content Type would require the following fields:
In order to import the data, the content needs to be in a format that can be read by the Feeds importer – in this case a CSV file which is a text format that can be generated with an Excel spreadsheet. If the data is already in table form, where each field is in its own column, you can copy and paste it from the web page directly to an Excel Spreadsheet. If not, you will need to do some configuration to ensure the data can be mapped to the fields in your content type. Important Note: If you do not have a unique field in your listing, you will need to create a GUID field/column to ensure no overlap of data.
If you are importing from another YaleSites (D6 or D7) you can create a page display in a View using the Table format, where each column contains a where the data displays. Be sure to set the view to display all records.
Department |
Chair |
Phone |
FAX |
English |
Michael Warner |
203-432-2233 |
203-432-7066 |
Physics |
C. Meg Urry |
203-432-3650 |
203-432-6175 |
The Content Type is where the data is transferred with the fields module. For each column in your table/or text field, you need to have a field where the data ultimately will live. For this example, we would create a Content Type with the following fields:
Once you have created your importer and your CSV file is all set, you just need to import the data.
OK, you’ve created the importer and prepared the data. You click on the Import button and nothing happens - either no records are imported or only a partial list was imported. This is actually very common because the data needs to be cleaned up a little so that is can be read by the database. Here are some things you can do to ensure that your data gets imported quickly and accurately:
The Feeds Tamper Module allows you to adjust content that a feed is importing before it is saved. When enabled, the Feeds Tamper Module provides a variety of plugins that help to “purify” the data before it is imported by decoding or encoding HTML characters, stripping HTML, changing the case of characters and many more. See the Full List of Plugins for existing plugins.
Gremlins are are unwanted characters that you can’t see but the database can (and it doesn’t like them). This is very frustrating because you can’t “see” the problem in your basic text or CSV file; but the import will stop when the database gets to the first hidden character. In order to avoid this, you need to remove the gremlins/unwanted characters before you import the file:
MAC
PC
Many sites want a people directory on their site, but the people they want to add do not have a NetID or the full People listing is overkill for what they are looking for. If you are interested in a lighter weight People Listing, you can create a People Directory in the following way.
In order for this feature to work, you must enable the following modules:
Download the attached .zip file and import that Content Types and Views (see Reusing content types and views for instructions).
Important Note: When importing Content Types, the Comments and author information is not automatically disabled. Be sure to check your Content Type by clicking on Structure > Content Types > Name of Content Type and disabling the following:
Using CSS Injector, create a rule and add the CSS that is part of the downloaded file in the above step.