Plugin: Acalog (Basic)

Purpose

Use this plugin to index a set of programs/courses from the Modern Campus Acalog API.

This plugin uses the Acalog API to retrieve a list of programs/courses and generate a list of URLs that are added to a web data source’s start URLs.

Although the generated start URLs can be added to any web data source, we recommend using a separate dedicated web data source for indexing your Acalog content.

Generated URLs

This plugin generates URLs in the following format:

  • Acalog program URLs: <https://catalog.example.edu>/preview_program.php?catoid=<CatalogID>&poid=<ProgramID>

  • Acalog course URLs: <https://catalog.example.edu>/preview_course_nopop.php?catoid=<CatalogID>&coid=<CourseID>

Only the courses/program with ACTIVE-VISIBLE status in the published but NOT archived catalog will be added to the web data source start URLs.

When to use this plugin

Use this plugin if you have program and course content in Acalog, and you only have basic search requirements for discovering your Acalog content via your search.

  • This plugin indexes the HTML pages generated by the Acalog system and provides a similar result to crawling a website.

Usage

Enable the plugin

  1. Select Plugins from the side navigation pane and click on the Acalog (Basic) tile.

  2. From the Location section, select the data source to which you would like to enable this plugin from the Select a data source select list.

The plugin will take effect after setup steps and an advanced > full update of the data source has completed.

Configuration settings

The configuration settings section is where you do most of the configuration for your plugin. The settings enable you to control how the plugin behaves.

The configuration key names below are only used if you are configuring this plugin manually. The configuration keys are set in the data source configuration to configure the plugin. When setting the keys manually you need to type in (or copy and paste) the key name and value.

Acalog subdomain

Configuration key

plugin.acalog-basic.config.subdomain

Data type

string

Required

This setting is required

Your subdomain used to access the Acalog API, e.g. 'exampledomain'. This will result in API requests to https://exampledomain.apis.acalog.com

Acalog API Key

Configuration key

plugin.acalog-basic.encrypted.api-key

Data type

Encrypted string

Required

This setting is required

Your Acalog API key, used to access the Acalog API.

Acalog frontend URL prefix

Configuration key

plugin.acalog-basic.config.frontend-url

Data type

string

Value format

Allowed values must match the regular expression:

((http|https)://)(www.)?[a-zA-Z0-9@:%._\+~#?&//=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%._\+~#?&//=]*)

Required

This setting is optional

Set this to the URL that is used to access the Acalog pages. This should be a web domain that includes the protocol but omits a trailing slash. (e.g. https://catalog.example.edu)

This URL is prepended to the generated URLs to provide direct access to the Acalog generated HTML page for a program or course.

Crawl courses catalog

Configuration key

plugin.acalog-basic.config.crawl-courses

Data type

boolean

Default value

false

Required

This setting is required

Set this to true to index the list of courses.

Crawl programs catalog

Configuration key

plugin.acalog-basic.config.crawl-programs

Data type

boolean

Default value

false

Required

This setting is required

Set this to true to index the list of programs.

Map course meta?

Configuration key

plugin.acalog-basic.config.map-course-meta

Data type

boolean

Default value

false

Required

This setting is optional

Course meta - Name

Configuration key

plugin.acalog-basic.config.course-meta-name

Data type

string

Required

This setting is optional

Set this to corresponding FB Meta class name to save <name> value in Acalog API, leave it as empty if no mapping is required.

Course meta - Alt name

Configuration key

plugin.acalog-basic.config.course-meta-altname

Data type

string

Required

This setting is optional

Set this to corresponding FB Meta class name to save <altname> value in Acalog API, leave it as empty if no mapping is required.

Course meta - Prefix

Configuration key

plugin.acalog-basic.config.course-meta-prefix

Data type

string

Required

This setting is optional

Set this to corresponding FB Meta class name to save <prefix> value in Acalog API, leave it as empty if no mapping is required.

Course meta - Code

Configuration key

plugin.acalog-basic.config.course-meta-code

Data type

string

Required

This setting is optional

Set this to corresponding FB Meta class name to save <code> value in Acalog API, leave it as empty if no mapping is required

Course meta - Department

Configuration key

plugin.acalog-basic.config.course-meta-department

Data type

string

Required

This setting is optional

Set this to corresponding FB Meta class name to save <type> value in Acalog API, leave it as empty if no mapping is required.

Need to set either plugin.acalog-basic.config.acalog-crawl-programs or plugin.acalog-basic.config.acalog-crawl-courses to true, or otherwise this plugin will not perform any operation.
<?xml version="1.0" encoding="UTF-8" ?>
<catalog>
    <search>
        <hits>2</hits>
        <time>0.03559374809265137</time>
        <results>
            <result>
                <id>30005</id>
                <name>Funnelback Introduction</name>
                <altname>FUNN 001 - Funnelback Introduction</altname>
                <state>
                    <code>1</code>
                    <name>Active-Visible</name>
                    <parent>
                        <code>1</code>
                        <name>Active-Visible</name>
                    </parent>
                </state>
                <prefix>FUNN</prefix>
                <code>001</code>
                <type id="1806">Squiz</type>
            </result>
            <result>
                <id>30002</id>
                <name>Funnelback Introduction (Part II)</name>
                <altname>FUNN 002 - Funnelback Introduction (Part II)</altname>
                <state>
                    <code>2</code>
                    <name>Active-Hidden</name>
                    <parent>
                        <code>1</code>
                        <name>Active-Visible</name>
                    </parent>
                </state>
                <prefix>FUNN</prefix>
                <code>002</code>
                <type id="1806">Squiz</type>
            </result>
        </results>
    </search>
    <status>success</status>
</catalog>
No additional setup is required in xml.cfg for the meta class name used in the plugin configuration.

Recommend configuration settings

  • Set up separate web data sources for courses and programs unless there is a strong use case.

  • Set up the data source with an empty start URL. The plugin will ensure that the Acalog generated URLs are added before your data source begins crawling.

  • Set up your include patterns to https://<FRONTEND_URL>/preview_course_nopop.php (Course) or/and https://<FRONTEND_URL>/preview_program.php (Program).

  • When publishing / archiving an academic year (catalog in Acalog API), update changeover percent to 0, then run a full update of your data source to ensure the catalog is replaced. After a successful update, reset your changeover percent to an appropriate value (e.g. changeover percent: 75%).

Examples

Gather programs only from the Acalog API

This example will gather only current course content from the Acalog API at https://exampledomain.api.acalog.com/ and add start URLs that look like https://catalog.funnelback.com/preview_program.php?catoid=15&poid=40098 for each program.

Configuration key name Value

Acalog subdomain

exampledomain

Acalog frontend URL prefix

http://catalog.example.com

Acalog API key

****************

Crawl programs catalog

true

Gather courses and corresponding meta from the Acalog API

This example will gather only current course content from the Acalog API at https://exampledomain.api.acalog.com/ and add start URLs that look like http://catalog.example.com/preview_course_nopop.php?catoid=15&coid=30005 for each course, and map the name, prefix, code and department, but not altname to meta class in meta.cfg.

Configuration key name Value

Acalog subdomain

exampledomain

Acalog frontend URL prefix

http://catalog.example.com

Acalog API key

****************

Crawl programs catalog

false

Crawl courses catalog

true

Map course meta?

true

Course meta - Name

courseTitle

Course meta - Alt name

(Empty)

Course meta - Prefix

courseSubject

Course meta - Code

courseCode

Course meta - Department

department

Gather programs and courses from the Acalog API

This example will gather only current course content from the Acalog API at https://exampledomain.api.acalog.com/ and add start URLs that look like https://catalog.funnelback.com/preview_program.php?catoid=15&poid=40098 for each program, and http://catalog.example.com/preview_course_nopop.php?catoid=15&coid=30005 for each course.

Configuration key name Value

Acalog subdomain

exampledomain

Acalog frontend URL prefix

http://catalog.example.com

Acalog API key

****************

Crawl programs catalog

true

Crawl courses catalog

true

Map course meta?

false

Change log

[1.1.0]

Added

  • Add the course meta extraction from Acalog API

Changed

  • Updated the wiremock to the latest version (3.9.0)

See also