Remove BuyCoursesUtils class - refs ##7768

1.10.x
Angel Fernando Quiroz Campos 11 years ago
parent 1a0a797b37
commit 70910c7706
  1. 11
      plugin/buycourses/config.php
  2. 18
      plugin/buycourses/database.php
  3. 218
      plugin/buycourses/src/BuyCoursesUtils.php
  4. 105
      plugin/buycourses/src/buy_course_plugin.class.php
  5. 2
      plugin/buycourses/src/function.php
  6. 121
      plugin/buycourses/src/paymentsetup.php

@ -1,15 +1,4 @@
<?php
/* For licensing terms, see /license.txt */
define('TABLE_BUY_SESSION', 'plugin_buy_session');
define('TABLE_BUY_SESSION_COURSE', 'plugin_buy_session_course');
define('TABLE_BUY_SESSION_TEMPORARY', 'plugin_buy_session_temporary');
define('TABLE_BUY_SESSION_SALE', 'plugin_buy_session_sale');
define('TABLE_BUY_COURSE', 'plugin_buy_course');
define('TABLE_BUY_COURSE_COUNTRY', 'plugin_buy_course_country');
define('TABLE_BUY_COURSE_PAYPAL', 'plugin_buy_course_paypal');
define('TABLE_BUY_COURSE_TRANSFER', 'plugin_buy_course_transfer');
define('TABLE_BUY_COURSE_TEMPORAL', 'plugin_buy_course_temporal');
define('TABLE_BUY_COURSE_SALE', 'plugin_buy_course_sale');
require_once __DIR__ . '/../../main/inc/global.inc.php';

@ -18,7 +18,7 @@ $connection = $entityManager->getConnection();
$platform = $connection->getDatabasePlatform();
//Create tables
$paypalTable = $pluginSchema->createTable(BuyCoursesUtils::TABLE_PAYPAL);
$paypalTable = $pluginSchema->createTable(BuyCoursesPlugin::TABLE_PAYPAL);
$paypalTable->addColumn(
'id',
\Doctrine\DBAL\Types\Type::INTEGER,
@ -30,7 +30,7 @@ $paypalTable->addColumn('signature', \Doctrine\DBAL\Types\Type::STRING);
$paypalTable->addColumn('sandbox', \Doctrine\DBAL\Types\Type::BOOLEAN);
$paypalTable->setPrimaryKey(['id']);
$transferTable = $pluginSchema->createTable(BuyCoursesUtils::TABLE_TRANSFER);
$transferTable = $pluginSchema->createTable(BuyCoursesPlugin::TABLE_TRANSFER);
$transferTable->addColumn(
'id',
\Doctrine\DBAL\Types\Type::INTEGER,
@ -41,7 +41,7 @@ $transferTable->addColumn('account', \Doctrine\DBAL\Types\Type::STRING);
$transferTable->addColumn('swift', \Doctrine\DBAL\Types\Type::STRING);
$transferTable->setPrimaryKey(['id']);
$currencyTable = $pluginSchema->createTable(BuyCoursesUtils::TABLE_CURRENCY);
$currencyTable = $pluginSchema->createTable(BuyCoursesPlugin::TABLE_CURRENCY);
$currencyTable->addColumn(
'id',
\Doctrine\DBAL\Types\Type::INTEGER,
@ -67,7 +67,7 @@ $currencyTable->addUniqueIndex(['country_code']);
$currencyTable->addIndex(['iso_code']);
$currencyTable->setPrimaryKey(['id']);
$itemTable = $pluginSchema->createTable(BuyCoursesUtils::TABLE_ITEM);
$itemTable = $pluginSchema->createTable(BuyCoursesPlugin::TABLE_ITEM);
$itemTable->addColumn(
'id',
\Doctrine\DBAL\Types\Type::INTEGER,
@ -97,7 +97,7 @@ $itemTable->addForeignKeyConstraint(
['onDelete' => 'CASCADE']
);
$saleTable = $pluginSchema->createTable(BuyCoursesUtils::TABLE_SALE);
$saleTable = $pluginSchema->createTable(BuyCoursesPlugin::TABLE_SALE);
$saleTable->addColumn(
'id',
\Doctrine\DBAL\Types\Type::INTEGER,
@ -144,10 +144,10 @@ foreach ($queries as $query) {
}
//Insert data
$paypalTable = Database::get_main_table(BuyCoursesUtils::TABLE_PAYPAL);
$currencyTable = Database::get_main_table(BuyCoursesUtils::TABLE_CURRENCY);
$itemTable = Database::get_main_table(BuyCoursesUtils::TABLE_ITEM);
$saleTable = Database::get_main_table(BuyCoursesUtils::TABLE_SALE);
$paypalTable = Database::get_main_table(BuyCoursesPlugin::TABLE_PAYPAL);
$currencyTable = Database::get_main_table(BuyCoursesPlugin::TABLE_CURRENCY);
$itemTable = Database::get_main_table(BuyCoursesPlugin::TABLE_ITEM);
$saleTable = Database::get_main_table(BuyCoursesPlugin::TABLE_SALE);
Database::insert(
$paypalTable,

@ -1,218 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
/**
* BuyCoursesUtils
*
* @author Angel Fernando Quiroz Campos <angel.quiroz@beeznest.com>
*/
class BuyCoursesUtils
{
const TABLE_PAYPAL = 'plugin_buycourses_paypal_account';
const TABLE_CURRENCY = 'plugin_buycourses_currency';
const TABLE_ITEM = 'plugin_buycourses_item';
const TABLE_SALE = 'plugin_buycourses_sale';
const TABLE_TRANSFER = 'plugin_buycourses_transfer';
const TABLE_SESSION = 'plugin_buy_session';
const TABLE_SESSION_COURSE = 'plugin_buy_session_course';
const TABLE_SESSION_TEMPORARY = 'plugin_buy_session_temporary';
const TABLE_SESSION_SALE = 'plugin_buy_session_sale';
const TABLE_COURSE = 'plugin_buy_course';
const TABLE_COUNTRY = 'plugin_buy_course_country';
const TABLE_TEMPORAL = 'plugin_buy_course_temporal';
private static $plugin;
/**
* @static
* @param type $plugin
*/
public static function setPlugin($plugin)
{
self::$plugin = $plugin;
}
/**
* Generate a form for save currency
* @static
* @return \FormValidator
*/
public static function getCurrencyForm()
{
$form = new FormValidator('currency');
if ($form->validate()) {
$formValues = $form->getSubmitValues();
self::$plugin->selectCurrency($formValues['currency']);
Display::addFlash(
Display::return_message(get_lang('Saved'), 'success')
);
header('Location:' . api_get_self());
exit;
}
$currencies = self::$plugin->getCurrencies();
$currencySelect = $form->addSelect(
'currency',
[
self::$plugin->get_lang('CurrencyType'),
self::$plugin->get_lang('InfoCurrency')
],
[get_lang('Select')]
);
foreach ($currencies as $currency) {
$currencyText = implode(
' => ',
[
$currency['country_name'],
$currency['iso_code']
]
);
$currencyValue = $currency['id'];
$currencySelect->addOption($currencyText, $currencyValue);
if ($currency['status']) {
$currencySelect->setSelected($currencyValue);
}
}
$form->addButtonSave(get_lang('Save'));
return $form;
}
/**
* Generate a form for save Paypal params
* @static
* @return \FormValidator
*/
public static function getPaypalForm()
{
$form = new FormValidator('paypal');
if ($form->validate()) {
$formValues = $form->getSubmitValues();
self::$plugin->savePaypalParams($formValues);
Display::addFlash(
Display::return_message(get_lang('Saved'), 'success')
);
header('Location:' . api_get_self());
exit;
}
$form->addText(
'username',
self::$plugin->get_lang('ApiUsername'),
false,
['cols-size' => [3, 8, 1]]
);
$form->addText(
'password',
self::$plugin->get_lang('ApiPassword'),
false,
['cols-size' => [3, 8, 1]]
);
$form->addText(
'signature',
self::$plugin->get_lang('ApiSignature'),
false,
['cols-size' => [3, 8, 1]]
);
$form->addCheckBox(
'sandbox',
null,
self::$plugin->get_lang('Sandbox')
);
$form->addButtonSave(get_lang('Save'));
$form->setDefaults(self::$plugin->getPaypalParams());
return $form;
}
/**
* Generate a form for add a transfer account
* @static
* @return \FormValidator
*/
public static function getTransferForm()
{
$form = new FormValidator('transfer_account');
if ($form->validate()) {
$formValues = $form->getSubmitValues();
self::$plugin->saveTransferAccount($formValues);
Display::addFlash(
Display::return_message(get_lang('Saved'), 'success')
);
header('Location:' . api_get_self());
exit;
}
$form->addText(
'tname',
get_lang('Name'),
false,
['cols-size' => [3, 8, 1]]
);
$form->addText(
'taccount',
self::$plugin->get_lang('BankAccount'),
false,
['cols-size' => [3, 8, 1]]
);
$form->addText(
'tswift',
get_lang('SWIFT'),
false,
['cols-size' => [3, 8, 1]]
);
$form->addButtonCreate(get_lang('Add'));
return $form;
}
/**
* Generates a random text (used for order references)
* @param int $length Optional. Length of characters
* @param boolean $lowercase Optional. Include lowercase characters
* @param boolean $uppercase Optional. Include uppercase characters
* @param boolean $numbers Optional. Include numbers
* @return string
*/
public static function randomText($length = 6, $lowercase = true, $uppercase = true, $numbers = true)
{
$salt = $lowercase ? 'abchefghknpqrstuvwxyz' : '';
$salt .= $uppercase ? 'ACDEFHKNPRSTUVWXYZ' : '';
$salt .= $numbers ? (strlen($salt) ? '2345679' : '0123456789') : '';
if (strlen($salt) == 0) {
return '';
}
$str = '';
srand((double)microtime() * 1000000);
for ($i = 0; $i < $length; $i++) {
$numbers = rand(0, strlen($salt) - 1);
$str .= substr($salt, $numbers, 1);
}
return $str;
}
}

@ -12,6 +12,11 @@
*/
class BuyCoursesPlugin extends Plugin
{
const TABLE_PAYPAL = 'plugin_buycourses_paypal_account';
const TABLE_CURRENCY = 'plugin_buycourses_currency';
const TABLE_ITEM = 'plugin_buycourses_item';
const TABLE_SALE = 'plugin_buycourses_sale';
const TABLE_TRANSFER = 'plugin_buycourses_transfer';
const PRODUCT_TYPE_COURSE = 1;
const PRODUCT_TYPE_SESSION = 2;
const PAYMENT_TYPE_PAYPAL = 1;
@ -61,19 +66,14 @@ class BuyCoursesPlugin extends Plugin
*/
function uninstall()
{
require_once __DIR__.'/../config.php';
$tablesToBeDeleted = array(
TABLE_BUY_SESSION,
TABLE_BUY_SESSION_COURSE,
TABLE_BUY_SESSION_TEMPORARY,
TABLE_BUY_SESSION_SALE,
TABLE_BUY_COURSE,
TABLE_BUY_COURSE_COUNTRY,
TABLE_BUY_COURSE_PAYPAL,
TABLE_BUY_COURSE_TRANSFER,
TABLE_BUY_COURSE_TEMPORAL,
TABLE_BUY_COURSE_SALE
self::TABLE_PAYPAL,
self::TABLE_TRANSFER,
self::TABLE_ITEM,
self::TABLE_SALE,
self::TABLE_CURRENCY
);
foreach ($tablesToBeDeleted as $tableToBeDeleted) {
$table = Database::get_main_table($tableToBeDeleted);
$sql = "DROP TABLE IF EXISTS $table";
@ -90,7 +90,7 @@ class BuyCoursesPlugin extends Plugin
{
return Database::select(
'*',
Database::get_main_table(BuyCoursesUtils::TABLE_CURRENCY),
Database::get_main_table(BuyCoursesPlugin::TABLE_CURRENCY),
[
'where' => ['status = ?' => true]
],
@ -106,7 +106,7 @@ class BuyCoursesPlugin extends Plugin
{
return Database::select(
'*',
Database::get_main_table(BuyCoursesUtils::TABLE_CURRENCY)
Database::get_main_table(BuyCoursesPlugin::TABLE_CURRENCY)
);
}
@ -117,7 +117,7 @@ class BuyCoursesPlugin extends Plugin
public function selectCurrency($selectedId)
{
$currencyTable = Database::get_main_table(
BuyCoursesUtils::TABLE_CURRENCY
BuyCoursesPlugin::TABLE_CURRENCY
);
Database::update(
@ -139,7 +139,7 @@ class BuyCoursesPlugin extends Plugin
public function savePaypalParams($params)
{
return Database::update(
Database::get_main_table(BuyCoursesUtils::TABLE_PAYPAL),
Database::get_main_table(BuyCoursesPlugin::TABLE_PAYPAL),
[
'username' => $params['username'],
'password' => $params['password'],
@ -158,7 +158,7 @@ class BuyCoursesPlugin extends Plugin
{
return Database::select(
'*',
Database::get_main_table(BuyCoursesUtils::TABLE_PAYPAL),
Database::get_main_table(BuyCoursesPlugin::TABLE_PAYPAL),
['id = ?' => 1],
'first'
);
@ -172,7 +172,7 @@ class BuyCoursesPlugin extends Plugin
public function saveTransferAccount($params)
{
return Database::insert(
Database::get_main_table(BuyCoursesUtils::TABLE_TRANSFER),
Database::get_main_table(self::TABLE_TRANSFER),
[
'name' => $params['tname'],
'account' => $params['taccount'],
@ -189,7 +189,7 @@ class BuyCoursesPlugin extends Plugin
{
return Database::select(
'*',
Database::get_main_table(BuyCoursesUtils::TABLE_TRANSFER)
Database::get_main_table(self::TABLE_TRANSFER)
);
}
@ -201,7 +201,7 @@ class BuyCoursesPlugin extends Plugin
public function deleteTransferAccount($id)
{
return Database::delete(
Database::get_main_table(BuyCoursesUtils::TABLE_TRANSFER),
Database::get_main_table(self::TABLE_TRANSFER),
['id = ?' => intval($id)]
);
}
@ -241,8 +241,8 @@ class BuyCoursesPlugin extends Plugin
*/
public function getItemByProduct($productId, $itemType)
{
$buyItemTable = Database::get_main_table(BuyCoursesUtils::TABLE_ITEM);
$buyCurrencyTable = Database::get_main_table(BuyCoursesUtils::TABLE_CURRENCY);
$buyItemTable = Database::get_main_table(BuyCoursesPlugin::TABLE_ITEM);
$buyCurrencyTable = Database::get_main_table(BuyCoursesPlugin::TABLE_CURRENCY);
$fakeItemFrom = "
$buyItemTable i
@ -312,8 +312,8 @@ class BuyCoursesPlugin extends Plugin
*/
public function getSessionsForConfiguration()
{
$buyItemTable = Database::get_main_table(BuyCoursesUtils::TABLE_ITEM);
$buyCurrencyTable = Database::get_main_table(BuyCoursesUtils::TABLE_CURRENCY);
$buyItemTable = Database::get_main_table(BuyCoursesPlugin::TABLE_ITEM);
$buyCurrencyTable = Database::get_main_table(BuyCoursesPlugin::TABLE_CURRENCY);
$auth = new Auth();
$sessions = $auth->browseSessions();
@ -391,7 +391,7 @@ class BuyCoursesPlugin extends Plugin
$entityManager = Database::getManager();
$scuRepo = $entityManager->getRepository('ChamiloCoreBundle:SessionRelCourseRelUser');
$buySaleTable = Database::get_main_table(BuyCoursesUtils::TABLE_SALE);
$buySaleTable = Database::get_main_table(self::TABLE_SALE);
// Check if user bought the course
$sale = Database::select(
@ -499,7 +499,7 @@ class BuyCoursesPlugin extends Plugin
$entityManager = Database::getManager();
$cuRepo = $entityManager->getRepository('ChamiloCoreBundle:CourseRelUser');
$buySaleTable = Database::get_main_table(BuyCoursesUtils::TABLE_SALE);
$buySaleTable = Database::get_main_table(self::TABLE_SALE);
// Check if user bought the course
$sale = Database::select(
@ -730,7 +730,7 @@ class BuyCoursesPlugin extends Plugin
{
return Database::select(
'*',
Database::get_main_table(BuyCoursesUtils::TABLE_ITEM),
Database::get_main_table(self::TABLE_ITEM),
[
'where' => ['id = ?' => intval($itemId)]
],
@ -793,7 +793,7 @@ class BuyCoursesPlugin extends Plugin
'payment_type' => intval($paymentType)
];
return Database::insert(BuyCoursesUtils::TABLE_SALE, $values);
return Database::insert(self::TABLE_SALE, $values);
}
/**
@ -805,7 +805,7 @@ class BuyCoursesPlugin extends Plugin
{
return Database::select(
'*',
Database::get_main_table(BuyCoursesUtils::TABLE_SALE),
Database::get_main_table(self::TABLE_SALE),
[
'where' => ['id = ?' => intval($saleId)]
],
@ -822,7 +822,7 @@ class BuyCoursesPlugin extends Plugin
{
return Database::select(
'*',
Database::get_main_table(BuyCoursesUtils::TABLE_CURRENCY),
Database::get_main_table(BuyCoursesPlugin::TABLE_CURRENCY),
[
'where' => ['id = ?' => intval($currencyId)]
],
@ -838,7 +838,7 @@ class BuyCoursesPlugin extends Plugin
*/
private function updateSaleStatus($saleId, $newStatus = self::SALE_STATUS_PENDING)
{
$saleTable = Database::get_main_table(BuyCoursesUtils::TABLE_SALE);
$saleTable = Database::get_main_table(self::TABLE_SALE);
return Database::update(
$saleTable,
@ -915,8 +915,8 @@ class BuyCoursesPlugin extends Plugin
*/
public function getSaleListByStatus($status = self::SALE_STATUS_PENDING)
{
$saleTable = Database::get_main_table(BuyCoursesUtils::TABLE_SALE);
$currencyTable = Database::get_main_table(BuyCoursesUtils::TABLE_CURRENCY);
$saleTable = Database::get_main_table(BuyCoursesPlugin::TABLE_SALE);
$currencyTable = Database::get_main_table(BuyCoursesPlugin::TABLE_CURRENCY);
$userTable = Database::get_main_table(TABLE_MAIN_USER);
$innerJoins = "
@ -975,7 +975,7 @@ class BuyCoursesPlugin extends Plugin
return $auth->browseSessions();
}
$itemTable = Database::get_main_table(BuyCoursesUtils::TABLE_ITEM);
$itemTable = Database::get_main_table(self::TABLE_ITEM);
$sessionTable = Database::get_main_table(TABLE_MAIN_SESSION);
$min = floatval($min);
@ -1030,7 +1030,7 @@ class BuyCoursesPlugin extends Plugin
return $this->getCourses();
}
$itemTable = Database::get_main_table(BuyCoursesUtils::TABLE_ITEM);
$itemTable = Database::get_main_table(self::TABLE_ITEM);
$courseTable = Database::get_main_table(TABLE_MAIN_COURSE);
$min = floatval($min);
@ -1072,6 +1072,41 @@ class BuyCoursesPlugin extends Plugin
return $courses;
}
/**
* Generates a random text (used for order references)
* @param int $length Optional. Length of characters
* @param boolean $lowercase Optional. Include lowercase characters
* @param boolean $uppercase Optional. Include uppercase characters
* @param boolean $numbers Optional. Include numbers
* @return string
*/
public static function randomText(
$length = 6,
$lowercase = true,
$uppercase = true,
$numbers = true
)
{
$salt = $lowercase ? 'abchefghknpqrstuvwxyz' : '';
$salt .= $uppercase ? 'ACDEFHKNPRSTUVWXYZ' : '';
$salt .= $numbers ? (strlen($salt) ? '2345679' : '0123456789') : '';
if (strlen($salt) == 0) {
return '';
}
$str = '';
srand((double)microtime() * 1000000);
for ($i = 0; $i < $length; $i++) {
$numbers = rand(0, strlen($salt) - 1);
$str .= substr($salt, $numbers, 1);
}
return $str;
}
/**
* Generates an order reference
* @param int $userId The user ID
@ -1083,7 +1118,7 @@ class BuyCoursesPlugin extends Plugin
{
return vsprintf(
"%d-%d-%d-%s",
[$userId, $productType, $productId, BuyCoursesUtils::randomText()]
[$userId, $productType, $productId, self::randomText()]
);
}

@ -9,7 +9,7 @@
*/
require_once '../config.php';
$itemTable = Database::get_main_table(BuyCoursesUtils::TABLE_ITEM);
$itemTable = Database::get_main_table(BuyCoursesPlugin::TABLE_ITEM);
$plugin = BuyCoursesPlugin::create();
$currency = $plugin->getSelectedCurrency();

@ -14,7 +14,6 @@ require_once '../../../main/inc/global.inc.php';
api_protect_admin_script(true);
$plugin = BuyCoursesPlugin::create();
BuyCoursesUtils::setPlugin($plugin);
$paypalEnable = $plugin->get('paypal_enable');
$transferEnable = $plugin->get('transfer_enable');
@ -32,9 +31,123 @@ if (isset($_GET['action'], $_GET['id'])) {
}
}
$currencyForm = BuyCoursesUtils::getCurrencyForm();
$paypalForm = BuyCoursesUtils::getPaypalForm();
$transferForm = BuyCoursesUtils::getTransferForm();
$currencyForm = new FormValidator('currency');
if ($currencyForm->validate()) {
$currencyFormValues = $currencyForm->getSubmitValues();
$plugin->selectCurrency($currencyFormValues['currency']);
Display::addFlash(
Display::return_message(get_lang('Saved'), 'success')
);
header('Location:' . api_get_self());
exit;
}
$currencies = $plugin->getCurrencies();
$currencySelect = $currencyForm->addSelect(
'currency',
[
$plugin->get_lang('CurrencyType'),
$plugin->get_lang('InfoCurrency')
],
[get_lang('Select')]
);
foreach ($currencies as $currency) {
$currencyText = implode(
' => ',
[
$currency['country_name'],
$currency['iso_code']
]
);
$currencyValue = $currency['id'];
$currencySelect->addOption($currencyText, $currencyValue);
if ($currency['status']) {
$currencySelect->setSelected($currencyValue);
}
}
$currencyForm->addButtonSave(get_lang('Save'));
$paypalForm = new FormValidator('paypal');
if ($paypalForm->validate()) {
$paypalFormValues = $paypalForm->getSubmitValues();
$plugin->savePaypalParams($paypalFormValues);
Display::addFlash(
Display::return_message(get_lang('Saved'), 'success')
);
header('Location:' . api_get_self());
exit;
}
$paypalForm->addText(
'username',
$plugin->get_lang('ApiUsername'),
false,
['cols-size' => [3, 8, 1]]
);
$paypalForm->addText(
'password',
$plugin->get_lang('ApiPassword'),
false,
['cols-size' => [3, 8, 1]]
);
$paypalForm->addText(
'signature',
$plugin->get_lang('ApiSignature'),
false,
['cols-size' => [3, 8, 1]]
);
$paypalForm->addCheckBox('sandbox', null, $plugin->get_lang('Sandbox'));
$paypalForm->addButtonSave(get_lang('Save'));
$paypalForm->setDefaults($plugin->getPaypalParams());
$transferForm = new FormValidator('transfer_account');
if ($transferForm->validate()) {
$transferFormValues = $transferForm->getSubmitValues();
$plugin->saveTransferAccount($transferFormValues);
Display::addFlash(
Display::return_message(get_lang('Saved'), 'success')
);
header('Location:' . api_get_self());
exit;
}
$transferForm->addText(
'tname',
get_lang('Name'),
false,
['cols-size' => [3, 8, 1]]
);
$transferForm->addText(
'taccount',
$plugin->get_lang('BankAccount'),
false,
['cols-size' => [3, 8, 1]]
);
$transferForm->addText(
'tswift',
get_lang('SWIFT'),
false,
['cols-size' => [3, 8, 1]]
);
$transferForm->addButtonCreate(get_lang('Add'));
$transferAccounts = $plugin->getTransferAccounts();
//view

Loading…
Cancel
Save