setName('Core:Script') ->setDescription('Lauch Script') ; } protected function execute(InputInterface $input, OutputInterface $output) { $this->container = $this->getApplication()->getKernel()->getContainer(); $this->em = $this->container->get('doctrine')->getEntityManager(); $this->output = $output; $this->filesystem = new Filesystem(); $this->rootlog = $this->container->get('kernel')->getRootDir()."/../var/logs/"; $script=$this->em->getRepository("CadolesCoreBundle:Script")->findOneBy(["name"=>"visibletrue"]); if(!$script) { $this->writeln("== SCRIPT = visibletrue"); $this->visibletrue(); $script=new Script(); $script->setName("visibletrue"); $this->em->persist($script); $this->em->flush(); $this->writeln(""); } $script=$this->em->getRepository("CadolesCoreBundle:Script")->findOneBy(["name"=>"setusersniveau"]); if(!$script) { $this->writeln("== SCRIPT = setusersniveau"); $this->setusersniveau(); $script=new Script(); $script->setName("setusersniveau"); $this->em->persist($script); $this->em->flush(); $this->writeln(""); } $script=$this->em->getRepository("CadolesCoreBundle:Script")->findOneBy(["name"=>"setfgcancreateproject"]); if(!$script) { $this->writeln("== SCRIPT = setfgcancreateproject"); $this->setfgcancreateproject(); $script=new Script(); $script->setName("setfgcancreateproject"); $this->em->persist($script); $this->em->flush(); $this->writeln(""); } $script=$this->em->getRepository("CadolesCoreBundle:Script")->findOneBy(["name"=>"createproject"]); if(!$script) { $this->writeln("== SCRIPT = createproject"); $this->createproject(); $script=new Script(); $script->setName("createproject"); $this->em->persist($script); $this->em->flush(); $this->writeln(""); } $script=$this->em->getRepository("CadolesCoreBundle:Script")->findOneBy(["name"=>"createthumbmini"]); if(!$script) { $this->writeln("== SCRIPT = createthumbmini"); $this->createthumbmini(); $script=new Script(); $script->setName("createthumbmini"); $this->em->persist($script); $this->em->flush(); $this->writeln(""); } $script=$this->em->getRepository("CadolesCoreBundle:Script")->findOneBy(["name"=>"createwidgetproject"]); if(!$script) { $this->writeln("== SCRIPT = createwidgetproject"); $this->createwidgetproject(); $script=new Script(); $script->setName("createwidgetproject"); $this->em->persist($script); $this->em->flush(); $this->writeln(""); } $script=$this->em->getRepository("CadolesCoreBundle:Script")->findOneBy(["name"=>"renamegroup"]); if(!$script) { $this->writeln("== SCRIPT = renamegroup"); $this->renamegroup(); $script=new Script(); $script->setName("renamegroup"); $this->em->persist($script); $this->em->flush(); $this->writeln(""); } $script=$this->em->getRepository("CadolesCoreBundle:Script")->findOneBy(["name"=>"rolegroup"]); if(!$script) { $this->writeln("== SCRIPT = rolegroup"); $this->rolegroup(); $script=new Script(); $script->setName("rolegroup"); $this->em->persist($script); $this->em->flush(); $this->writeln(""); } $script=$this->em->getRepository("CadolesCoreBundle:Script")->findOneBy(["name"=>"userdefaultmissing"]); if(!$script) { $this->writeln("== SCRIPT = userdefaultmissing"); $this->userdefaultmissing(); $script=new Script(); $script->setName("userdefaultmissing"); $this->em->persist($script); $this->em->flush(); $this->writeln(""); } $script=$this->em->getRepository("CadolesCoreBundle:Script")->findOneBy(["name"=>"updateorthographe01"]); if(!$script) { $this->writeln("== SCRIPT = updateorthographe01"); $this->updateorthographe01(); $script=new Script(); $script->setName("updateorthographe01"); $this->em->persist($script); $this->em->flush(); $this->writeln(""); } $script=$this->em->getRepository("CadolesCoreBundle:Script")->findOneBy(["name"=>"updateorthographe02"]); if(!$script) { $this->writeln("== SCRIPT = updateorthographe02"); $this->updateorthographe02(); $script=new Script(); $script->setName("updateorthographe02"); $this->em->persist($script); $this->em->flush(); $this->writeln(""); } if($this->container->getParameter('ldap_template')=="scribe") { $script=$this->em->getRepository("CadolesCoreBundle:Script")->findOneBy(["name"=>"purgepageprofil"]); if(!$script) { $this->writeln("== SCRIPT = purgepageprofil"); $this->purgepageprofil(); $script=new Script(); $script->setName("purgepageprofil"); $this->em->persist($script); $this->em->flush(); $this->writeln(""); } } return 1; } private function visibletrue() { $users = $this->em->getRepository('CadolesCoreBundle:User')->findAll(); foreach($users as $user) { if(!$user->getVisible()) { $this->writeln($user->getUsername()); $user->setVisible(true); $this->em->persist($user); $this->em->flush(); } } } private function setusersniveau() { $users = $this->em->getRepository('CadolesCoreBundle:User')->findAll(); foreach($users as $user) { $this->writeln($user->getUsername()); $user->setLabelniveau01($user->getNiveau01()->getLabel()); $user->setLabelniveau02(($user->getNiveau02()?$user->getNiveau02()->getLabel():null)); $this->em->persist($user); $this->em->flush(); } } private function setfgcancreateproject() { $group=$this->em->getRepository('CadolesCoreBundle:Group')->findOneBy(array('fgall'=>true)); if ($group) { $group->setFgcancreateproject(true); $this->em->persist($group); $this->em->flush(); } } private function createproject() { $groups=$this->em->getRepository('CadolesCoreBundle:Group')->findBy(array('fgcanshare'=>true)); foreach($groups as $group) { // On regarde s'il a au moins un project if($group->getProjects()->isEmpty()) { $project=new Project(); $project->setName($group->getLabel()); $project->addGroup($group); $project->setUser($group->getOwner()); $this->em->persist($project); $this->em->flush(); } } } private function createthumbmini() { $directory=$this->container->get('kernel')->getRootDir()."/../uploads/file"; $files=[]; $fs = new Filesystem(); if($fs->exists($directory)) { $finder = new Finder(); $finder->in($directory)->directories()->exclude("thumb")->exclude("thumbmini"); foreach (iterator_to_array($finder) as $rep) { $finder2 = new Finder(); if($fs->exists($rep."/thumb")) { $finder2->sortByName()->in($rep."/thumb"); foreach ($finder2 as $file) { if(!$fs->exists($rep."/thumbmini/".$file->getRelativePathname())) { $this->writeln($file->getRelativePathname()); $fs->mkdir($rep."/thumbmini"); $fs->copy($rep."/thumb/".$file->getRelativePathname(),$rep."/thumbmini/".$file->getRelativePathname()); $max_width=60; $width = $this->getWidth($rep."/thumbmini/".$file->getRelativePathname()); $height = $this->getHeight($rep."/thumbmini/".$file->getRelativePathname()); $scale = $max_width/$width; $this->resizeImage($rep."/thumbmini/".$file->getRelativePathname(),$width,$height,$scale); $fs->chown($rep."/thumbmini/".$file->getRelativePathname(), 'www-data'); } } } } } } private function createwidgetproject(){ $entityPage = $this->em->getRepository('CadolesPortalBundle:Page')->find(-110); if($entityPage) { $fields=["fields"=>[]]; $metadata = $this->em->getClassMetaData('CadolesPortalBundle:Pagewidget'); $metadata->setIdGeneratorType(ClassMetadata::GENERATOR_TYPE_AUTO); $pages=$this->em->getRepository('CadolesPortalBundle:Page')->findBy(["page"=>$entityPage]); foreach($pages as $page) { $this->addWidget2Page($page,-1800,"R1C1",1,"Taches du groupe",true,$fields); } $metadata = $this->em->getClassMetaData('CadolesPortalBundle:Pagewidget'); $metadata->setIdGeneratorType(ClassMetadata::GENERATOR_TYPE_NONE); $metadata->setIdGenerator(new AssignedGenerator()); $this->addWidget(-145,$entityPage,-1800,"R1C1",1,"Taches du groupe",true,$fields); } } private function renamegroup(){ $groups = $this->em->getRepository('CadolesCoreBundle:Group')->findAll(); foreach($groups as $group) { // Si présence d'un = dans le label if(stripos($group->getLabel(),"=")!==false) { $newname=str_replace("=","-",$group->getLabel()); $this->writeln("Renommer groupe = ".$group->getLabel()); // Renommer les pages $pages = $this->em->getRepository('CadolesPortalBundle:Page')->findBy(["name"=>$group->getLabel()]); foreach($pages as $page) { $page->setName($newname); $this->em->persist($page); $this->em->flush(); } // Renommer calendrier $calendars = $this->em->getRepository('CadolesPortalBundle:Calendar')->findBy(["name"=>$group->getLabel()]); foreach($calendars as $calendar) { $calendar->setName($newname); $this->em->persist($calendar); $this->em->flush(); } // Renommer blog $blogs = $this->em->getRepository('CadolesPortalBundle:Blog')->findBy(["name"=>$group->getLabel()]); foreach($blogs as $blog) { $blog->setName($newname); $this->em->persist($blog); $this->em->flush(); } // Renommer projet $projects = $this->em->getRepository('CadolesPortalBundle:Project')->findBy(["name"=>$group->getLabel()]); foreach($projects as $project) { $project->setName($newname); $this->em->persist($project); $this->em->flush(); } $group->setLabel($newname); $this->em->persist($group); $this->em->flush(); } } } private function rolegroup(){ $usergroups = $this->em->getRepository('CadolesCoreBundle:UserGroup')->findAll(); foreach($usergroups as $usergroup) { if(!$usergroup->getRolegroup()) { $role=0; if($usergroup->getFgmanager()) { $role=50; if($usergroup->getUser()==$usergroup->getGroup()->getOwner()) $role=100; } $usergroup->setRolegroup($role); $this->em->persist($usergroup); $this->em->flush(); } } } private function userdefaultmissing(){ $users = $this->em->getRepository('CadolesCoreBundle:User')->findAll(); foreach($users as $user) { if($user->getVisible()=="") { $user->setVisible(true); $this->em->persist($user); $this->em->flush(); } if($user->getAuthlevel()=="") { $user->setAuthlevel("simple"); $this->em->persist($user); $this->em->flush(); } if($user->getBelongingpopulation()=="") { $user->setBelongingpopulation("agent"); $this->em->persist($user); $this->em->flush(); } } } private function updateorthographe01(){ $config=$this->em->getRepository('CadolesCoreBundle:Config')->find("fgforceconnect"); if($config) { $config->setHelp("Forcer la connexion afin de rendre votre site privé"); $this->em->persist($config); $this->em->flush(); } $config=$this->em->getRepository('CadolesCoreBundle:Config')->find("fontfacebody"); if($config) { $config->setHelp("Police générale de votre site"); $this->em->persist($config); $this->em->flush(); } $config=$this->em->getRepository('CadolesCoreBundle:Config')->find("permgroup"); if($config) { $config->setHelp("Détermine quel rôle aura la permission de créer des groupes de travail"); $this->em->persist($config); $this->em->flush(); } $config=$this->em->getRepository('CadolesCoreBundle:Config')->find("permannu"); if($config) { $config->setHelp("Détermine quel rôle aura la permission de voir l'annuaire"); $this->em->persist($config); $this->em->flush(); } $config=$this->em->getRepository('CadolesCoreBundle:Config')->find("labelbookmarkuser"); if($config) { $config->setHelp("Titre de la section des items créés par l'utilisateur, et qui ne sont listés que dans cette section."); $this->em->persist($config); $this->em->flush(); } $config=$this->em->getRepository('CadolesCoreBundle:Config')->find("labelbookmarkitem"); if($config) { $config->setHelp("Titre sur la section des items créés par l'administrateur ou le modérateur, mis à la disposition de l'utilisateur, et sélectionnés par ce dernier pour apparaitre dans cette section plutôt que dans leur catégorie d'origine."); $this->em->persist($config); $this->em->flush(); } } private function updateorthographe02(){ $entityItem = $this->em->getRepository('CadolesPortalBundle:Item')->find(-398); if($entityItem) { if($entityItem->getSubtitle()!="Messagerie") { $entityItem->setSubtitle("Messagerie"); $entityItem->setContent("Messagerie permettant la communication sécurisée par méls. La messagerie n’a pas pour but d’envoyer des gros fichiers mais plutôt de communiquer des informations, des liens."); $this->em->persist($entityItem); $this->em->flush(); } } } private function purgepageprofil() { $page=$this->em->getRepository('CadolesPortalBundle:Page')->findOneBy(['name'=>'PROFIL - Enseignants']); if($page) { $this->em->remove($page); $this->em->flush(); } $page=$this->em->getRepository('CadolesPortalBundle:Page')->findOneBy(['name'=>'PROFIL - Administratifs']); if($page) { $this->em->remove($page); $this->em->flush(); } } private function writelnred($string) { $this->output->writeln(''.$string.''); $this->filesystem->appendToFile($this->rootlog.'cron.log', $string."\n"); } private function writeln($string) { $this->output->writeln($string); $this->filesystem->appendToFile($this->rootlog.'cron.log', $string."\n"); } protected function getHeight($image) { $size = getimagesize($image); $height = $size[1]; return $height; } // Cacul de la largeur protected function getWidth($image) { $size = getimagesize($image); $width = $size[0]; return $width; } protected function resizeImage($image,$width,$height,$scale) { list($imagewidth, $imageheight, $imageType) = getimagesize($image); $imageType = image_type_to_mime_type($imageType); $newImageWidth = ceil($width * $scale); $newImageHeight = ceil($height * $scale); $newImage = imagecreatetruecolor($newImageWidth,$newImageHeight); switch($imageType) { case "image/gif": $source=imagecreatefromgif($image); break; case "image/pjpeg": case "image/jpeg": case "image/jpg": $source=imagecreatefromjpeg($image); break; case "image/png": case "image/x-png": $source=imagecreatefrompng($image); break; } $newImage = imagecreatetruecolor( $newImageWidth, $newImageHeight ); imagealphablending( $newImage, false ); imagesavealpha( $newImage, true ); imagecopyresampled($newImage,$source,0,0,0,0,$newImageWidth,$newImageHeight,$width,$height); switch($imageType) { case "image/gif": imagegif($newImage,$image); break; case "image/pjpeg": case "image/jpeg": case "image/jpg": imagejpeg($newImage,$image,90); break; case "image/png": case "image/x-png": imagepng($newImage,$image); break; } chmod($image, 0640); return $image; } private function addWidget($id,$entityPage,$widgetid,$loc,$order,$title,$border,$fields) { $entityPagewidget = $this->em->getRepository('CadolesPortalBundle:Pagewidget')->find($id); if(!$entityPagewidget) { $entityWidget = $this->em->getRepository('CadolesPortalBundle:Widget')->find($widgetid); if($entityWidget) { $entityPagewidget = new Pagewidget(); $entityPagewidget->setId($id); $entityPagewidget->setLoc($loc); $entityPagewidget->setRoworder($order); $entityPagewidget->setName($title); $entityPagewidget->setHeight($entityWidget->getHeight()); $entityPagewidget->setAutoajust($entityWidget->getAutoajust()); $entityPagewidget->setBorder($border); $entityPagewidget->setOpened($entityWidget->getOpened()); $entityPagewidget->setIcon($entityWidget->getIcon()); $entityPagewidget->setPage($entityPage); $entityPagewidget->setWidget($entityWidget); $entityPagewidget->setParameter($fields); $this->em->persist($entityPagewidget); $this->em->flush(); } } } private function addWidget2Page($entityPage,$widgetid,$loc,$order,$title,$border,$fields) { $entityWidget = $this->em->getRepository('CadolesPortalBundle:Widget')->find($widgetid); if($entityWidget) { $entityPagewidget = $this->em->getRepository('CadolesPortalBundle:Pagewidget')->findOneBy(["page"=>$entityPage,"widget"=>$entityWidget]); if(!$entityPagewidget) { $entityPagewidget = new Pagewidget(); $entityPagewidget->setLoc($loc); $entityPagewidget->setRoworder($order); $entityPagewidget->setName($title); $entityPagewidget->setHeight($entityWidget->getHeight()); $entityPagewidget->setAutoajust($entityWidget->getAutoajust()); $entityPagewidget->setBorder($border); $entityPagewidget->setOpened($entityWidget->getOpened()); $entityPagewidget->setIcon($entityWidget->getIcon()); $entityPagewidget->setPage($entityPage); $entityPagewidget->setWidget($entityWidget); $entityPagewidget->setParameter($fields); $this->em->persist($entityPagewidget); $this->em->flush(); } } } }