<?php
namespace App\Controller;
use Pimcore\Controller\FrontendController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Mime\Address;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Pimcore\Model\DataObject\ProductCategory;
use Pimcore\Db;
use Pimcore\Model\DataObject\Service as DataObjectService;
use Symfony\Component\Process\Process;
use Pimcore\Model\Asset;
use Pimcore\Model\User;
use Pimcore\Model\DataObject\Product;
use Pimcore\Tool\Console;
use Pimcore\Mail;
use Symfony\Component\Workflow\Registry;
use Pimcore\Workflow\WorkflowManager;
use Pimcore\Workflow\Manager;
use App\Service\WorkflowService;
class DefaultController extends FrontendController
{
/**
* @Template
* @param Request $request
* @return array
*/
public function defaultAction(Request $request)
{
return [];
}
/**
* @Route("/test123", name="test", methods={"GET"})
*/
public function executeImportData1(Registry $workflowRegistry)
{
$product = Product::getById(1579);
$currentPlace = WorkflowService::getCurrentPlace(1579);
$workflow = $workflowRegistry->get($product, 'workflow');
// dd($workflow);
// $workflow = $workflowRegistry->getEnabledTransitions($product);
// $transitions = $this->definition->getTransitions();
// $marking = $workflow->getMarking($product);
// $transitionBlockerList = $workflow->buildTransitionBlockerListForTransition($subject, $marking, $transition);
// dd($transitionBlockerList);
// dd($workflow->getEnabledTransitions($product));
// dd($workflow, $workflow->getMarking($product));
// dd($workflow->can($product, 'update_marketing_review_marketing'), $currentPlace);
// dd($workflow->apply($product, 'update_marketing_review_marketing'), $currentPlace);
dd($workflow->apply($product, 'update_marketing_2_review_marketing_2'), $currentPlace);
$currentPlace = WorkflowService::getCurrentPlace(1578);
dd($currentPlace);
$workflow = $workflowRegistry->get($product, 'workflow');
dd(get_class_methods($workflow), $workflow->getDefinition(), $workflow);
$product = Product::getById(1578);
dd(get_class_methods($product));
die;
$product = Product::getById(1578);
$workflow = $workflowRegistry->get($product, 'workflow');
dd(get_class_methods($workflow), $workflow);
dd(get_class_methods($product));
die;
$user = User::getById(17);
dd(get_class_methods($user), $user->getRoles());
$mail = new \Pimcore\Mail([
'document' => "/Email/workflow_transition",
// 'params' => $this->getNotificationEmailParameters('Product', $subject, $workflow, $action, $deeplink, $language)
]);
$mail->addTo($user->getEmail(), $user->getName());
// $mail->from(new Address('contact@softmaster.vn', 'digicore'));
$result = $mail->send();
dd($result);
// die;
$mail = new Mail();
$mail->to('nvtrong1615@gmail.com');
$mail->setDocument('/Email/workflow_transition');
// $mail->setParams(['code' => 'trongnnc hahah']);
// $mail->from('support@softmaster.vn');
$mail->from(new Address('contact@softmaster.vn', 'digicore'));
$mail->getHeaders()->addTextHeader('X-Transport', 'main');
$result = $mail->send();
dd($result);
$video = Asset\Video::getById(544);
$asset = \Pimcore\Model\Asset::getById(474); // Replace with actual asset ID
if ($asset) {
echo "Asset Type: " . $asset->getType(); // Should return 'document', 'image', etc.
}
die(12);
phpinfo();
die;
$cmd = [
0 => "/usr/bin/soffice",
1 => "--headless",
2 => "--nologo",
3 => "--nofirststartwizard",
4 => "-env:UserInstallation=file:///var/www/html/var/tmp/libreoffice",
5 => "--norestore",
6 => "--convert-to",
7 => "pdf:writer_web_pdf_Export",
8 => "--outdir",
9 => "/var/www/html/var/tmp",
10 => "/var/www/html/public/var/assets/test/4. IDEA CDS - Huong dan su dung Danh cho Quan tri he thong.docx"
];
Console::addLowProcessPriority($cmd);
$process = new Process($cmd);
$process->setTimeout(240);
$data = $process->start();
dd($data, $process);
phpinfo();
die;
$list = new ProductCategory\Listing();
dd($list->count());
dd(123);
}
/**
* @Route("/data-importer/run/parallel", name="importer-run-parallel", methods={"GET"})
*/
public function executeImportData()
{
$result = exec("cd ..&& bin/console datahub:data-importer:process-queue-parallel", $output);
foreach ($output as $key => $val) {
}
echo $result;
die;
}
/**
* @Route("/restore-data", name="restore-data", methods={"GET"})
*/
public function restoreData()
{
$db = Db::get();
// Get list objects tbl
$queryGetListObjects = "SELECT * FROM objects WHERE o_path LIKE '%Phả hệ sản phẩm%'";
$queryFetch = $db->fetchAll($queryGetListObjects);
if(!empty($queryFetch)){
foreach($queryFetch as $val){
$class = "Pimcore\Model\DataObject\\" . ucfirst('ProductCategory');
$object = new $class;
$path = str_replace("/Phả hệ sản phẩm/","/Phả hệ sản phẩm v2/", $val['o_path']);
DataObjectService::createFolderByPath($path);
$object->setKey(\Pimcore\Model\Element\Service::getValidKey($val['o_key'], 'object'));
$pathArr = (explode('/', $path));
$parentObj = '';
if(count($pathArr) >= 4){
if ($pathArr[count($pathArr) - 2] && $pathArr[count($pathArr) - 2] != $val['o_key']) {
$parentName = array_reverse($pathArr)[1];
if($parentName){
$parentList = new ProductCategory\Listing();
$parentList->addConditionParam("categoryName = '{$parentName}'");
$parentList->addConditionParam("o_path LIKE '%Phả hệ sản phẩm v2%'");
$parentObj = $parentList->current();
}
}
if (!empty($parentObj)) {
$object->setParentCategory($parentObj);
}
}
$object->setParent(\Pimcore\Model\DataObject::getByPath($path));
$object->setCategoryCode($val['o_key']);
$object->setCategoryName($val['o_key']);
$object->setPublished(true);
$object->save();
}
}
die();
}
}