本文整理汇总了PHP中QApplication::GetUserId方法的典型用法代码示例。如果您正苦于以下问题:PHP QApplication::GetUserId方法的具体用法?PHP QApplication::GetUserId怎么用?PHP QApplication::GetUserId使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QApplication
的用法示例。
在下文中一共展示了QApplication::GetUserId方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: Form_Create
protected function Form_Create()
{
parent::Form_Create();
if (QApplication::GetUserId() == NarroUser::ANONYMOUS_USER_ID) {
$strPassHash = QApplication::QueryString('h');
$strUsername = QApplication::QueryString('u');
if ($strPassHash && $strUsername) {
$objUser = NarroUser::LoadByUsernameAndPassword($strUsername, $strPassHash);
if ($objUser instanceof NarroUser) {
QApplication::$User = $objUser;
} else {
QApplication::Redirect('login.php');
}
} else {
QApplication::Redirect('login.php');
}
}
$this->lblMessage = new QLabel($this);
$this->lblMessage->HtmlEntities = false;
$this->txtPassword = new QTextBox($this);
$this->txtPassword->TextMode = QTextMode::Password;
$this->btnChangePassword = new QButton($this);
$this->btnChangePassword->PrimaryButton = true;
$this->btnChangePassword->Text = t('Change password');
$this->btnChangePassword->AddAction(new QClickEvent(), new QServerAction('btnChangePassword_Click'));
}
示例2: Form_Create
protected function Form_Create()
{
parent::Form_Create();
if (QApplication::GetUserId() == NarroUser::ANONYMOUS_USER_ID) {
QApplication::Redirect(NarroLink::ProjectList());
exit;
}
if (QApplication::GetUserId() != QApplication::QueryString('u') && QApplication::HasPermissionForThisLang('Can manage users', null)) {
$this->objUser = NarroUser::Load(QApplication::QueryString('u'));
}
if (!$this->objUser instanceof NarroUser) {
$this->objUser = QApplication::$User;
}
$this->pnlBreadcrumb->setElements(NarroLink::ProjectList(t('Projects')), NarroLink::UserList('', t('Users')), $this->objUser->RealName);
$this->pnlTab = new QTabs($this);
new QPanel($this->pnlTab);
$arrHeaders[] = NarroLink::UserProfile($this->objUser->UserId, t('Profile'));
if (QApplication::GetUserId() == $this->objUser->UserId || QApplication::HasPermissionForThisLang('Can manage users', null)) {
new QPanel($this->pnlTab);
$arrHeaders[] = NarroLink::UserPreferences($this->objUser->UserId, t('Preferences'));
}
new QPanel($this->pnlTab);
$arrHeaders[] = NarroLink::UserRole($this->objUser->UserId, t('Roles'));
if (QApplication::GetUserId() == $this->objUser->UserId || QApplication::HasPermissionForThisLang('Can manage users', null)) {
$this->pnlUser = new NarroUserEditPanel($this->objUser, $this->pnlTab);
$arrHeaders[] = NarroLink::UserEdit($this->objUser->UserId, t('Edit'));
$this->pnlTab->Selected = count($arrHeaders) - 1;
}
$this->pnlTab->Headers = $arrHeaders;
}
示例3: GetWorkingDirectory
protected function GetWorkingDirectory($strCheckoutCommand = null)
{
$this->strWorkingDirectory = sprintf('%s/upload-u_%d-l_%s-p_%d', __TMP_PATH__, QApplication::GetUserId(), $this->objLanguage->LanguageCode, $this->objProject->ProjectId);
$this->CleanWorkingDirectory();
if (!$this instanceof NarroMercurialSourcePanel) {
mkdir($this->strWorkingDirectory);
}
$strCommand = sprintf($strCheckoutCommand, escapeshellarg($this->txtRepository->Text), escapeshellarg($this->strWorkingDirectory));
NarroLogger::LogInfo(sprintf('Running "%s"', $strCommand));
$strProcLogFile = __TMP_PATH__ . '/' . $this->objProject->ProjectId . '-' . $this->objLanguage->LanguageCode . '-vcs.log';
if (file_exists($strProcLogFile) && is_writable($strProcLogFile)) {
unlink($strProcLogFile);
}
chdir(__TMP_PATH__);
$mixProcess = proc_open("{$strCommand}", array(1 => array("file", $strProcLogFile, 'a'), 2 => array("file", $strProcLogFile, 'a')), $foo);
$status = proc_get_status($mixProcess);
while ($status['running']) {
$status = proc_get_status($mixProcess);
}
proc_close($mixProcess);
if (!file_exists($this->strWorkingDirectory)) {
throw new Exception(sprintf('The working directory "%s" does not exist, probably the checkout command failed', $this->strWorkingDirectory));
}
chmod($this->strWorkingDirectory, 0777);
if (file_exists($strProcLogFile)) {
NarroLogger::LogInfo(file_get_contents($strProcLogFile));
}
NarroUtils::RecursiveDelete($this->strWorkingDirectory . '/.hg');
foreach (NarroUtils::SearchDirectoryByName($this->strWorkingDirectory, '.svn') as $strSvnDir) {
NarroUtils::RecursiveDelete($strSvnDir);
}
$arrSearchResult = NarroUtils::SearchDirectoryByName($this->strWorkingDirectory, $this->objLanguage->LanguageCode);
if ($arrSearchResult == false) {
$arrSearchResult = NarroUtils::SearchDirectoryByName($this->strWorkingDirectory, $this->objLanguage->LanguageCode . '-' . $this->objLanguage->CountryCode);
}
if ($arrSearchResult == false) {
$arrSearchResult = NarroUtils::SearchDirectoryByName($this->strWorkingDirectory, $this->objLanguage->LanguageCode . '_' . $this->objLanguage->CountryCode);
}
NarroUtils::RecursiveChmod($this->strWorkingDirectory);
if (is_array($arrSearchResult) && count($arrSearchResult) == 1) {
NarroLogger::LogWarn(sprintf('Path changed from "%s" to "%s" because a directory named "%s" was found deeper in the given path.', $this->strWorkingDirectory, $arrSearchResult[0], $this->objLanguage->LanguageCode));
$this->strWorkingDirectory = $arrSearchResult[0];
}
if ($this->chkCopyFilesToDefaultDirectory->Checked) {
if (file_exists(__IMPORT_PATH__ . '/' . $this->objProject->ProjectId . '/' . $this->objLanguage->LanguageCode)) {
NarroUtils::RecursiveDelete(__IMPORT_PATH__ . '/' . $this->objProject->ProjectId . '/' . $this->objLanguage->LanguageCode . '/*');
} else {
mkdir(__IMPORT_PATH__ . '/' . $this->objProject->ProjectId . '/' . $this->objLanguage->LanguageCode, 0777, true);
}
NarroUtils::RecursiveCopy($this->strWorkingDirectory, __IMPORT_PATH__ . '/' . $this->objProject->ProjectId . '/' . $this->objLanguage->LanguageCode);
NarroUtils::RecursiveChmod(__IMPORT_PATH__ . '/' . $this->objProject->ProjectId . '/' . $this->objLanguage->LanguageCode);
}
return $this->strWorkingDirectory;
}
示例4: btnSave_Click
public function btnSave_Click()
{
if (trim($this->txtComment->Text)) {
$objComment = new NarroTextComment();
$objComment->UserId = QApplication::GetUserId();
$objComment->LanguageId = QApplication::GetLanguageId();
$objComment->TextId = $this->intTextId;
$objComment->Created = QDateTime::Now();
$objComment->CommentText = $this->txtComment->Text;
$objComment->CommentTextMd5 = md5($objComment->CommentText);
$objComment->Save();
$this->dtgComments->Refresh();
}
}
示例5: __construct
public function __construct(NarroUser $objUser, $objParentObject, $strControlId = null)
{
// Call the Parent
try {
parent::__construct($objParentObject, $strControlId);
} catch (QCallerException $objExc) {
$objExc->IncrementOffset();
throw $objExc;
}
$this->strTemplate = dirname(__FILE__) . '/' . __CLASS__ . '.tpl.php';
$this->objUser = $objUser;
$this->pnlTranslatedPerProjectPie = new QDatabasePieChart($this);
$this->pnlTranslatedPerProjectPie->Query = sprintf('
SELECT
narro_project.project_name AS label, COUNT(narro_suggestion.suggestion_id) AS cnt
FROM
narro_suggestion, narro_context, narro_project
WHERE
narro_context.text_id = narro_suggestion.text_id AND
narro_project.project_id = narro_context.project_id AND
narro_suggestion.language_id=%d AND
narro_suggestion.user_id=%d
GROUP BY narro_context.project_id', QApplication::GetLanguageId(), $this->objUser->UserId);
$intSuggestionCount = NarroSuggestion::CountByUserId($this->objUser->UserId);
$this->pnlTranslatedPerProjectPie->Total = $intSuggestionCount;
$this->pnlTranslatedPerProjectPie->MinimumDataValue = 0;
$this->pnlApprovedPie = new QPieChart($this);
$this->pnlApprovedPie->Total = $this->pnlTranslatedPerProjectPie->Total;
$this->pnlApprovedPie->MinimumDataValue = 0;
$objDatabase = NarroContextInfo::GetDatabase();
$strQuery = sprintf("\n SELECT\n DISTINCT narro_context_info.valid_suggestion_id\n FROM\n narro_context_info, narro_suggestion\n WHERE\n narro_context_info.valid_suggestion_id=narro_suggestion.suggestion_id AND\n narro_suggestion.user_id=%d", $this->objUser->UserId);
$objDbResult = $objDatabase->Query($strQuery);
$intValidSuggestionCount = $objDbResult->CountRows();
$this->pnlApprovedPie->Data = array(t('Approved') => $intValidSuggestionCount, t('Not approved') => $intSuggestionCount - $intValidSuggestionCount);
$this->tabActivity = new QTabs($this);
$this->dtgSuggestions_Create();
$arrHeaders[] = t('Translations');
$this->dtgReviews_Create();
$arrHeaders[] = t('Reviews');
$this->dtgComments_Create();
$arrHeaders[] = t('Comments');
$this->dtgVotes_Create();
$arrHeaders[] = t('Votes');
if (QApplication::HasPermissionForThisLang('Administrator') || QApplication::GetUserId() == $this->objUser->UserId) {
$this->dtgLog_Create();
$arrHeaders[] = t('Logged messages');
}
$this->tabActivity->Headers = $arrHeaders;
}
示例6: btnVote_Click
public function btnVote_Click($strFormId, $strControlId, $strParameter)
{
if (!QApplication::HasPermissionForThisLang('Can vote', $this->objContextInfo->Context->ProjectId)) {
return false;
}
$objNarroSuggestionVote = NarroSuggestionVote::QuerySingle(QQ::AndCondition(QQ::Equal(QQN::NarroSuggestionVote()->ContextId, $this->objContextInfo->ContextId), QQ::Equal(QQN::NarroSuggestionVote()->SuggestionId, $strParameter), QQ::Equal(QQN::NarroSuggestionVote()->UserId, QApplication::GetUserId())));
if (!$objNarroSuggestionVote) {
$objNarroSuggestionVote = new NarroSuggestionVote();
$objNarroSuggestionVote->SuggestionId = $strParameter;
$objNarroSuggestionVote->ContextId = $this->objContextInfo->ContextId;
$objNarroSuggestionVote->UserId = QApplication::GetUserId();
$objNarroSuggestionVote->Created = QDateTime::Now();
}
if (strpos($strControlId, 'votdn') === 0) {
$objNarroSuggestionVote->VoteValue = -1;
} else {
$objNarroSuggestionVote->VoteValue = 1;
}
$objNarroSuggestionVote->Modified = QDateTime::Now();
$objNarroSuggestionVote->Save();
$this->objContextInfo->Modified = QDateTime::Now();
$this->objContextInfo->Save();
if ($this->ParentControl->ParentControl->chkRefresh->Checked && $strControlId != $this->btnKeepUntranslated->ControlId) {
$this->ParentControl->ParentControl->btnSearch_Click();
}
$this->lblText->Warning = t('Thank you for your vote. You can change it anytime by voting another suggestion.');
}
示例7: GetWorkingDirectory
protected function GetWorkingDirectory()
{
if (!file_exists($this->fileSource->File)) {
throw new Exception('You have to upload a file');
}
$this->strWorkingDirectory = sprintf('%s/upload-u_%d-l_%s-p_%d', __TMP_PATH__, QApplication::GetUserId(), $this->objLanguage->LanguageCode, $this->objProject->ProjectId);
$this->CleanWorkingDirectory();
mkdir($this->strWorkingDirectory);
chmod($this->strWorkingDirectory, 0777);
switch (strtolower(pathinfo($this->fileSource->File, PATHINFO_EXTENSION))) {
case 'zip':
case 'xpi':
NarroLogger::LogInfo(sprintf('Trying to uncompress %s', $this->fileSource->FileName));
$objZipFile = new ZipArchive();
$intErrCode = $objZipFile->open($this->fileSource->File);
if ($intErrCode === TRUE) {
$objZipFile->extractTo($this->strWorkingDirectory);
$objZipFile->close();
NarroLogger::LogInfo(sprintf('Sucessfully uncompressed %s.', $this->fileSource->FileName));
} else {
switch ($intErrCode) {
case ZIPARCHIVE::ER_NOZIP:
$strError = 'Not a zip archive';
break;
default:
$strError = 'Error code: ' . $intErrCode;
}
$this->fileSource->File = '';
throw new Exception(sprintf('Failed to uncompress %s: %s', $this->fileSource->File, $strError));
}
break;
case 'dtd':
case 'properties':
case 'ini':
case 'inc':
case 'po':
case 'sdf':
case 'svg':
case 'dpo':
case 'srt':
case 'php':
copy($this->fileSource->File, $this->strWorkingDirectory . '/' . $this->fileSource->FileName);
chmod($this->strWorkingDirectory . '/' . $this->fileSource->FileName, 0666);
NarroLogger::LogInfo(sprintf('Single file uploaded, copied %s to %s', $this->fileSource->FileName, $this->strWorkingDirectory));
break;
default:
throw new Exception(sprintf('Unsupported file type uploaded'));
}
if (file_exists($this->fileSource->File)) {
unlink($this->fileSource->File);
}
$this->fileSource->btnDelete_Click();
$arrSearchResult = NarroUtils::SearchDirectoryByName($this->strWorkingDirectory, $this->objLanguage->LanguageCode);
if ($arrSearchResult == false) {
$arrSearchResult = NarroUtils::SearchDirectoryByName($this->strWorkingDirectory, $this->objLanguage->LanguageCode . '-' . $this->objLanguage->CountryCode);
}
if ($arrSearchResult == false) {
$arrSearchResult = NarroUtils::SearchDirectoryByName($this->strWorkingDirectory, $this->objLanguage->LanguageCode . '_' . $this->objLanguage->CountryCode);
}
NarroUtils::RecursiveChmod($this->strWorkingDirectory);
if (is_array($arrSearchResult) && count($arrSearchResult) == 1) {
NarroLogger::LogWarn(sprintf('Path changed from "%s" to "%s" because a directory named "%s" was found deeper in the given path.', $this->strWorkingDirectory, $arrSearchResult[0], $this->objLanguage->LanguageCode));
$this->strWorkingDirectory = $arrSearchResult[0];
}
if ($this->chkCopyFilesToDefaultDirectory->Checked) {
if (file_exists(__IMPORT_PATH__ . '/' . $this->objProject->ProjectId . '/' . $this->objLanguage->LanguageCode)) {
NarroUtils::RecursiveDelete(__IMPORT_PATH__ . '/' . $this->objProject->ProjectId . '/' . $this->objLanguage->LanguageCode . '/*');
} else {
mkdir(__IMPORT_PATH__ . '/' . $this->objProject->ProjectId . '/' . $this->objLanguage->LanguageCode, 0777);
}
NarroUtils::RecursiveCopy($this->strWorkingDirectory, __IMPORT_PATH__ . '/' . $this->objProject->ProjectId . '/' . $this->objLanguage->LanguageCode);
NarroUtils::RecursiveChmod(__IMPORT_PATH__ . '/' . $this->objProject->ProjectId . '/' . $this->objLanguage->LanguageCode);
}
return $this->strWorkingDirectory;
}
示例8: btnReplace_Click
public function btnReplace_Click()
{
if (!QApplication::HasPermissionForThisLang('Can approve')) {
return false;
}
if ($this->txtReplace->Display == false) {
$this->txtReplace->Display = true;
} else {
if ($this->txtSearch->Text == '') {
return false;
}
if ($this->txtReplace->Text == '') {
return false;
}
$strQuery = NarroContextInfo::GetQueryForConditions($objQueryBuilder, QQ::AndCondition($this->arrConditions), $this->arrClauses);
$objDbResult = NarroContextInfo::GetDatabase()->Query($strQuery);
if ($objDbResult) {
$intReplaceCnt = 0;
$intApproved = 0;
$intTranslations = 0;
$arrProcessed = array();
while ($objDbRow = $objDbResult->GetNextRow()) {
$objContextInfo = NarroContextInfo::InstantiateDbRow($objDbRow, null, null, null, $objQueryBuilder->ColumnAliasArray);
if (in_array($objContextInfo->ContextInfoId, $arrProcessed)) {
continue;
} else {
$arrProcessed[] = $objContextInfo->ContextInfoId;
}
$objReplaceSuggestion = null;
if (preg_match("/^'.*'\$/", $this->txtSearch->Text)) {
$strToReplace = substr($this->txtSearch->Text, 1, -1);
} else {
$strToReplace = $this->txtSearch->Text;
}
if ($strToReplace == $objContextInfo->Context->Text->TextValue) {
$objReplaceSuggestion = NarroSuggestion::LoadByTextIdLanguageIdSuggestionValueMd5($objContextInfo->Context->TextId, QApplication::GetLanguageId(), md5($this->txtReplace->Text));
if (!$objReplaceSuggestion) {
$objSuggestion = new NarroSuggestion();
$objSuggestion->UserId = QApplication::GetUserId();
$objSuggestion->TextId = $objContextInfo->Context->TextId;
$objSuggestion->LanguageId = QApplication::GetLanguageId();
$objSuggestion->SuggestionValue = $this->txtReplace->Text;
$objSuggestion->HasComments = 0;
$objSuggestion->IsImported = 0;
$objSuggestion->Created = QDateTime::Now();
$objSuggestion->Modified = null;
$objSuggestion->Save();
$intTranslations++;
$objReplaceSuggestion = $objSuggestion;
}
}
if ($objReplaceSuggestion instanceof NarroSuggestion) {
$intReplaceCnt++;
if ($objContextInfo->ValidSuggestionId != $objReplaceSuggestion->SuggestionId || $this->chkApprove->Checked) {
if ($objContextInfo->ValidSuggestionId == null) {
$intApproved++;
}
$objContextInfo->ValidSuggestionId = $objReplaceSuggestion->SuggestionId;
$objContextInfo->ValidatorUserId = QApplication::GetUserId();
$objContextInfo->Modified = QDateTime::Now();
$objContextInfo->Save();
}
}
}
$this->dtrText->RemoveChildControls(true);
$this->btnReplace->Refresh();
QApplication::ExecuteJavaScript(sprintf('jQuery(\'#%s\').after(\' <small style="padding: 2px;" class="ui-state-highlight ui-corner-all"><span style="width:16px; height: 16px; display:inline-block" class="ui-icon ui-icon-info"></span> %s.</small>\')', $this->btnReplace->ControlId, sprintf(t('%d occurences of "%s" translated with "%s", out of which %d were already approved, %d translations added.'), $intReplaceCnt, $strToReplace, $this->txtReplace->Text, $intApproved, $intTranslations)));
}
}
}
示例9: GetExportedSuggestion
/**
* Returns a suggestion based on intExportedSuggestion value
* @param NarroContextInfo $objContextInfo
* @return string or false
*/
public function GetExportedSuggestion(NarroContextInfo $objContextInfo)
{
switch ($this->intExportedSuggestion) {
case 1:
if ($objContextInfo->ValidSuggestionId) {
return $objContextInfo->ValidSuggestion->SuggestionValue;
} else {
return false;
}
/**
* If there is no approved suggestion, export the most voted one (minimum 1 vote required)
*/
/**
* If there is no approved suggestion, export the most voted one (minimum 1 vote required)
*/
case 2:
$objSuggestion = $this->GetMostVotedSuggestion($objContextInfo->ContextId, $objContextInfo->Context->TextId, $this->objUser->UserId);
if ($objSuggestion instanceof NarroSuggestion) {
// NarroLogger::LogDebug(sprintf('Exporting most voted suggestion "%s" for "%s"', $objSuggestion->SuggestionValue, $objContextInfo->Context->Text->TextValue));
return $objSuggestion->SuggestionValue;
} else {
return false;
}
/**
* If there is no approved suggestion, export the most recent one added
*/
/**
* If there is no approved suggestion, export the most recent one added
*/
case 3:
$objSuggestion = $this->GetMostRecentSuggestion($objContextInfo->ContextId, $objContextInfo->Context->TextId, $this->objUser->UserId);
if ($objSuggestion instanceof NarroSuggestion) {
// NarroLogger::LogDebug(sprintf('Exporting most recent suggestion "%s" for "%s"', $objSuggestion->SuggestionValue, $objContextInfo->Context->Text->TextValue));
return $objSuggestion->SuggestionValue;
} else {
return false;
}
/**
* If there is no approved suggestion, export the most voted one (minimum 1 vote required)
* If there is no voted suggestion, export the most recent one
*/
/**
* If there is no approved suggestion, export the most voted one (minimum 1 vote required)
* If there is no voted suggestion, export the most recent one
*/
case 4:
$objSuggestion = $this->GetMostVotedSuggestion($objContextInfo->ContextId, $objContextInfo->Context->TextId, $this->objUser->UserId);
if ($objSuggestion instanceof NarroSuggestion) {
// NarroLogger::LogDebug(sprintf('Exporting most voted suggestion "%s" for "%s"', $objSuggestion->SuggestionValue, $objContextInfo->Context->Text->TextValue));
return $objSuggestion->SuggestionValue;
} else {
$objSuggestion = $this->GetMostRecentSuggestion($objContextInfo->ContextId, $objContextInfo->Context->TextId, $this->objUser->UserId);
if ($objSuggestion instanceof NarroSuggestion) {
// NarroLogger::LogDebug(sprintf('Exporting most recent suggestion "%s" for "%s"', $objSuggestion->SuggestionValue, $objContextInfo->Context->Text->TextValue));
return $objSuggestion->SuggestionValue;
} else {
// NarroLogger::LogDebug(sprintf('No suggestion found for "%s"', $objContextInfo->Context->Text->TextValue));
return false;
}
}
case 5:
$objSuggestion = $this->GetUserSuggestion($objContextInfo->ContextId, $objContextInfo->Context->TextId, QApplication::GetUserId());
if ($objSuggestion instanceof NarroSuggestion) {
// NarroLogger::LogDebug(sprintf('Exporting %s\'s suggestion "%s" for "%s"', QApplication::$User->RealName, $objSuggestion->SuggestionValue, $objContextInfo->Context->Text->TextValue));
return $objSuggestion->SuggestionValue;
} else {
return false;
}
case 6:
$objSuggestion = $this->GetUserListSuggestion($objContextInfo->ContextId, $objContextInfo->Context->TextId, QApplication::GetUserId());
if ($objSuggestion instanceof NarroSuggestion) {
// NarroLogger::LogDebug(sprintf('Exporting %s\'s suggestion "%s" for "%s"', QApplication::$User->RealName, $objSuggestion->SuggestionValue, $objContextInfo->Context->Text->TextValue));
return $objSuggestion->SuggestionValue;
} else {
return false;
}
default:
return false;
}
}
示例10: ExportProject
public function ExportProject()
{
if ($this->objProject->ProjectName == 'Narro') {
$this->strTemplatePath = __DOCROOT__ . __SUBDIRECTORY__ . '/locale/en-US';
$this->strTranslationPath = __DOCROOT__ . __SUBDIRECTORY__ . '/locale/' . $this->objTargetLanguage->LanguageCode;
if (!file_exists($this->strTranslationPath)) {
mkdir($this->strTranslationPath, 0777);
}
}
NarroLogger::LogInfo(sprintf(t('Starting export for the project %s using as template %s'), $this->objProject->ProjectName, $this->strTemplatePath));
NarroLogger::LogInfo(sprintf('Active plugins: %s', join(',', QApplication::$PluginHandler->ActivePlugins)));
NarroLogger::LogInfo(sprintf('Running export under user %s', $this->objUser->Username));
$this->startTimer();
QApplication::$PluginHandler->BeforeExportProject($this->objProject);
if (file_exists($this->strTemplatePath) && is_dir($this->strTemplatePath)) {
if ($this->ExportFromDirectory()) {
$this->stopTimer();
NarroLogger::LogInfo(sprintf('Export finished successfully in %d seconds.', NarroImportStatistics::$arrStatistics['End time'] - NarroImportStatistics::$arrStatistics['Start time']));
} else {
NarroLogger::LogError('Export failed.');
}
} else {
throw new Exception(sprintf('Template path "%s" does not exist or it is not a directory', $this->strTemplatePath));
}
if (function_exists('popen') && function_exists('escapeshellarg') && function_exists('escapeshellcmd') && file_exists($this->strTemplatePath . '/../export.sh')) {
NarroLogger::LogInfo('Found an after export script, trying to run it.');
$fp = popen(sprintf('/bin/sh %s %s %d %s %d %d 2>&1', escapeshellarg(realpath($this->strTemplatePath . '/..') . '/export.sh'), escapeshellarg($this->objTargetLanguage->LanguageCode), $this->objTargetLanguage->LanguageId, escapeshellarg($this->objProject->ProjectName), $this->objProject->ProjectId, QApplication::GetUserId()), 'r');
$strOutput = '';
while (!feof($fp)) {
$strOutput .= fread($fp, 1024);
}
if (pclose($fp)) {
NarroLogger::LogError("After export script failed:\n" . $strOutput);
} else {
NarroLogger::LogInfo("After export script finished successfully:\n" . $strOutput);
}
}
if ($this->objProject->ProjectName == 'Narro') {
NarroUtils::Exec(sprintf('msgfmt -cv %s -o %s 2>&1', escapeshellarg($this->strTranslationPath . '/narro.po'), escapeshellarg($this->strTranslationPath . '/narro.mo')), $arrOutput, $arrError, $intRetVal);
if ($intRetVal != 0) {
NarroLogger::LogError("Exporting Narro's translation failed:\n" . $strOutput);
} else {
NarroLogger::LogInfo("Exported Narro's translation succesfully. Press Ctrl+F5 to reload and see it.");
}
if (file_exists($this->strTranslationPath . '/narro.mo')) {
chmod($this->strTranslationPath . '/narro.mo', 0666);
}
}
NarroProgress::ClearProgressFileName($this->objProject->ProjectId, 'export');
QApplication::$PluginHandler->AfterExportProject($this->objProject);
foreach (NarroImportStatistics::$arrStatistics as $strName => $strValue) {
if ($strValue != 0) {
NarroLogger::LogInfo(stripslashes($strName) . ': ' . $strValue);
}
}
if (SERVER_INSTANCE == 'dev') {
$strQueryData = '';
$intTimeSpentOnQueries = 0;
if (isset($GLOBALS['arrQueries']) && is_array($GLOBALS['arrQueries'])) {
foreach ($GLOBALS['arrQueries'] as $arrQueryData) {
$strQueryData .= '"' . join('";"', $arrQueryData) . '"';
$intTimeSpentOnQueries += $arrQueryData[1];
}
}
file_put_contents(__TMP_PATH__ . '/queries.csv', $strQueryData);
chmod(__TMP_PATH__ . '/queries.csv', 0666);
$strCacheData = '';
if (isset($GLOBALS['arrCacheQueries']) && is_array($GLOBALS['arrCacheQueries'])) {
foreach ($GLOBALS['arrCacheQueries'] as $arrCacheData) {
$strCacheData .= '"' . join('";"', $arrCacheData) . '"';
}
}
file_put_contents(__TMP_PATH__ . '/cache.csv', $strCacheData);
chmod(__TMP_PATH__ . '/cache.csv', 0666);
NarroLogger::LogInfo(sprintf('%d queries in total, %d seconds spent on them', count(@$GLOBALS['arrQueries']), $intTimeSpentOnQueries));
NarroLogger::LogInfo(sprintf('%d cache queries in total, %s seconds spent on them', count(@$GLOBALS['arrCacheQueries']), intval(@$GLOBALS['arrCacheQueriesSpent'])));
}
}
示例11: sprintf
<?php
/**
* Narro is an application that allows online software translation and maintenance.
* Copyright (C) 2008-2011 Alexandru Szasz <alexxed@gmail.com>
* http://code.google.com/p/narro/
*
* This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public
* License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any
* later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
* implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along with this program; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
$this->objDefaultWaitIcon->Render();
if (QApplication::GetUserId() == NarroUser::ANONYMOUS_USER_ID) {
echo sprintf(t('Translating in %s'), $_CONTROL->lstLanguage->ItemCount > 1 ? $_CONTROL->lstLanguage->Render(false) : $_CONTROL->lstLanguage->GetItem(0)->Name) . sprintf(', <a href="%s">' . t('sign in') . '</a>', 'login.php?l=' . QApplication::$TargetLanguage->LanguageCode);
} else {
echo sprintf(t('Translating in %s as %s'), $_CONTROL->lstLanguage->ItemCount > 1 ? $_CONTROL->lstLanguage->Render(false) : $_CONTROL->lstLanguage->GetItem(0)->Name, sprintf(' <a title="%s" href="%s"><b>%s</b></a> ', t('Profile'), NarroLink::UserProfile(QApplication::$User->UserId), QApplication::$User->RealName ? QApplication::$User->RealName : QApplication::$User->RealName) . sprintf('<a title="%s" href="%s" style="vertical-align:middle"><img src="%s/settings.png" /></a>', t('Preferences'), NarroLink::UserPreferences(QApplication::GetUserId()), __NARRO_IMAGE_ASSETS__) . ' ' . $_CONTROL->btnLogout->Render(false));
}