Actualización
This commit is contained in:
@@ -0,0 +1,90 @@
|
||||
<?php
|
||||
/* For licensing terms, see /license.txt */
|
||||
|
||||
namespace Chamilo\PluginBundle\MigrationMoodle\Loader;
|
||||
|
||||
use Chamilo\PluginBundle\MigrationMoodle\Interfaces\LoaderInterface;
|
||||
|
||||
/**
|
||||
* Class UserLearnPathLessonTimerLoader.
|
||||
*
|
||||
* @package Chamilo\PluginBundle\MigrationMoodle\Loader
|
||||
*/
|
||||
class UserLearnPathLessonTimerLoader implements LoaderInterface
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function load(array $incomingData)
|
||||
{
|
||||
$tblItemView = \Database::get_course_table(TABLE_LP_ITEM_VIEW);
|
||||
|
||||
$parentItemView = $this->findViewOfParentItem($incomingData);
|
||||
$itemView = $this->findViewOfFirstItem($incomingData);
|
||||
|
||||
\Database::query(
|
||||
"UPDATE $tblItemView SET start_time = {$incomingData['start_time']} WHERE iid = {$parentItemView['iid']}"
|
||||
);
|
||||
\Database::query(
|
||||
"UPDATE $tblItemView SET start_time = {$incomingData['start_time']} WHERE iid = {$itemView['iid']}"
|
||||
);
|
||||
|
||||
return $itemView['iid'];
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws \Exception
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
private function findViewOfParentItem(array $incomingData)
|
||||
{
|
||||
$parentItemView = \Database::fetch_assoc(
|
||||
\Database::query(
|
||||
"SELECT lpiv.iid
|
||||
FROM c_lp_item_view lpiv
|
||||
INNER JOIN c_lp_view lpv ON (lpv.iid = lpiv.lp_view_id AND lpv.c_id = lpiv.c_id)
|
||||
WHERE lpiv.lp_item_id = {$incomingData['parent_item_id']}
|
||||
AND lpv.user_id = {$incomingData['user_id']}
|
||||
LIMIT 1"
|
||||
)
|
||||
);
|
||||
|
||||
if (!$parentItemView) {
|
||||
throw new \Exception("Item dir ({$incomingData['parent_item_id']}) not found.");
|
||||
}
|
||||
|
||||
return $parentItemView;
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws \Exception
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
private function findViewOfFirstItem(array $incomingData)
|
||||
{
|
||||
$itemView = \Database::fetch_assoc(
|
||||
\Database::query(
|
||||
"SELECT lpiv.iid
|
||||
FROM c_lp_item_view lpiv
|
||||
INNER JOIN c_lp_view lpv
|
||||
ON (lpv.iid = lpiv.lp_view_id AND lpv.c_id = lpiv.c_id)
|
||||
INNER JOIN c_lp_item lpi
|
||||
ON (lpi.lp_id = lpv.lp_id AND lpi.c_id = lpv.c_id AND lpi.iid = lpiv.lp_item_id)
|
||||
WHERE lpi.item_type = 'document'
|
||||
AND lpv.user_id = {$incomingData['user_id']}
|
||||
AND lpi.parent_item_id = {$incomingData['parent_item_id']}
|
||||
AND lpv.session_id = {$incomingData['session_id']}
|
||||
ORDER BY lpi.display_order ASC
|
||||
LIMIT 1"
|
||||
)
|
||||
);
|
||||
|
||||
if (!$itemView) {
|
||||
throw new \Exception("Item view not found for item with"." parent item ({$incomingData['parent_item_id']}) and user ({$incomingData['user_id']})");
|
||||
}
|
||||
|
||||
return $itemView;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user