This commit is contained in:
kaetemi 2014-08-18 21:14:27 +02:00
commit 5dd07248a1
11 changed files with 146 additions and 64 deletions

View file

@ -3,13 +3,36 @@
* Handles the database connections. It uses PDO to connect to the different databases. It will use the argument of the constructor to setup a connection to the database * Handles the database connections. It uses PDO to connect to the different databases. It will use the argument of the constructor to setup a connection to the database
* with the matching entry in the $cfg global variable. * with the matching entry in the $cfg global variable.
* *
* --> First create an object of dblayer --> $db = new DBLayer('short database name used in config')
*
* --> Insert --> $db->insert( $tb_name, $data )
* $tb_name = table name in which we want to insert data
* $data = array of data that needs to be inserted in format('fieldname' => $value) where fieldname must be a field in that table.
*
* --> select --> $db->select( $tb_name, $data, $where )
* $tb_name = table name which we want to select
* $data = array of data which is then required in WHERE clause in format array('fieldname'=>$value) fieldname must be a field in that table.
* $where = string in format ('fieldname=:fieldname') where :fieldname takes it's value from $data array.
*
* --> update --> $db->update( $tb_name, $data, $where )
* $tb_name = table name which we want to update
* $data = array of data which contains the filelds that need to be updated with their values in the format('fieldname' => $value,...) where fieldname must be a field in that table.
* $where = string contains the filename with a value at that field in the format ('fieldname = $value') where fieldname must be a field in that table and $value is value respect to that field.
*
* --> delete --> $db->delete( $tb_name, $data, $where )
* $tb_name = table name where we want to delete.
* $data = array of data which is then required in WHERE clause in format array('fieldname'=> $value) where fieldname must be a field in that table.
* $where = string in format ('fieldname=:fieldname') where :fieldname takes it's value from $data array.
*
*
* @author Daan Janssens, mentored by Matthew Lagoe * @author Daan Janssens, mentored by Matthew Lagoe
*
*/ */
class DBLayer { class DBLayer {
private $PDO; private $PDO;
/** /**
* *< The PDO object, instantiated by the constructor * The PDO object, instantiated by the constructor
*/ */
/** /**
@ -17,6 +40,7 @@ class DBLayer {
* Instantiates the PDO object attribute by connecting to the arguments matching database(the db info is stored in the $cfg global var) * Instantiates the PDO object attribute by connecting to the arguments matching database(the db info is stored in the $cfg global var)
* *
* @param $db String, the name of the databases entry in the $cfg global var. * @param $db String, the name of the databases entry in the $cfg global var.
* @param $dbn String, the name of the databases entry in the $cfg global var if $db referenced to an action(install etc).
*/ */
function __construct( $db, $dbn = null ) function __construct( $db, $dbn = null )
{ {
@ -49,10 +73,10 @@ class DBLayer {
} }
/** /**
* execute a query that doesn't have any parameters * Execute a query that doesn't have any parameters.
* *
* @param $query the mysql query * @param $query the mysql query.
* @return returns a PDOStatement object * @return returns a PDOStatement object.
*/ */
public function executeWithoutParams( $query ) { public function executeWithoutParams( $query ) {
$statement = $this -> PDO -> prepare( $query ); $statement = $this -> PDO -> prepare( $query );
@ -61,11 +85,11 @@ class DBLayer {
} }
/** /**
* execute a query that has parameters * Execute a query that has parameters.
* *
* @param $query the mysql query * @param $query the mysql query.
* @param $params the parameters that are being used by the query * @param $params the parameters that are being used by the query.
* @return returns a PDOStatement object * @return returns a PDOStatement object.
*/ */
public function execute( $query, $params ) { public function execute( $query, $params ) {
$statement = $this -> PDO -> prepare( $query ); $statement = $this -> PDO -> prepare( $query );
@ -74,10 +98,10 @@ class DBLayer {
} }
/** /**
* execute a query (an insertion query) that has parameters and return the id of it's insertion * Insert function which returns id of the inserting field.
* *
* @param $query the mysql query * @param $tb_name table name where we want to insert data.
* @param $params the parameters that are being used by the query * @param $data the parameters that are being inserted into table.
* @return returns the id of the last inserted element. * @return returns the id of the last inserted element.
*/ */
public function executeReturnId( $tb_name, $data ) { public function executeReturnId( $tb_name, $data ) {
@ -104,12 +128,14 @@ class DBLayer {
} }
/** /**
* Select function using prepared statement * Select function using prepared statement.
* For selecting particular fields.
* *
* @param string $tb_name Table Name to Select * @param string $param field to select, can be multiple fields.
* @param array $data Associative array * @param string $tb_name Table Name to Select.
* @param string $where where to select * @param array $data array of data to be used in WHERE clause in format('fieldname'=>$value). 'fieldname' must be a field in that table.
* @return statement object * @param string $where where to select.
* @return statement object.
*/ */
public function selectWithParameter( $param, $tb_name, $data, $where ) public function selectWithParameter( $param, $tb_name, $data, $where )
{ {
@ -129,12 +155,13 @@ class DBLayer {
} }
/** /**
* Select function using prepared statement * Select function using prepared statement.
* For selecting all fields in a table.
* *
* @param string $tb_name Table Name to Select * @param string $tb_name Table Name to Select.
* @param array $data Associative array * @param array $data array of data to be used with WHERE part in format('fieldname'=>$value,...). 'fieldname' must be a field in that table.
* @param string $where where to select * @param string $where where to select in format('fieldname=:fieldname' AND ...).
* @return statement object * @return statement object.
*/ */
public function select( $tb_name, $data , $where ) public function select( $tb_name, $data , $where )
{ {
@ -154,12 +181,12 @@ class DBLayer {
} }
/** /**
* Update function with prepared statement * Update function with prepared statement.
* *
* @param string $tb_name name of the table * @param string $tb_name name of the table on which operation to be performed.
* @param array $data associative array with values * @param array $data array of data in format('fieldname' => $value,...).Here, only those fields must be stored which needs to be updated.
* @param string $where where part * @param string $where where part in format ('fieldname'= $value AND ...). 'fieldname' must be a field in that table.
* @throws Exception error in updating * @throws Exception error in updating.
*/ */
public function update( $tb_name, $data, $where ) public function update( $tb_name, $data, $where )
{ {
@ -190,10 +217,11 @@ class DBLayer {
} }
/** /**
* insert function using prepared statements * insert function using prepared statements.
* *
* @param string $tb_name Name of the table to insert in * @param string $tb_name Name of the table on which operation to be performed.
* @param array $data Associative array of data to insert * @param array $data array of data to insert in format('fieldname' => $value,....). 'fieldname' must be a field in that table.
* @throws error in inserting.
*/ */
public function insert( $tb_name, $data ) public function insert( $tb_name, $data )
{ {
@ -216,16 +244,17 @@ class DBLayer {
{ {
// for rolling back the changes during transaction // for rolling back the changes during transaction
$this -> PDO -> rollBack(); $this -> PDO -> rollBack();
throw new Exception( "error in inseting" ); throw new Exception( "error in inserting" );
} }
} }
/** /**
* Delete database entery using prepared statement * Delete database entery using prepared statement.
* *
* @param string $tb_name * @param string $tb_name table name on which operations to be performed.
* @param string $where * @param $data array with values in the format('fieldname'=> $value,...). 'fieldname' must be a field in that table.
* @throws error in deleting * @param string $where condition based on $data array in the format('fieldname=:fieldname' AND ...).
* @throws error in deleting.
*/ */
public function delete( $tb_name, $data, $where ) public function delete( $tb_name, $data, $where )
{ {

View file

@ -2,7 +2,7 @@
/** /**
* API for loading and interacting with plugins * API for loading and interacting with plugins
* contains getters and setters * contains getters and setters.
* *
* @author shubham meena mentored by Matthew Lagoe * @author shubham meena mentored by Matthew Lagoe
*/ */
@ -14,11 +14,11 @@ class Plugincache {
private $plugin_status; private $plugin_status;
private $plugin_info = array(); private $plugin_info = array();
private $update_info = array(); private $update_info = array();
/** /**
* A constructor. * A constructor.
* Empty constructor * Empty constructor
*/ */
public function __construct() { public function __construct() {
} }
@ -207,10 +207,12 @@ class Plugincache {
} }
/** /**
* returns plugin information with respect to the id * Returns plugin information with respect to the id.
* *
* @param id $ plugin id * @param $id plugin id.
* @return field info for the plugin * @param $fieldName string plugin field to return
*
* @return info field from the db.
*/ */
public static function pluginInfoUsingId( $id, $fieldName ) public static function pluginInfoUsingId( $id, $fieldName )
{ {
@ -221,9 +223,9 @@ class Plugincache {
} }
/** /**
* function provides list of active plugins * Function provides list of active plugins
* *
* @return $ac_plugins list of active plugins * @return list of active plugins
*/ */
public static function activePlugins() public static function activePlugins()
{ {
@ -235,9 +237,15 @@ class Plugincache {
/** /**
* function to load hooks for the active plugins * function to load hooks for the active plugins
* and return the contents in the hooks in an array * and return the contents get from them.
* *
* @return $content content available in hooks * -->Get the list of active plugins then call the global
* hooks exists in the plugins hook file ($pluginName.php).
* -->Collect the contents from the hooks and associate within
* array with key referenced plugin name.
* -->return the content to use with smarty template loader
*
* @return $content content get from hooks
*/ */
public static function loadHooks() public static function loadHooks()
{ {

View file

@ -5,7 +5,7 @@
* *
* Request for the given url using cURL * Request for the given url using cURL
* and send the AccessToken for authentication * and send the AccessToken for authentication
* to make public access for the user * to make public access for the user.
* *
* @author Shubham Meena, mentored by Matthew Lagoe * @author Shubham Meena, mentored by Matthew Lagoe
*/ */
@ -13,12 +13,14 @@
class Rest_Api { class Rest_Api {
/** /**
* Makes a request using cURL with authentication headers and returns the response. * Makes a request using cURL with authentication headers , data to post and returns the response.
* *
* @param $url where request is to be sent * @param $url where request is to be sent
* @param $applicationKey user generated key * @param $applicationKey user generated key
* @param $host host for the website * @param $host host for the website
* @return URL response. * @param $data data to send using POST request
*
* @return $response URL response.
*/ */
public function request( $url , $applicationKey, $host , $data ) public function request( $url , $applicationKey, $host , $data )
{ {

View file

@ -143,7 +143,7 @@ class Ticket_Log{
/** /**
* loads the object's attributes. * loads the object's attributes.
* loads the object's attributes by giving a ticket_log entries ID (TLogId). * loads the object's attributes by giving a ticket_log entries ID (TLogId).
* @param id the id of the ticket_log entry that should be loaded * @param $id the id of the ticket_log entry that should be loaded
*/ */
public function load_With_TLogId( $id) { public function load_With_TLogId( $id) {
$dbl = new DBLayer("lib"); $dbl = new DBLayer("lib");

View file

@ -1,7 +1,7 @@
PluginName = API Key Management PluginName = API Key Management
Description = Provides public access to the API's by generating access tokens. Description = Provides public access to the API's by generating access tokens.
Version = 1.0.0 Version = 1.0.0
Type = automatic Type = Manual
TemplatePath = ../../../ams_lib/plugins/API_key_management/templates/index.tpl TemplatePath = ../../../ams_lib/plugins/API_key_management/templates/index.tpl

View file

@ -1,6 +1,9 @@
<?php <?php
/** /**
* This function is used in activating plugins. * This function is used in activating plugins.
* This can be done by providing id using $_GET global variable of the plugin which
* we want to activate. After getting id we update the respective plugin with status
* activate which here means '1' .
* *
* @author Shubham Meena, mentored by Matthew Lagoe * @author Shubham Meena, mentored by Matthew Lagoe
*/ */
@ -11,23 +14,26 @@ function activate_plugin() {
if ( isset( $_GET['id'] ) ) if ( isset( $_GET['id'] ) )
{ {
// id of plugin to delete // id of plugin to activate
$id = filter_var( $_GET['id'], FILTER_SANITIZE_FULL_SPECIAL_CHARS ); $id = filter_var( $_GET['id'], FILTER_SANITIZE_FULL_SPECIAL_CHARS );
$db = new DBLayer( 'lib' ); $db = new DBLayer( 'lib' );
$result = $db -> update( "plugins", array( 'Status' => '1' ), "Id = $id" ); $result = $db -> update( "plugins", array( 'Status' => '1' ), "Id = $id" );
if ( $result ) if ( $result )
{ {
// if result is successfull it redirects and shows success message
header( "Location: index.php?page=plugins&result=3" ); header( "Location: index.php?page=plugins&result=3" );
exit; exit;
} }
else else
{ {
//if result is unsuccessfull it redirects and throws error
header( "Location: index.php?page=plugins&result=4" ); header( "Location: index.php?page=plugins&result=4" );
exit; exit;
} }
} }
else else
{ {
//if $_GET variable is not set it redirects and shows error
header( "Location: index.php?page=plugins&result=4" ); header( "Location: index.php?page=plugins&result=4" );
exit; exit;
} }

View file

@ -1,6 +1,9 @@
<?php <?php
/** /**
* This function is used in deactivating plugins. * This function is used in deactivating plugins.
* This can be done by providing id using $_GET global variable of the plugin which
* we want to activate. After getting id we update the respective plugin with status
* deactivate which here means '0'.
* *
* @author Shubham Meena, mentored by Matthew Lagoe * @author Shubham Meena, mentored by Matthew Lagoe
*/ */
@ -12,17 +15,19 @@ function deactivate_plugin() {
if ( isset( $_GET['id'] ) ) if ( isset( $_GET['id'] ) )
{ {
// id of plugin to delete // id of plugin to deactivate
$id = filter_var( $_GET['id'], FILTER_SANITIZE_FULL_SPECIAL_CHARS ); $id = filter_var( $_GET['id'], FILTER_SANITIZE_FULL_SPECIAL_CHARS );
$db = new DBLayer( 'lib' ); $db = new DBLayer( 'lib' );
$result = $db -> update( "plugins", array( 'Status' => '0' ), "Id = $id" ); $result = $db -> update( "plugins", array( 'Status' => '0' ), "Id = $id" );
if ( $result ) if ( $result )
{ {
// if result is successfull it redirects and shows success message
header( "Location: index.php?page=plugins&result=5" ); header( "Location: index.php?page=plugins&result=5" );
exit; exit;
} }
else else
{ {
// if result is unsuccessfull it redirects and shows success message
header( "Location: index.php?page=plugins&result=6" ); header( "Location: index.php?page=plugins&result=6" );
exit; exit;
@ -30,6 +35,7 @@ function deactivate_plugin() {
} }
else else
{ {
//if $_GET variable is not set it redirects and shows error
header( "Location: index.php?page=plugins&result=6" ); header( "Location: index.php?page=plugins&result=6" );
exit; exit;
} }

View file

@ -1,8 +1,9 @@
<?php <?php
/** /**
* This function is used in deleting plugins. * This function is used in deleting plugins.
* * It removes the plugin from the codebase as well as
* It removes the plugin from the codebase. * from the Database. When user request to delete a plugin
* id of that plugin is sent in $_GET global variable.
* *
* @author Shubham Meena, mentored by Matthew Lagoe * @author Shubham Meena, mentored by Matthew Lagoe
*/ */
@ -27,12 +28,14 @@ function delete_plugin() {
{ {
$db -> delete( 'plugins', array( 'id' => $id ), "Id=:id" ); $db -> delete( 'plugins', array( 'id' => $id ), "Id=:id" );
//if result successfull redirect and show success message
header( "Location: index.php?page=plugins&result=2" ); header( "Location: index.php?page=plugins&result=2" );
exit; exit;
} }
else else
{ {
// if result unsuccessfull redirect and show error message
header( "Location: index.php?page=plugins&result=0" ); header( "Location: index.php?page=plugins&result=0" );
exit; exit;
} }
@ -40,6 +43,7 @@ function delete_plugin() {
} }
else else
{ {
// if result unsuccessfull redirect and show error message
header( "Location: index.php?page=plugins&result=0" ); header( "Location: index.php?page=plugins&result=0" );
exit; exit;
} }

View file

@ -1,10 +1,32 @@
<?php <?php
/** /**
* This function is used in installing plugins * This module contains the function to install plugins
* It performs validation check for the compressed plugin * or check if the uploaded file is an update for a plugin.
* then extract in plugin folder to get the info *
* When user uploads a file with .zip extension(neccessary requirement)
* steps that should perform:
* --> Check if the file type is .zip.
* --> Extract it to a temp folder.
* --> Check for the .info file. If not exists throw error
* --> Extract the information from the .info file.
* --> Check for the plugin name already exists or not.
* --> if Plugin Name exists it compare the version of .info and version of plugin stored in db.
* --> if same throw error and if different it checks for UpdateInfo field in .info file.
* --> if UpdateInfo not found throw error.
* --> if UpdateInfo found add the update to the ryzom_ams_lib.updates table.
* --> if it's not an update and plugin with same name already exists throw error.
* --> if plugin with same name not present provide option to install plugin
* *
* @author Shubham Meena, mentored by Matthew Lagoe * @author Shubham Meena, mentored by Matthew Lagoe
*
*/
/**
* This function is used in installing plugins or adding updates
* for previously installed plugins.
*
*/ */
function install_plugin() { function install_plugin() {
@ -165,13 +187,14 @@ function zipExtraction( $target_path, $destination )
* PluginName = Name of the plugin * PluginName = Name of the plugin
* Version = version of the plugin * Version = version of the plugin
* Type = type of the plugin * Type = type of the plugin
* TemplatePath = path to the template
* Description = Description of the plugin ,it's functionality * Description = Description of the plugin ,it's functionality
* ----------------------------------------------------------- * -----------------------------------------------------------
* *
* reads only files with name .info * reads only files with name .info
* *
* @param $fileName file to read * @param $fileName file to read
* @param $targetPath path to the folder containing .info file * @param $target_path path to the folder containing .info file
* @return array containing above information in array(value => key) * @return array containing above information in array(value => key)
*/ */
function readPluginFile( $fileName, $target_path ) function readPluginFile( $fileName, $target_path )
@ -190,8 +213,8 @@ function readPluginFile( $fileName, $target_path )
/** /**
* function to check for updates or * function to check for updates or
* if the same plugin already exists * if the same plugin already exists
* also, if the update founds ,check for the update info in the .info file. * also, if the update founds ,check for the UpdateInfo in the .info file.
* Update is saved in the temp direcotry with pluginName_version.zip * Update is saved in the temp directory with pluginName_version.zip
* *
* @param $fileName file which is uploaded in .zip extension * @param $fileName file which is uploaded in .zip extension
* @param $findPath where we have to look for the installed plugins * @param $findPath where we have to look for the installed plugins
@ -286,8 +309,8 @@ function checkForUpdate( $fileName, $findPath, $tempFile, $tempPath )
* *
* @param $pluginId id of the plugin for which update is available * @param $pluginId id of the plugin for which update is available
* @param $updatePath path of the new update * @param $updatePath path of the new update
* @return boolean if update for a plugin already exists or * @return boolean True if update already exists else False
* if update of same version is uploading *
*/ */
function PluginUpdateExists( $pluginId, $updatePath ) function PluginUpdateExists( $pluginId, $updatePath )
{ {

View file

@ -1,6 +1,9 @@
<?php <?php
/** /**
* This function is used in installing updates for plugins. * This function is used in installing updates for plugins.
* It takes id of the plugin whose update is available using
* $_GET global variable and then extract the update details
* from db and then install it in the plugin.
* *
* @author Shubham Meena, mentored by Matthew Lagoe * @author Shubham Meena, mentored by Matthew Lagoe
*/ */
@ -11,7 +14,7 @@ function update_plugin() {
if ( isset( $_GET['id'] ) ) if ( isset( $_GET['id'] ) )
{ {
// id of plugin to delete // id of plugin to update
$id = filter_var( $_GET['id'], FILTER_SANITIZE_FULL_SPECIAL_CHARS ); $id = filter_var( $_GET['id'], FILTER_SANITIZE_FULL_SPECIAL_CHARS );
$db = new DBLayer( 'lib' ); $db = new DBLayer( 'lib' );
$sth = $db -> executeWithoutParams( "SELECT * FROM plugins INNER JOIN updates ON plugins.Id=updates.PluginId Where plugins.Id=$id" ); $sth = $db -> executeWithoutParams( "SELECT * FROM plugins INNER JOIN updates ON plugins.Id=updates.PluginId Where plugins.Id=$id" );
@ -26,6 +29,7 @@ function update_plugin() {
// deleting the previous update // deleting the previous update
$db -> delete( "updates", array( 'id' => $row['s.no'] ), "s.no=:id" ); $db -> delete( "updates", array( 'id' => $row['s.no'] ), "s.no=:id" );
// if update is installed succesffully redirect to show success message
header( "Location: index.php?page=plugins&result=8" ); header( "Location: index.php?page=plugins&result=8" );
exit; exit;

View file

@ -1,7 +1,7 @@
<?php <?php
/** /**
* function plugins_update to get * function plugins_update to get
* plugins updates from the Database using pagination object * plugins updates from the Database using pagination object.
* *
* @author shubham meena mentored by Matthew Lagoe * @author shubham meena mentored by Matthew Lagoe
*/ */