function emailCacheOwner($ptId, $cacheId, $linkCode) { global $octeam_email, $usr, $absolute_server_URI, $site_name, $siteDateFormat, $siteDateTimeFormat; $owners = powerTrailBase::getPtOwners($ptId); $ptDbRow = powerTrailBase::getPtDbRow($ptId); $query = 'SELECT `caches` . * , `user`.`email`, `user`.`username` FROM `caches` , `user` WHERE `cache_id` =:1 AND `caches`.`user_id` = `user`.`user_id` LIMIT 1'; $db = OcDb::instance(); $s = $db->multiVariableQuery($query, $cacheId); $cacheData = $db->dbResultFetchOneRowOnly($s); //remove images $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=UTF-8 ' . "\r\n"; $headers .= "From: {$site_name} <" . $octeam_email . ">\r\n"; $headers .= "Reply-To: " . $octeam_email . "\r\n"; $mailbody = file_get_contents(dirname(__FILE__) . '/candidateEmail.html'); $mailbody = mb_ereg_replace('{cacheOwnerName}', $cacheData['username'], $mailbody); $mailbody = mb_ereg_replace('{ptName}', $ptDbRow['name'], $mailbody); $mailbody = mb_ereg_replace('{ptId}', $ptId, $mailbody); $mailbody = mb_ereg_replace('{cacheName}', $cacheData['name'], $mailbody); $mailbody = mb_ereg_replace('{dateTime}', date($siteDateFormat), $mailbody); $mailbody = mb_ereg_replace('{userId}', $usr['userid'], $mailbody); $mailbody = mb_ereg_replace('{userName}', $usr['username'], $mailbody); $mailbody = mb_ereg_replace('{absolute_server_URI}', $absolute_server_URI, $mailbody); $mailbody = mb_ereg_replace('{linkCode}', $linkCode, $mailbody); $mailbody = mb_ereg_replace('{runwatch14}', tr('runwatch14'), $mailbody); $mailbody = mb_ereg_replace('{cacheWaypoint}', $cacheData['wp_oc'], $mailbody); $mailbody = mb_ereg_replace('{pt183}', tr('pt183'), $mailbody); $mailbody = mb_ereg_replace('{pt184}', tr('pt184'), $mailbody); $mailbody = mb_ereg_replace('{pt185}', tr('pt185'), $mailbody); $mailbody = mb_ereg_replace('{pt189}', tr('pt189'), $mailbody); $mailbody = mb_ereg_replace('{pt186}', tr('pt186'), $mailbody); $mailbody = mb_ereg_replace('{pt187}', tr('pt187'), $mailbody); $mailbody = mb_ereg_replace('{pt188}', tr('pt188'), $mailbody); $mailbody = mb_ereg_replace('{pt190}', tr('pt190'), $mailbody); mb_send_mail($cacheData['email'], tr('pt183'), $mailbody, $headers); // for debug only // mb_send_mail('*****@*****.**', tr('pt183'), $mailbody, $headers); }
<?php session_start(); if (!isset($_SESSION['user_id'])) { print 'no hacking please!'; exit; } require_once __DIR__ . '/../lib/ClassPathDictionary.php'; $ptAPI = new powerTrailBase(); $db = \lib\Database\DataBaseSingleton::Instance(); $projectId = $_REQUEST['projectId']; $userId = $_REQUEST['userId']; //check if user is only one owner if (count(powerTrailBase::getPtOwners($projectId)) > 1 && $ptAPI::checkIfUserIsPowerTrailOwner($_SESSION['user_id'], $projectId) == 1) { $addQuery = 'DELETE FROM `PowerTrail_owners` WHERE `userId` = :1 AND `PowerTrailId` = :2'; $db->multiVariableQuery($addQuery, $userId, $projectId); $logQuery = 'INSERT INTO `PowerTrail_actionsLog`(`PowerTrailId`, `userId`, `actionDateTime`, `actionType`, `description`, `cacheId`) VALUES (:1,:2,NOW(),5,:3,:4)'; $db->multiVariableQuery($logQuery, $projectId, $_SESSION['user_id'], $ptAPI->logActionTypes[5]['type'] . ' removed owner is: ' . $userId, $userId); } $pt = new powerTrailController($_SESSION['user_id']); $pt->findPtOwners($projectId); $ptOwners = displayPtOwnerList($pt->getPtOwners()); // $result = json_encode($cacheCountResult); // sleep(5); echo $ptOwners; function displayPtOwnerList($ptOwners) { $ownerList = ''; foreach ($ptOwners as $userId => $user) { $ownerList .= '<a href="viewprofile.php?userid=' . $userId . '">' . $user['username'] . '</a>'; if ($userId != $_SESSION['user_id']) {
public static function emailOwners($ptId, $commentType, $commentDateTime, $commentText, $action, $commentOwnerId = false, $delReason = '') { /*ugly, but we need this values from common.inc.php*/ global $watchlistMailfrom, $usr, $absolute_server_URI, $site_name, $siteDateFormat, $siteDateTimeFormat; $siteDateFormat = 'Y-m-d'; $siteDateTimeFormat = 'Y-m-d H:i'; $owners = powerTrailBase::getPtOwners($ptId); $commentTypes = powerTrailBase::getPowerTrailComments(); $ptDbRow = powerTrailBase::getPtDbRow($ptId); //remove images $commentText = preg_replace("/<img[^>]+\\>/i", "", $commentText); $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=UTF-8 ' . "\r\n"; $headers .= "From: {$site_name} <" . $watchlistMailfrom . ">\r\n"; $headers .= "Reply-To: " . $watchlistMailfrom . "\r\n"; $mailbody = read_file(dirname(__FILE__) . '/commentEmail.html'); switch ($action) { case 'delComment': $subject = tr('pt131') . ' ' . $ptDbRow['name']; $mailbody = mb_ereg_replace('{commentAction}', tr('pt132'), $mailbody); $mailbody = mb_ereg_replace('{actionDesc}', tr('pt131'), $mailbody); $mailbody = mb_ereg_replace('{delReason}', $delReason, $mailbody); $mailbody = mb_ereg_replace('{pt153}', tr('pt153'), $mailbody); break; case 'newComment': $subject = tr('pt128') . ' ' . $ptDbRow['name']; $mailbody = mb_ereg_replace('{commentAction}', tr('pt127'), $mailbody); $mailbody = mb_ereg_replace('{actionDesc}', tr('pt128'), $mailbody); $mailbody = mb_ereg_replace('{delReason}', '', $mailbody); $mailbody = mb_ereg_replace('{pt153}', '', $mailbody); break; case 'editComment': $subject = tr('pt146') . ' ' . $ptDbRow['name']; $mailbody = mb_ereg_replace('{commentAction}', tr('pt147'), $mailbody); $mailbody = mb_ereg_replace('{actionDesc}', tr('pt146'), $mailbody); $mailbody = mb_ereg_replace('{delReason}', '', $mailbody); $mailbody = mb_ereg_replace('{pt153}', '', $mailbody); break; } if (!isset($usr['userid'])) { $usr['userid'] = -1; } if (!isset($usr['username'])) { $usr['username'] = '******'; } $mailbody = mb_ereg_replace('{runwatch14}', tr('runwatch14'), $mailbody); $mailbody = mb_ereg_replace('{commentDateTime}', date($siteDateTimeFormat, strtotime($commentDateTime)), $mailbody); $mailbody = mb_ereg_replace('{userId}', $usr['userid'], $mailbody); $mailbody = mb_ereg_replace('{userName}', $usr['username'], $mailbody); $mailbody = mb_ereg_replace('{absolute_server_URI}', $absolute_server_URI, $mailbody); if (isset($commentTypes[$commentType]['translate'])) { $mailbody = mb_ereg_replace('{commentType}', tr($commentTypes[$commentType]['translate']), $mailbody); } else { $mailbody = mb_ereg_replace('{commentType}', ' ', $mailbody); } $mailbody = mb_ereg_replace('{ptName}', $ptDbRow['name'], $mailbody); $mailbody = mb_ereg_replace('{ptId}', $ptId, $mailbody); $mailbody = mb_ereg_replace('{pt133}', tr('pt133'), $mailbody); $mailbody = mb_ereg_replace('{pt134}', tr('pt134'), $mailbody); $mailbody = mb_ereg_replace('{commentText}', htmlspecialchars_decode(stripslashes($commentText)), $mailbody); $mailbody = mb_ereg_replace('{addingCommentDateTime}', date($siteDateTimeFormat), $mailbody); $doNotSendEmailToCommentAuthor = false; foreach ($owners as $owner) { $to = $owner['email']; if ($owner['power_trail_email'] == 1) { mb_send_mail($to, $subject, $mailbody, $headers); } if ($commentOwnerId && $commentOwnerId == $owner["user_id"]) { $doNotSendEmailToCommentAuthor = true; } } if ($commentOwnerId && !$doNotSendEmailToCommentAuthor) { $userDetails = powerTrailBase::getUserDetails($commentOwnerId); if ($userDetails['power_trail_email']) { mb_send_mail($userDetails['email'], $subject, $mailbody, $headers); } } //for debug only //mb_send_mail('*****@*****.**', $subject, $mailbody, $headers); }
function displayPtCommentsSelector($htmlid, \lib\Objects\PowerTrail\PowerTrail $powerTrail, $selectedId = 0, $usr = null) { $appContainer = lib\Objects\ApplicationContainer::Instance(); if ($appContainer->getLoggedUser() === false) { return ''; } $cachesFoundByUser = $powerTrail->getFoundCachsByUser($appContainer->getLoggedUser()->getUserId()); $percetDemand = $powerTrail->getPerccentRequired(); $ptId = $powerTrail->getId(); if ($powerTrail->getCacheCount() != 0) { $percentUserFound = round(count($cachesFoundByUser) * 100 / $powerTrail->getCacheCount(), 2); } else { $percentUserFound = 0; } $commentsArr = lib\Controllers\PowerTrailController::getEntryTypes(); $ptOwners = powerTrailBase::getPtOwners($ptId); $selector = '<select id="' . $htmlid . '" name="' . $htmlid . '">'; foreach ($commentsArr as $id => $type) { if ($id == 2) { if ($percentUserFound < $percetDemand || powerTrailBase::checkUserConquestedPt($appContainer->getLoggedUser()->getUserId(), $ptId) > 0) { continue; } $selected = 'selected="selected"'; } if (!isset($ptOwners[$appContainer->getLoggedUser()->getUserId()]) && ($id == 3 || $id == 4 || $id == 5)) { continue; } if ($id == 3 && $powerTrail->canBeOpened() === false && $powerTrail->getStatus() != \lib\Objects\PowerTrail\PowerTrail::STATUS_OPEN) { /* this PT cannot be opened */ continue; } if ($id === \lib\Objects\PowerTrail\Log::TYPE_ADD_WARNING && $appContainer->getLoggedUser()->getIsAdmin() === false) { continue; } if (!isset($selected)) { $selected = ''; } if ($selectedId == $id) { $selected = 'selected'; } $selector .= '<option value="' . $id . '" ' . $selected . '>' . tr($type['translate']) . '</option>'; unset($selected); } $selector .= '</select>'; return $selector; }
<?php $rootpath = __DIR__ . '/../'; require_once __DIR__ . '/../lib/common.inc.php'; db_disconnect(); $commentsArr = powerTrailBase::getPowerTrailComments(); $ptOwners = powerTrailBase::getPtOwners($_REQUEST['projectId']); $paginateCount = powerTrailBase::commentsPaginateCount; foreach ($ptOwners as $owner) { $ownersIdArray[] = $owner['user_id']; } $nextSearchStart = $_REQUEST['start'] + $_REQUEST['limit']; $db = \lib\Database\DataBaseSingleton::Instance(); $q = 'SELECT count(*) AS `count` FROM `PowerTrail_comments` WHERE `PowerTrailId` =:1 AND `deleted` = 0 '; $db->multiVariableQuery($q, $_REQUEST['projectId']); $count = $db->dbResultFetch(); $count = $count['count']; $query = 'SELECT * FROM `PowerTrail_comments`, `user` WHERE `PowerTrailId` =:variable1 AND `deleted` = 0 AND `PowerTrail_comments`.`userId` = `user`.`user_id` ORDER BY `logDateTime` DESC LIMIT :variable2 , :variable3 '; $params['variable1']['value'] = (int) $_REQUEST['projectId']; $params['variable1']['data_type'] = 'integer'; $params['variable2']['value'] = (int) $_REQUEST['start']; $params['variable2']['data_type'] = 'integer'; $params['variable3']['value'] = (int) $_REQUEST['limit']; $params['variable3']['data_type'] = 'integer'; $db->paramQuery($query, $params); // multiVariableQuery($query, $projectId, 0, 8); $result = $db->dbResultFetchAll(); // print_r($result); if (count($result) == 0) { echo '<p><br /><br />' . tr('pt118') . '</p><br /><br />'; exit;
function displayPtCommentsSelector($htmlid, \lib\Objects\PowerTrail\PowerTrail $powerTrail, $selectedId = 0, $usr = null) { $cachesFoundByUser = $powerTrail->getFoundCachsByUser($usr['userid']); $percetDemand = $powerTrail->getPerccentRequired(); $ptId = $powerTrail->getId(); if ($powerTrail->getCacheCount() != 0) { $percentUserFound = round(count($cachesFoundByUser) * 100 / $powerTrail->getCacheCount(), 2); } else { $percentUserFound = 0; } $commentsArr = powerTrailBase::getPowerTrailComments(); $ptOwners = powerTrailBase::getPtOwners($ptId); $selector = '<select id="' . $htmlid . '" name="' . $htmlid . '">'; foreach ($commentsArr as $id => $type) { if ($id == 2) { if ($percentUserFound < $percetDemand || powerTrailBase::checkUserConquestedPt($_SESSION['user_id'], $ptId) > 0) { continue; } $selected = 'selected="selected"'; } if (!isset($ptOwners[$usr['userid']]) && ($id == 3 || $id == 4 || $id == 5)) { continue; } if (!isset($selected)) { $selected = ''; } if ($selectedId == $id) { $selected = 'selected'; } $selector .= '<option value="' . $id . '" ' . $selected . '>' . tr($type['translate']) . '</option>'; unset($selected); } $selector .= '</select>'; return $selector; }