WIP fix vchamilo plugin fix SYS_ARCHIVE_PATH, SYS_HOME_PATH and SYS_COURSE_PATH using another DB.

ofaj
jmontoyaa 10 years ago
parent 356522a410
commit d8161fa528
  1. 21
      main/inc/lib/api.lib.php
  2. 44
      plugin/vchamilo/lib.php
  3. 2
      plugin/vchamilo/readme.txt
  4. 3
      plugin/vchamilo/views/syncparams.controller.php

@ -739,12 +739,6 @@ function api_get_path($path = '', $configuration = [])
$paths[$root_web][REL_COURSE_PATH] = $root_rel.$course_folder;
$paths[$root_web][REL_DEFAULT_COURSE_DOCUMENT_PATH] = $paths[$root_web][REL_PATH].'main/default_course_document/';
// PATCH : Take VChamilo into account
/*global $VCHAMILO;
if (!empty($VCHAMILO) || !empty($configuration['virtual'])){
$paths[$root_web][SYS_ARCHIVE_PATH] .= $web_host.'/';
$paths[$root_web][SYS_HOME_PATH] .= $web_host.'/';
}*/
$paths[$root_web][WEB_PATH] = $slashed_root_web;
$paths[$root_web][WEB_CODE_PATH] = $slashed_root_web.$code_folder;
$paths[$root_web][WEB_COURSE_PATH] = $slashed_root_web.$course_folder;
@ -752,6 +746,7 @@ function api_get_path($path = '', $configuration = [])
$paths[$root_web][WEB_APP_PATH] = $paths[$root_web][WEB_PATH].$paths[$root_web][WEB_APP_PATH];
$paths[$root_web][WEB_PLUGIN_PATH] = $paths[$root_web][WEB_PATH].$paths[$root_web][WEB_PLUGIN_PATH];
$paths[$root_web][WEB_ARCHIVE_PATH] = $paths[$root_web][WEB_PATH].$paths[$root_web][WEB_ARCHIVE_PATH];
$paths[$root_web][WEB_CSS_PATH] = $paths[$root_web][WEB_PATH].$paths[$root_web][WEB_CSS_PATH];
$paths[$root_web][WEB_IMG_PATH] = $paths[$root_web][WEB_CODE_PATH].$paths[$root_web][WEB_IMG_PATH];
$paths[$root_web][WEB_LIBRARY_PATH] = $paths[$root_web][WEB_CODE_PATH].$paths[$root_web][WEB_LIBRARY_PATH];
@ -779,16 +774,16 @@ function api_get_path($path = '', $configuration = [])
$paths[$root_web][SYS_PLUGIN_PATH] = $paths[$root_web][SYS_PATH].$paths[$root_web][SYS_PLUGIN_PATH];
$paths[$root_web][SYS_INC_PATH] = $paths[$root_web][SYS_CODE_PATH].$paths[$root_web][SYS_INC_PATH];
/*// ADD : Take VChamilo into account
global $VCHAMILO;
if (!empty($VCHAMILO) || !empty($configuration['virtual'])) {
$paths[$root_web][WEB_ARCHIVE_PATH] .= $web_host.'/';
$paths[$root_web][WEB_HOME_PATH] .= $web_host.'/';
}*/
$paths[$root_web][LIBRARY_PATH] = $paths[$root_web][SYS_CODE_PATH].$paths[$root_web][LIBRARY_PATH];
$paths[$root_web][CONFIGURATION_PATH] = $paths[$root_web][SYS_PATH].$paths[$root_web][CONFIGURATION_PATH];
global $VCHAMILO;
if (!empty($VCHAMILO)) {
$paths[$root_web][SYS_ARCHIVE_PATH] = $VCHAMILO[SYS_ARCHIVE_PATH];
$paths[$root_web][SYS_HOME_PATH] = $VCHAMILO[SYS_HOME_PATH];
$paths[$root_web][SYS_COURSE_PATH] = $VCHAMILO[SYS_COURSE_PATH];
}
$isInitialized[$root_web] = true;
}

@ -16,13 +16,12 @@ function vchamilo_hook_configuration(&$_configuration)
// provides an effective value for the virtual root_web based on domain analysis
vchamilo_get_hostname($_configuration);
//$plugin = VChamiloPlugin::create();
// We are on physical chamilo. Let original config play
$virtualChamiloWebRoot = $_configuration['vchamilo_web_root'].'/';
if ($_configuration['root_web'] == $virtualChamiloWebRoot){
$VCHAMILO = 'main';
if ($_configuration['root_web'] == $virtualChamiloWebRoot) {
$VCHAMILO = [];
return;
}
@ -37,16 +36,47 @@ function vchamilo_hook_configuration(&$_configuration)
$excludes = array('id', 'name');
$query = "SELECT * FROM settings_current WHERE subkey = 'vchamilo'";
$virtualSettings = $connection->executeQuery($query);
$virtualSettings = $virtualSettings->fetchAll();
$homePath = '';
$coursePath = '';
$archivePath = '';
foreach ($virtualSettings as $setting) {
switch ($setting['variable']) {
case 'vchamilo_home_real_root':
$homePath = $setting['selected_value'];
break;
case 'vchamilo_course_real_root':
$coursePath = $setting['selected_value'];
break;
case 'vchamilo_archive_real_root':
$archivePath = $setting['selected_value'];
break;
}
}
if (empty($homePath) || empty($coursePath) || empty($archivePath)) {
echo 'Configure correctly the vchamilo plugin';
exit;
}
if ($result->rowCount()) {
$data = $result->fetch();
foreach ($data as $key => $value){
if (!in_array($key, $excludes)){
if (!in_array($key, $excludes)) {
$_configuration[$key] = $value;
}
$_configuration['virtual'] = $data['root_web'].'/';
$VCHAMILO = $data['root_web'];
}
$data['SYS_ARCHIVE_PATH'] = $homePath.'/'.$data['slug'];
$data['SYS_HOME_PATH'] = $coursePath.'/'.$data['slug'];
$data['SYS_COURSE_PATH'] = $archivePath.'/'.$data['slug'];
$VCHAMILO = $data;
} else {
//die ("VChamilo : No configuration for this host. May be faked.");
die ("VChamilo : Could not fetch virtual chamilo configuration");

@ -22,7 +22,7 @@ You need :
2/ Install the plugin in chamilo administration
3/ Insert the virtualisation hook into the chamilo master configuration :
file : <chamiloroot>/main/inc/config/configure.php
file : <chamiloroot>/app/config/configuration.php
insert the hook:

@ -72,7 +72,8 @@ if ($action == 'syncthis') {
foreach ($vchamilos as $vcid => $chm) {
$table = $chm['main_database'].".settings_current";
if ($delifempty && empty($value)) {
$sql = "DELETE FROM $table WHERE
$sql = "DELETE FROM $table
WHERE
selected_value = '$value' AND
variable = '{{$setting['variable']}}' AND
access_url = '{$setting['access_url']}'

Loading…
Cancel
Save