73 lines
2.2 KiB
PHP
73 lines
2.2 KiB
PHP
<?php
|
|
|
|
namespace ProcessMaker\BusinessModel\Migrator;
|
|
use ProcessMaker\Util;
|
|
|
|
class FileHandler
|
|
{
|
|
/**
|
|
* @param $prj_uid
|
|
* @return array
|
|
*/
|
|
public function getFilesToExclude($prj_uid)
|
|
{
|
|
try {
|
|
$arrayPublicFileToExclude = array("wsClient.php");
|
|
$criteria = new \Criteria("workflow");
|
|
$criteria->addSelectColumn(\WebEntryPeer::WE_DATA);
|
|
$criteria->add(\WebEntryPeer::PRO_UID, $prj_uid, \Criteria::EQUAL);
|
|
$criteria->add(\WebEntryPeer::WE_METHOD, "WS", \Criteria::EQUAL);
|
|
|
|
$rsCriteria = \WebEntryPeer::doSelectRS($criteria);
|
|
$rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
|
|
|
while ($rsCriteria->next()) {
|
|
$row = $rsCriteria->getRow();
|
|
|
|
$arrayPublicFileToExclude[] = $row["WE_DATA"];
|
|
$arrayPublicFileToExclude[] = preg_replace("/^(.+)\.php$/", "$1Post.php", $row["WE_DATA"]);
|
|
}
|
|
|
|
return $arrayPublicFileToExclude;
|
|
|
|
} catch (\Exception $e) {
|
|
\Logger::log($e);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @param $prj_uid
|
|
* @param $arrayPublicFileToExclude
|
|
* @param $target
|
|
* @return array
|
|
*/
|
|
public function getTemplatesOrPublicFiles($prj_uid, $arrayPublicFileToExclude = array(), $target)
|
|
{
|
|
$workflowFile = array();
|
|
$workspaceTargetDir = ($target === 'PUBLIC') ? 'public' : 'mailTemplates';
|
|
$workspaceDir = PATH_DATA . "sites" . PATH_SEP . SYS_SYS . PATH_SEP;
|
|
|
|
$templatesDir = $workspaceDir . $workspaceTargetDir . PATH_SEP . $prj_uid;
|
|
$templatesFiles = Util\Common::rglob("$templatesDir/*", 0, true);
|
|
|
|
foreach ($templatesFiles as $templatesFile) {
|
|
if (is_dir($templatesFile)) {
|
|
continue;
|
|
}
|
|
|
|
$filename = basename($templatesFile);
|
|
|
|
if ($target == "PUBLIC" && in_array($filename, $arrayPublicFileToExclude)) {
|
|
continue;
|
|
}
|
|
|
|
$workflowFile[$target][] = array(
|
|
"filename" => $filename,
|
|
"filepath" => $prj_uid . PATH_SEP . $filename,
|
|
"file_content" => file_get_contents($templatesFile)
|
|
);
|
|
}
|
|
return $workflowFile;
|
|
}
|
|
|
|
} |