--- /dev/null
+Quick Reports: Admin Instructions
+=================================
+https://yourdomain.com/report-creator
+
+The Quick Reports Administrator (QR Admin) is responsible for creating and importing select report templates into the Quick Reports add-on for Evergreen. The report templates must be created in the Evergreen Staff Client Reports module as normal, then a link to that template added to Quick Reports.
+
+Permissions
+-----------
+The QR Admin must have the following permissions:
+* ADMIN_SIMPLE_REPORTS
+* CREATE_REPORT_TEMPLATE
+* RUN_REPORTS
+* SHARE_REPORT_FOLDER
+* VIEW_REPORT_OUTPUT
+
+All library staff who will access Quick Reports must have:
+* RUN_REPORTS
+* VIEW_REPORT_OUTPUT
+
+Get Template ID
+---------------
+After a report template is designed and tested, the QR Admin must find the template ID. If he or she does not have direct database access, the ID can be found in the report output’s URL. This URL is available in the email notification that is sent when the report is complete, or can be found in the client:
+
+. View the report output in the staff client.
+. Click Debug.
+. Click Modify URL.
+. You will see a set of three numbers - the first is the Template ID, the second is the Report ID, and the third is the Output ID. You will need the first number for this task.
+
+image::images/report-id.png[Report ID]
+
+Link Templates
+--------------
+. Log into Quick Reports through a web browser: https://yourdomain.com/report-creator/
+. Click on Admin Menu.
+. Click on Link a Template.
+. Enter the Template ID found in the previous section.
+. Click Lookup.
+
+image::images/lookup.png[Import Template]
+
+. In case of error, a message will appear in red on the screen. If successful, the screen will refresh and prompt you for some basic information.
+** Name: Defaults to the template name originally created in the staff client, but you may opt to change it.
+** Description: Optional. Defaults to that created in the staff client.
+** Documentation URL: Optional. Defaults to that created in the staff client.
+** Type: Select either Count (for summed totals of patrons, bills, circulations, etc.) or List (for itemized lists of titles, patrons, etc.)
+** Group: Select a general category (Bills, Circulations, Holds, Items, Patrons).
+** Active: Yes makes it available to library staff, No hides it from library staff.
+. Click Link Template.
+
+[NOTE]
+============================
+Note: Because this has only been extensively tested with PINES reports as of this initial release, you may encounter some types of templates that do not import gracefully. This should be considered an ‘alpha’ release product with expectations that some code may need to be tweaked as additional libraries test it.
+============================
+
+image::images/import-template.png[Import Template]
+
+Manage Templates
+----------------
+If you wish to change a template’s title or category, or hide it from view at a later time, you may do so:
+
+. In Quick Reports, click on Admin Menu.
+. Click on Manage Templates.
+. Click to expand the Group that the template is in.
+. Locate the template you wish to modify and click Edit Template.
+. Modify, then click Save Template.
+
+Manage Reports
+--------------
+In certain situations, you may need to cancel a recurring report or wish to modify the email address that a recurring report goes to.
+
+. In Quick Reports, click on Admin Menu.
+. Click on Manage Reports.
+. Click on the Group you are interested in to expand the list.
+. You should see a list of the recurring Quick Reports that have been set up in that Group. You can see who scheduled the recurring report, the name, the recurrence schedule, and the recipient.
+. Click either Cancel Report or Edit Report.
--- /dev/null
+* {}
+html,
+body {
+ height: 100%;
+ font-size: 1.0em;
+ font-family: Arial, Helvetica, Verdana, sans-serif; /* default font */
+ background: linear-gradient(#00593d, #007a54); /* background color scheme */
+ background: -moz-linear-gradient(#00593d, #007a54);
+ background: -o-linear-gradient(#00593d, #007a54);
+ background: -webkit-linear-gradient(#00593d, #007a54);
+ background-color: #007a54;
+}
+#page {
+ padding: 0 10px 0 10px; /* default page padding */
+}
+#header {
+ height: 100px; /* header height – make larger than logo height */
+}
+#logo { /* Logo position */
+ padding-left: 5px;
+ padding-top: 4px;
+}
+#logoImage {
+ background: url(../../opac/images/small_logo.png) no-repeat; /* logo image */
+ border: none;
+ height: 60px; /* logo height */
+ width: 200px; /* logo weight */
+ margin: 20px 0 0 0;
+ position: absolute
+}
+#logoText { /* The text after the logo image */
+ position: absolute;
+ margin: 35px 0 0 210px;
+ color: #fff;
+ font-style: italic;
+ font-family: Georgia, serif;
+ font-size: 16pt;
+}
+#welcome { /* Welcome text in upper right */
+ position: absolute;
+ top: 30px;
+ right: 20px;
+ color: #fff;
+ font-family: Arial;
+ font-size: 10pt;
+ font-weight: bold;
+}
+#logoutLink { /* The logout link properties */
+ color: #339966; /* The logout link color */
+ position: absolute;
+ right: 0px;
+}
+#headerRight {
+ position: absolute;
+ right: 15px
+}
+#headerRight img {
+ margin: 0 1px 0 0;
+}
+#footer {
+ font-family: arial;
+ font-size: 9pt;
+ color: #fff;
+ padding-left: 10px
+}
+#menu { /* Menu properties */
+ font-size: 11pt;
+ color: #339966;
+ height: 30px;
+}
+.menuItem {
+ color: #339966; /* Menu text color */
+ font-weight: bold;
+}
+.menuItemSelected {
+ color: #fff;
+ font-weight: bold;
+ background-color: #339966;
+}
+.rightMenuItem {
+ position: absolute;
+ right: 18px
+}
+.menuItemLink:link,
+.menuItemLink:visited,
+.menuItemLink:hover,
+.menuItemLink:active {
+ text-decoration: none
+}
+.adminMenuItem:link,
+.adminMenuItem:visited,
+.adminMenuItem:hover,
+.adminMenuItem:active {
+ font-weight: bold;
+ color: #0066ff;
+ text-decoration: none
+}
+#content {
+ padding: 3px 0 0 10px;
+ min-height: 500px;
+ background-color: #fff
+}
+#content table {
+ border-spacing: 3px;
+ border-collapse: separate;
+}
+#content td {
+ padding: 4px;
+ font-size: 0.9em;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ vertical-align: top
+}
+#content input {
+ font-size: 1.0em;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+}
+#content textarea {
+ font-size: 1.0em;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ width: 98%;
+ min-width: 500px;
+ height: 60px;
+}
+#content select {
+ font-size: 1.0em;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+}
+.submitButton {
+ color: #fff;
+ background-color: #15513d;
+ height: 30px;
+ border: none;
+ font-family: arial;
+ font-size: 11pt;
+}
+.noPadding {
+ padding: 0px !important;
+}
+.noSpacing {
+ border-spacing: 0px !important;
+}
+.inputName {
+ width: 98%;
+ min-width: 500px;
+}
+.descriptionTextArea {
+ height: 180px !important;
+ width: 900px !important
+}
+.accessibility {
+ color: #fff;
+}
+.defaultTD {
+ background: url(../images/table-tdborder.gif) repeat-x scroll center bottom #fff;
+}
+.defaultLink:link,
+.defaultLink:visited,
+.defaultLink:hover,
+.defaultLink:active {
+ color: #0066ff;
+ text-decoration: none
+}
+.groupLink:link,
+.groupLink:visited,
+.groupLink:hover,
+.groupLink:active {
+ font-size: 11pt;
+ font-weight: bold;
+ color: #0066ff;
+ text-decoration: none
+}
+.homePageLink:link,
+.homePageLink:visited,
+.homePageLink:hover,
+.homePageLink:active {
+ color: #15513d;
+ font-weight: bold;
+ text-decoration: none
+}
+#homePageTitle {
+ color: #15513d;
+ font-weight: bold;
+ font-size: 18pt;
+}
+#adminPageTitle {
+ font-weight: bold;
+}
+.orgunitSelect,
+.userMultiSelect {
+ min-width: 200px;
+ height: 100px;
+}
+.orgunitSelectedDiv,
+.userMultiSelectedDiv {
+ width: 200px;
+ height: 100px;
+ overflow-y: auto;
+ overflow-x: no
+}
+.selectAllLink:link,
+.selectAllLink:visited,
+.selectAllLink:hover,
+.selectAllLink:active {
+ color: #00f;
+ text-decoration: none
+}
+.hideRow {
+ display: none;
+}
+.userText {
+ width: 200px;
+ border: 1px solid #888;
+}
+.userInteger {
+ width: 90px;
+ border: 1px solid #888;
+}
+.userDate {
+ width: 80px;
+}
+#runDate {
+ width: 80px;
+}
+.reportRunning {
+ background-color: #339966;
+ color: #fff
+}
+.reportStatusBar {
+ padding: 0px !important;
+ text-align: center;
+ font-weight: bold;
+ color: #000;
+ background-color: #bbdd99;
+}
+.errorText {
+ color: #f00;
+}
+.successText {
+ color: #339966;
+}
+.fieldDoc {
+ text-decoration: underline;
+ font-weight: bold;
+}
+.ui-datepicker-trigger {
+ margin-left: 2px;
+ vertical-align: text-bottom;
+}
+.imageBottom {
+ vertical-align: text-bottom;
+}
+.nowrap {
+ white-space: nowrap;
+}
+.maxWidth300 {
+ max-width: 300px;
+}
+.maxWidth500 {
+ max-width: 500px;
+}
--- /dev/null
+Quick Reports: End User Instructions
+====================================
+_https://yourdomain.com/report-creator_
+
+image::images/welcome-screen.png[Welcome Screen]
+
+Running a Report
+----------------
+
+. Select either the *New Quick Report* option from the home page or the *Quick Report Templates* from the top menu to begin your first report.
+. Click on the name of a report category (Bills, Circulations, Holds, Items, Patrons) to view the types of reports available in that category.
+. To learn more about each report, click on the *Description* link. This will open a pop-up window describing what information the report will produce, followed by a technical description of what the report will display and the report filters. Click the ‘X’ to close the pop-up window.
+. Click *Create a Report* to open the report template.
+. Type in a *Report Name* of your choice and fill in the *Choose Report Filters* options. It is a good idea to make the *Report Name* as descriptive as possible so that you may easily identify it in a list of reports. The *Report Filters* will be different for each template but will often ask you to choose which library/libraries the report is for (CTRL-Click to select multiple branches), and will often ask you for a date or range of dates. You may occasionally be asked for specific Circ Modifiers, Shelving Locations, Patron Permission Groups, etc.
+[NOTE]
+=======================
+_About Date Ranges_: If you are asked to enter a date range, enter the oldest date first. A “Real Date” is a calendar date such as “09/14/2015” and a “Relative Date” is a count of a number of days “7 days ago.” If you are setting up a recurring report, be sure to use relative dates (if you use real dates, it will run the report on the same set of dates each time it recurs).
+=======================
+. Click *Run Report* to submit your report to the server to be processed.
+
+Other Report Template Options
+-----------------------------
+* *Report Description*: This is an optional field that you can use to store information about the report for later reference (such as the person who asked you to run the report, the reason why you ran the report, why you chose the filter options you did). This information will not appear on the report output.
+* *Report Output Options – Recurrence Interval*: If you just wish to run the report once, leave the default as Run one time only. If you wish the report to automatically run on a scheduled basis, change the option to Recur every and choose from the dropdown options for a number of days/weeks/months.
+* *Report Output Options – Run Time*: If you wish to run the report immediately, leave the default as “As soon as possible.” If you wish to run it over night or on another day (particularly if you are scheduling a repeating report), then choose the *At a scheduled time* on options. If running system-intensive reports that take a significant amount of time (particularly weeding reports), it is a good idea to schedule them to run overnight.
+* *Email Notification*: If your account profile has an email address associated with it, it will be automatically filled in. You may remove it, change it, or add multiple email addresses separated by commas. When the report is ready, the system will send an automated email notification with a link to the report results to any email address listed there. If you send the report to someone else using this function, the person receiving the message will need to have an account with the VIEW_REPORT_OUTPUT permission enabled in order to open the report results. If you need to send the report to someone else that does not have Evergreen reports permissions, then you can save the resulting Excel file to your local drive, and then attach it to an email to distribute.
+* *Output Options*: To see this option, click *Show All Options*. By default, your report will be created in *Excel* (preferred by most users) and *HTML* (for viewing in the browser). Depending on your needs, you may also choose *CSV* (comma-separated values), and you may choose to have it create simple bar and/or line charts with the *HTML* output as well.
+* *Pivot Label Column* and *Pivot Data Column*: To see these options, click Show All Options. Use these to change the layout of the resulting report output (for example, have the labels display on the side instead of the top).
+* *Save as Draft*: If you begin filling out a report form and wish to stop and return later to finish filling it out, you may use the *Save as Draft* option. To complete it at a later time, click on the *My Draft Reports* menu option.
+
+Viewing Your Report Results
+---------------------------
+. Click on *My Quick Reports* to see the list of your reports that you have already run, that are currently running, and that you have scheduled to run in the future.
+. Click on the *Category* of your report. The reports are organized in the same categories as the templates (Bills, Circulations, Holds, Items, Patrons).
+
+_In the example shown below, the “Items Added in March” report is scheduled to be run and the following reports have completed._
+
+image::images/report-results.png[Report Results]
+
+If a report is scheduled and has not yet been run, you have the option to *Cancel Report* or *Edit Report* (change options such as the email address to which you wish to send the notification).
+
+If a report has already been run, you have the option to view the report (by clicking on the report title), to *Run Again* (this will allow you to change the selected filters and notification options), or to *Delete Report* (which removes it from your list).
+
+. 3. View your completed report by clicking on the report title. A new browser tab will open and may prompt you for your Evergreen login name and password. After you log in, you will be presented with viewing options.
+
+If you chose the default report output options, you will see a page with links to *Tabular Output* (HTML, viewed in the browser screen) and to *Excel Output*. Most people prefer to view the results in Excel because they are able to take advantage of Excel’s sorting and calculating functions to further organize data and create charts.
+
+The one small issue with using Excel is that it does not know how to display long numbers such as barcodes properly, so you may see columns of data that say “5.07E+13” or similar. After you open the file in Excel, select the column of data that contains barcodes, right-click on it, and select Format Cells.
+
+On the Number tab, change the Category to Number and the Decimal Places to 0. Click OK.
--- /dev/null
+Evergreen Quick Reports Creator Installation Guide
+==================================================
+
+Prerequisites
+-------------
+
+. A working Apache web server, with PHP enabled
+
+** *Install PHP and extensions* (assumes Debian/Ubuntu based system), as root:
+----
+apt-get install php5 php5-gd php5-pgsql php5-memcache php-pear
+pecl install memcache # Note this step may not be required with later Ubuntu versions
+----
+** Restart Apache to activate PHP
+----
+/etc/init.d/apache2 restart
+----
+** Create the directory report-creator. We recommend using the preconfigured Evergreen ILS vhost and placing the files in its root (/openils/var/web)
+----
+mkdir /openils/var/web/report-creator
+----
+** Since Apache runs as opensrf user in most Evergreen installs, we must allow report-creator dir to be writable by the opensrf user (adjust if you are using a different user)
+----
+chown opensrf:opensrf /openils/var/web/report-creator
+----
+. PHP
+** This version of Quick Reports was tested on PHP 5.3.10 with the following extensions:
+----
+pdo_pgsql
+memcache
+----
+. Need to force the /openils/var/web/report-creator/index.php to load by default, utilizing an .htaccess file (included in this source code) or by creating a new file at /openils/var/web/report-creator/.htaccess containing;
+----
+DirectoryIndex index.php
+----
+
+Installation
+------------
+
+[NOTE]
+===========================
+ Note: all paths are relative to the directory where you installed the software
+
+===========================
+
+. Create a new database schema and tables in your pre-existing PostgreSQL instance, installed by Evergreen, by executing the SQL commands in the file entitled +sql/quick_reports_setup.sql+
+
+** The default schema that will be created is named quick_reports. This can be edited if you want to use a different schema. Simply edit the quick_reports_setup.sql according to your preferred schema name.
+
+. If necessary, grant SELECT and UPDATE privileges to the user account that will be used to connect to the database from php. Depending on how you configure the application in the steps below, this is either the user defined in the <reporter> node of the file /openils/conf/openils.xml or a user you specify in the config file below.
+
+. Extract (or pull from Git) the report-creator application files into the previously created /openils/var/web/report-creator directory so that directory is populated and contains the PHP, CSS, and other code files for Quick Reports.
+
+. If necessary, change ownership of the files so they can be executed by the web server (typically chown them to the opensrf user).
+
+. Validate that the web server is able to execute php scripts by executing <install_location>/tools/testphp.php from your browser. You should see
+----
+Hello World! PHP is running.
+----
+. Configure the production.config.php file located in the report-creator/config directory. Refer to the Configuration Parameters section below.
+
+. Test the connection to PostgreSQL by running <install_location>/tools/testdb.php from your browser.
+** The tool will attempt to connect to the database and execute a query that returns a count of templates in the reporter.template table. You should see output similar to:
+----
+[db:protected] => PDO Object
+15 templates were found in reporter.template
+----
+** Check the php error logs for errors if you are not seeing connection information or the number of templates displayed, or if errors are displayed.
+
+. If you will be using memcache to store sessions (for example, in a clustered “brick” environment), test the connection to the memcache server by running <install_location>/tools/testmemcache.php from your browser.
+** If there are any error messages then there is a problem connecting to the memcache server. Resolve the issue and retest.
+** If successful, you will see the following message:
+----
+A session variable was set. Please refresh the page.
+----
+** Refresh the page by pressing F5. You will then see:
+----
+Session variables appear to be operating correctly.
+Array ( [lastAccessTime] => 1429379837 [testMemcache] => ok
+----
+
+[NOTE]
+===============================
+Note: The value of last AccessTime that you see will be different since it represents the current timestamp. If you refresh the page again, the lastAccessTime should increase. If it does then memcache sessions are working correctly.
+===============================
+
+** Check the php error logs for errors if you are not seeing this behavior.
+
+. A second tool for testing memcache is provided. Execute this from your browser:
+
++<install_location>/tools/testmemcache2.php>+
+
+This tool is simpler and will display the version of memcache. Check the php error logs for errors if the version is not displayed.
+
+. Test the software by executing https://www.yourdomain.tld/report-creator in your preferred web browser. You should be able to log in with a valid Evergreen user with the proper permissions to access the Quick Reports as shown below.
+
+[NOTE]
+=================================
+Note: The web server must be able to execute index.php without having to include index.php on the URL (see prerequisite note about .htaccess)
+
+=================================
+
+Evergreen User Permission Requirements
+--------------------------------------
+
+The QR Admin must have the following permissions:
+* ADMIN_SIMPLE_REPORTS
+* CREATE_REPORT_TEMPLATE
+* RUN_REPORTS
+* SHARE_REPORT_FOLDER
+* VIEW_REPORT_OUTPUT
+
+All library staff who will access Quick Reports must have:
+* RUN_REPORTS
+* VIEW_REPORT_OUTPUT
+
+Troubleshooting
+---------------
+
+If you are still having problems with php you can check your installation by creating a phpinfo page and execute it from your web browser. The contents of the page should be:
+
+----
+<?php
+phpinfo();
+?>
+----
+
+Save this file with a .php extension and execute it from your browser. Check the configuration for the following sections.
+* memcache (if you are using memcache to store session information)
+* PDO
+* pdo_pgsql
+* pgsql
+
+[NOTE]
+=============
+IMPORTANT: Be sure to remove this file when you are done. It provides important configuration information that could potentially be used to compromise the security of your environment.
+
+=============
+
+.CONFIGURATION PARAMETERS
+[options="header"]
+|==============================
+| PARAMETER | DESCRIPTION | DEFAULT | ADDITIONAL REFERENCE
+| ERROR_REPORTING_LEVEL | php error reporting level | E_ALL | http://php.net/manual/en/errorfunc.constants.php
+| DEFAULT_TIME_ZONE | | | http://php.net/manual/en/timezones.america.php
+| SITE_ROOT | The application directory | / | This is the <install_location> used in the instructions above.
+| SESSION_TIMEOUT | Sessions expire after this many minutes | 120 | ERROR_REPORTING_LEVEL
+| BROWSER_PAGE_CACHE_TIMEOUT | Browser page cache time in seconds | 20 | DEFAULT_TIME_ZONE
+| MAX_LOGIN_ATTEMPTS_ALLOWED | Max login attempts | 3 | SITE_ROOT
+| USERS_ALLOWED_PERMISSIONS | Comma separated string of integers | 141,143 | SESSION_TIMEOUT
+| ADMINS_ALLOWED_PERMISSIONS | Comma separated string of integers | 1200 | Users with these permission (defined in the table permission.usr_perm_map) will be allowed to login and use the application and will be given access to the admin functions.
+| ALLOW_GROUP_PERMISSIONS | Boolean | false | If true, grants permissions to users who belong to a group (defined in permission.grp_perm_map) that has permissions for: USERS_ALLOWED_PERMISSIONS ADMINS_ALLOWED_PERMISSIONS
+| ADMIN_PERMISSION_REQUIRED_MESSAGE | Text | | Error message that is displayed if a user attempts to access admin functions without sufficient permissions.
+| DB_SCHEMA | Text | quick_reports | The name of the database schema that was created during the setup procedure.
+| PARENT_FOLDER_NAME | Text | Quick Reports | The name of the folder where reports are saved in the original reporting tool.
+| REPORT_FOLDER_NAME | Text | Reporter.report_folder | The database table that contains the report folder info.
+| OUTPUT_FOLDER_NAME | Text | Reporter.output_folder | The database table that contains the report output folder info.
+| ADMIN_SCHEDULED_REPORTS_QUERY_DAYS | Integer | 30 | Number of days in the past to include when an admin gets a list of scheduled reports. Currently running and future reports will always be included.
+| SHOW_DOC_URL | Boolean | True | For v4 templates, indicates whether to show the DocURL along with the description on the Quick Report Templates page.
+| SHOW_FIELD_DOC | Boolean | True | For v4 templates, indicates whether to show the additional Field Doc information for report filter fields when creating or editing a report.
+| PGSQL_USE_OPENSRF_XML_CONFIG | Boolean | True | If true, obtain PostgreSQL login information from the opensrf config fle. This will be slower but more secure. If false, define the PostgreSQLl login information explicitly in this config file.
+| OPENSRF_XML_PATH | Text | /openils/conf/opensrf.xml | This is the file used to obtain config information when either PGSQL_USE_OPENSRF_XML_CONFIG or MEMCACHE_USE_OPENSRF_XML_CONFIG is set to true.
+| PGSQL_HOST | PostgreSQL host | | Required when PGSQL_USE_OPENSRF_XML_CONFIG is false
+| PGSQL_PORT | PostgreSQL port | | Required when PGSQL_USE_OPENSRF_XML_CONFIG is false
+| PGSQL_DBNAME | PostgreSQL database name | | Required when PGSQL_USE_OPENSRF_XML_CONFIG is false
+| PGSQL_USER | PostgreSQL user name | | Required when PGSQL_USE_OPENSRF_XML_CONFIG is false. Ignored when true.
+| PGSQL_PASSWORD | PostgreSQL passwrord | | Required when PGSQL_USE_OPENSRF_XML_CONFIG is false. Ignored when true.
+| SESSIONS_IN_MEMCACHE | Boolean | True | If true, store session data in memcache. This is required if there is more than one server running this application and sticky sessions are not being implemented by a load balancer to ensure a user always hits the same server. If false, standard php sessions are used and stored on the local drive of the server. This is best when there is only one server running the application or if there are multiple servers, the load balancer is using sticky sessions to ensure a user always accesses the same server.
+| MEMCACHE_USE_OPENSRF_XML_CONFIG | Boolean | True | If SESSIONS_IN_MEMCACHE is true then this setting determines where to get the memcache configuration information. If true, the memcache configuration is obtained from the opensrf config file specified in OPENSRF_XML_PATH
+| MEMCACHE_PROTOCOL_1 | Protocol | Tcp | Protocol to use to access the primary memcache server.
+| MEMCACHE_PROTOCOL_2 | Protocol | Tcp | Protocol to use to access the secondary memcache server.
+| MEMCACHE_PARAMS_1 | Text | ?persistent=1&weight=2&timeout=2&retry_interval=10 | Parameter string to use when accessing the primary memcache server
+| MEMCACHE_PARAMS_2 | Text | ?persistent=1&weight=2&timeout=2&retry_interval=10 | Parameter string to use when accessing the secondary memcache server
+| MEMCACHE_HOST_1 | Primary memcache host name or IP address | | Required when MEMCACHE_USE_OPENSRF_XML_CONFIG is false. Ignored when true.
+| MEMCACHE_HOST_2 | Secondary memcache host name or IP address | | Required when MEMCACHE_USE_OPENSRF_XML_CONFIG is false. Ignored when true. Comment out this setting if there is only one memcache server or set it to the same value as MEMCACHE_HOST_1.
+| MEMCACHE_PORT_1 | Port to use to access the primary memcache server | 11211 | Required when MEMCACHE_USE_OPENSRF_XML_CONFIG is false. Ignored when true.
+| MEMCACHE_PORT_2 | Port to use to access the secondary memcache server | 11211 | Required when MEMCACHE_USE_OPENSRF_XML_CONFIG is false. Ignored when true.
+|==================================