You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
1.7 KiB
56 lines
1.7 KiB
<?php
|
|
/* For licensing terms, see /license.txt */
|
|
die('Remove the "die()" statement on line '.__LINE__.' to execute this script'.PHP_EOL);
|
|
use Chamilo\CourseBundle\Entity\CLp;
|
|
use Doctrine\ORM\Query\Expr\Join;
|
|
use Chamilo\CourseBundle\Entity\CTool;
|
|
|
|
require_once __DIR__.'/../../public/main/inc/global.inc.php';
|
|
|
|
$em = Database::getManager();
|
|
|
|
$qb1 = $em->createQueryBuilder();
|
|
$result1 = $qb1
|
|
->select('lp')
|
|
->from('ChamiloCourseBundle:CLp', 'lp')
|
|
->innerJoin('ChamiloCourseBundle:CTool', 't', JOIN::WITH, 'lp.cId = t.cId AND lp.name = t.name')
|
|
->where(
|
|
$qb1->expr()->eq('t.link', ':link')
|
|
)
|
|
->setParameter('link', 'lp/lp_controller.php?action=view&lp_id=$new_lp_id&id_session=0')
|
|
->getQuery()
|
|
->getResult();
|
|
|
|
/** @var CLp $lp */
|
|
foreach ($result1 as $i => $lp) {
|
|
echo ($i + 1)." LP {$lp->getId()}: {$lp->getTitle()}".PHP_EOL;
|
|
|
|
$qb2 = $em->createQueryBuilder();
|
|
|
|
/** @var CTool $tool */
|
|
$tool = $qb2
|
|
->select('t')
|
|
->from('ChamiloCourseBundle:CTool', 't')
|
|
->where(
|
|
$qb2->expr()->andX(
|
|
$qb2->expr()->eq('t.link', ':link'),
|
|
$qb2->expr()->eq('t.name', ':name'),
|
|
$qb2->expr()->eq('t.cId', ':cid')
|
|
)
|
|
)
|
|
->setParameters([
|
|
'link' => 'lp/lp_controller.php?action=view&lp_id=$new_lp_id&id_session=0',
|
|
'name' => $lp->getTitle(),
|
|
'cid' => $lp->getCId()
|
|
])
|
|
->getQuery()
|
|
->getOneOrNullResult();
|
|
|
|
$tool->setLink("lp/lp_controller.php?action=view&lp_id={$lp->getId()}&id_session=0");
|
|
|
|
$em->persist($tool);
|
|
$em->flush();
|
|
|
|
echo "\tTool: {$tool->getId()}: {$tool->getTitle()}".PHP_EOL;
|
|
echo "\tNew link: {$tool->getLink()}".PHP_EOL;
|
|
}
|
|
|