本文整理汇总了PHP中CRM_Upgrade_Form::getRevisionSequence方法的典型用法代码示例。如果您正苦于以下问题:PHP CRM_Upgrade_Form::getRevisionSequence方法的具体用法?PHP CRM_Upgrade_Form::getRevisionSequence怎么用?PHP CRM_Upgrade_Form::getRevisionSequence使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CRM_Upgrade_Form
的用法示例。
在下文中一共展示了CRM_Upgrade_Form::getRevisionSequence方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: run
//.........这里部分代码省略.........
$customContactSubTypeEdit = $config->customTemplateDir . "CRM/Contact/Form/Edit/" . $subTypeName . ".tpl";
$customContactSubTypeView = $config->customTemplateDir . "CRM/Contact/Page/View/" . $subTypeName . ".tpl";
if (file_exists($customContactSubTypeEdit) || file_exists($customContactSubTypeView)) {
$subTypeTemplates[$subTypeName] = $subTypeName;
}
}
}
foreach ($subTypes as $key => $subTypeName) {
$customContactSubTypeEdit = $config->templateDir . "CRM/Contact/Form/Edit/" . $subTypeName . ".tpl";
$customContactSubTypeView = $config->templateDir . "CRM/Contact/Page/View/" . $subTypeName . ".tpl";
if (file_exists($customContactSubTypeEdit) || file_exists($customContactSubTypeView)) {
$subTypeTemplates[$subTypeName] = $subTypeName;
}
}
if (!empty($subTypeTemplates)) {
$subTypeTemplates = implode(',', $subTypeTemplates);
$message .= '<br />' . ts('You are using custom template for contact subtypes: %1.', array(1 => $subTypeTemplates)) . '<br />' . ts('You need to move these subtype templates to the SubType directory in %1 and %2 respectively.', array(1 => 'CRM/Contact/Form/Edit', 2 => 'CRM/Contact/Page/View'));
}
}
} else {
if ($latestVer == '3.2.beta4') {
$statuses = array('New', 'Current', 'Grace', 'Expired', 'Pending', 'Cancelled', 'Deceased');
$sql = "\nSELECT count( id ) as statusCount \n FROM civicrm_membership_status \n WHERE name IN ( '" . implode("' , '", $statuses) . "' ) ";
$count = CRM_Core_DAO::singleValueQuery($sql);
if ($count < count($statuses)) {
$message .= '<br />' . ts("One or more Membership Status Rules was disabled during the upgrade because it did not match a recognized status name. if custom membership status rules were added to this site - review the disabled statuses and re-enable any that are still needed (Administer > CiviMember > Membership Status Rules).");
}
}
}
}
$template->assign('currentVersion', $currentVer);
$template->assign('newVersion', $latestVer);
$template->assign('upgradeTitle', ts('Upgrade CiviCRM from v %1 To v %2', array(1 => $currentVer, 2 => $latestVer)));
$template->assign('upgraded', false);
if (CRM_Utils_Array::value('upgrade', $_POST)) {
$revisions = $upgrade->getRevisionSequence();
foreach ($revisions as $rev) {
// proceed only if $currentVer < $rev
if (version_compare($currentVer, $rev) < 0) {
// as soon as we start doing anything we append ".upgrade" to version.
// this also helps detect any partial upgrade issues
$upgrade->setVersion($rev . '.upgrade');
$phpFunctionName = 'upgrade_' . str_replace('.', '_', $rev);
// follow old upgrade process for all version
// below 3.2.alpha1
if (version_compare($rev, '3.2.alpha1') < 0) {
if (is_callable(array($this, $phpFunctionName))) {
eval("\$this->{$phpFunctionName}('{$rev}');");
} else {
$upgrade->processSQL($rev);
}
} else {
// new upgrade process from version
// 3.2.alpha1
$versionObject = $upgrade->incrementalPhpObject($rev);
// predb check for major release.
if ($upgrade->checkVersionRelease($rev, 'alpha1')) {
if (!is_callable(array($versionObject, 'verifyPreDBstate'))) {
CRM_Core_Error::fatal("verifyPreDBstate method was not found for {$rev}");
}
$error = null;
if (!$versionObject->verifyPreDBstate($error)) {
if (!isset($error)) {
$error = "post-condition failed for current upgrade for {$rev}";
}
CRM_Core_Error::fatal($error);
}
}
if (is_callable(array($versionObject, $phpFunctionName))) {
$versionObject->{$phpFunctionName}($rev);
} else {
$upgrade->processSQL($rev);
}
}
// after an successful intermediate upgrade, set the complete version
$upgrade->setVersion($rev);
}
}
$upgrade->setVersion($latestVer);
$template->assign('upgraded', true);
// also cleanup the templates_c directory
$config = CRM_Core_Config::singleton();
$config->cleanup(1, false);
// clear db caching
$config->clearDBCache();
// clear temporary tables
$config->clearTempTables();
// clean the session. Note: In case of standalone this makes the user logout.
// So skip this step for standalone.
if ($config->userFramework !== 'Standalone') {
$session = CRM_Core_Session::singleton();
$session->reset(2);
}
}
}
}
$template->assign('message', $message);
$content = $template->fetch('CRM/common/success.tpl');
echo CRM_Utils_System::theme('page', $content, true, $this->_print, false, true);
}
示例2: buildQueue
/**
* Fill the queue with upgrade tasks.
*
* @param string $currentVer
* the original revision.
* @param string $latestVer
* the target (final) revision.
* @param string $postUpgradeMessageFile
* path of a modifiable file which lists the post-upgrade messages.
*
* @return CRM_Queue_Service
*/
public static function buildQueue($currentVer, $latestVer, $postUpgradeMessageFile)
{
$upgrade = new CRM_Upgrade_Form();
// hack to make 4.0.x (D7,J1.6) codebase go through 3.4.x (d6, J1.5) upgrade files,
// since schema wise they are same
if (CRM_Upgrade_Form::getRevisionPart($currentVer) == '4.0') {
$currentVer = str_replace('4.0.', '3.4.', $currentVer);
}
// Ensure that queue can be created
if (!CRM_Queue_BAO_QueueItem::findCreateTable()) {
CRM_Core_Error::fatal(ts('Failed to find or create queueing table'));
}
$queue = CRM_Queue_Service::singleton()->create(array('name' => self::QUEUE_NAME, 'type' => 'Sql', 'reset' => TRUE));
$revisions = $upgrade->getRevisionSequence();
foreach ($revisions as $rev) {
// proceed only if $currentVer < $rev
if (version_compare($currentVer, $rev) < 0) {
$beginTask = new CRM_Queue_Task(array('CRM_Upgrade_Form', 'doIncrementalUpgradeStart'), array($rev), "Begin Upgrade to {$rev}");
$queue->createItem($beginTask);
$task = new CRM_Queue_Task(array('CRM_Upgrade_Form', 'doIncrementalUpgradeStep'), array($rev, $currentVer, $latestVer, $postUpgradeMessageFile), "Upgrade DB to {$rev}");
$queue->createItem($task);
$task = new CRM_Queue_Task(array('CRM_Upgrade_Form', 'doIncrementalUpgradeFinish'), array($rev, $currentVer, $latestVer, $postUpgradeMessageFile), "Finish Upgrade DB to {$rev}");
$queue->createItem($task);
}
}
return $queue;
}