
Author: cartmega.com -  support@cartmega.com (c) 2018

Extension:
----------
realDynamicListsMssql_for_osTicket_1.14.x [plugin]


Description
-----------
Real Dynamic Lists (MSSQL) is a powerful plugin, which populates your Custom Lists with live database items from MS SQL Servers and keeps them always updated!
The process is very light-weight and fast. It happens only whenever the list is requested, it uses only a single database call and it only adds/removes the differences found between your table and the list.

Details:
--------
	All that the plugin needs is a Custom List which you have already created and named. Be careful, any items already in the list will be removed!
	Then you need to configure the plugin in order to populate your list, by giving it directions to the source table where your data is contained.
	
       The plugin modifies a single core file 'class.list.php', in that it changes the name of 'class DynamicList' into 'class DynamicListCore'. That's it!
       The process is automatic and you will never even realize it happened. Even during an upgrade, it will auto-detect the changes and take appropriate action.
                   
	The plugin integrates into osTicket seamlessly via the osTicket plugins installation mechanism.
	All plugin options can be managed in the administration backend.

	Please Note:
	------------
	1. Plugin configuration of connections to remote servers can be time consuming. 
	   Please be patient and wait until the browser stops processing, while the plugin tries to access the server and bring back the results.
	   
	2. Wrong connection credentials and DSN strings can easily result in over 30s delays before an error message is displayed. Please be patient.
	   After configuration is successfully saved, the custom list should be populated in a second when accessed from inside your forms. 

	3. You may need to increase your maximum PHP execution time if you start encountering '500 Internal Server Errors' during plugin configuration.
	   To increase execution time, you will need to modify different parameters, depending on your web server mode (e.g. Apache mod_php, CGI, FCGId, FPM).
	   If you get 500 errors running the following simple script, then you must contact your system administrator for help.
		<?php
		sleep (40); // enter any number over 31
		echo "No problems so far... try increasing the sleep time.<br>";
		?>

	4. SQL Server connection is achieved via PDO_SQLSRV. 
	   Since username and password are supplied on separate input fields, you only need to supply the DSN in the 'Connection String' field.
	   e.g. sqlsrv:Server=111.111.111.111,1433;Encrypt=1;TrustServerCertificate=1;LoginTimeout=10;
	   or   sqlsrv:Server=111.111.111.111\SQLEXPRESS;Database=dbname;Encrypt=1;TrustServerCertificate=1;LoginTimeout=10;
	   
	   NOTE::
	   1. With a named instance you must specify a database name also.
	   2. Encrypt=1; can help safeguard the data transfers between client and server.
	   3. TrustServerCertificate=1; can help when a self signed certificate is used by the SQL server and Encrypt=1 is specified.
	   4. LoginTimeout=10; can help to reduce the time waiting for bad connections to fail.  
	      The default login timeout is set to 15 seconds by the driver. You can set a shorter timeout if necessary. 
	      Yet, a login timeout of less than 10 seconds may not be reliable and/or accurate. 
	   More examples can be found here: https://www.php.net/manual/en/ref.pdo-sqlsrv.connection.php
	   
	4. The password for each connection is stored encrypted securely in the database.
	   You may notice a blank password field when the form is saved, but rest assured that the password is still there and will reappear when the form is refreshed.
	   
Installation
~~~~~~~~~~~~

	!!! KINDLY HELP US SPREAD THE WORD - RATE OUR MODULE ON THE MARKETPLACE YOU GOT IT FROM !!!      

        You can install our plugin in 3 easy steps:
        1. UNZIP: 
        	Download our plugin.
        	Extract its contents onto your hard drive.
        	        
        2. FTP: 
	       FTP into your osTicket installation & find the osTicket root directory.
	       On your computer, find the folder 'include' where you extracted the zip file.
	       Upload this folder into the osTicket root directory on the server.

        3. Install: via the built-in osTicket plugin installer
	       Login into osTicket
	       Go to Admin panel > Manage > Plugins
	       Click [Add New Plugin]. You should see a list of available plugins to install
	       Click [Install] next to the name of our plugin
	       You will be informed: 'Successfully installed a plugin'

	Finally, in the list of 'Currently Installed Plugins' click on our plugin to configure it.
	Now you have to edit the plugin to your specifications.
 	Remember, you have to enable the plugin in order to activate it. 
 	You can do this by going to Admin panel > Manage > Plugins, check the plugin and click More > [Enable].
 	
 	You can also uninstall the plugin without any issues whatsoever.
      

Software disclaimer
-------------------
Software developed by cartmega.com is provided 'as is' without warranty of any kind, either express or implied, including, but not limited to, the implied warranties of fitness for a purpose, or the warranty of non-infringement. 

Without limiting the foregoing, cartmega.com makes no warranty that:

the software will meet your requirements;
the software will be uninterrupted, timely, secure or error-free;
the results that may be obtained from the use of the software will be effective, accurate or reliable;
the quality of the software will meet your expectations;
any errors in the software obtained from the cartmega.com web site will be corrected.

Software and its documentation:
could include technical or other mistakes, inaccuracies or typographical errors. cartmega.com may make changes to the software or documentation made available on its web site;
may be out of date, and cartmega.com makes no commitment to update such materials;
cartmega.com assumes no responsibility for errors or omissions in the software or documentation available.

In no event shall cartmega.com be liable to you or any third parties for any special, punitive, incidental, indirect or consequential damages of any kind, or any damages whatsoever, including, without limitation, those resulting from loss of use, data or profits, whether or not cartmega.com has been advised of the possibility of such damages, and on any theory of liability, arising out of or in connection with the use of this software.

The use of the software is at your own discretion and risk and with agreement that you will be solely responsible for any damage to your computer system or loss of data that results from such activities. No advice or information, whether oral or written, obtained by you from cartmega.com or from the cartmega.com web site shall create any warranty for the software.


CHANGELOG
---------
# Changelog
All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [1.1.2] - 2022-02-07
### Added
- Changed naming convention.

## [1.1.1] - 2020-07-04
### Fixed
- PHP warning messages in debug mode. Could not login in debug mode.
### Added
- Better functionality when write access to INCLUDE_DIR is prohibited.

## [1.1.0] - 2020-06-25
### Added
- Major overhaul. MSSQL server access only on save, to keep configuration changes fast.

## [1.0.3] - 2020-06-25
### Added
- MS SQL Server support

## [1.0.2] - 2020-05-01
### Added
- 1.14.x support

## [1.0.1] - 2019-11-09
### Added
- 1.12.x support

## [1.0.0] - 2019-10-04
### Added
- Core functionality
