function testCapitalize() { $result = CoreUtils::capitalize('apple pie'); self::assertEquals('Apple pie', $result); $result = CoreUtils::capitalize('apple pie', true); self::assertEquals('Apple Pie', $result); $result = CoreUtils::capitalize('APPLE PIE', true); self::assertEquals('Apple Pie', $result); $result = CoreUtils::capitalize('aPpLe pIe', true); self::assertEquals('Apple Pie', $result); }
private static function _genericPostInfo(Post $Post, array $data, array &$details) { $label = CoreUtils::capitalize($data['type']) . " #{$data['id']}"; if (!empty($Post)) { $label = $Post->toAnchor($label); } $details[] = array('Post', $label); if (empty($Post)) { $details[] = array('Still exists', false); } $EpID = (new Episode($Post))->formatTitle(AS_ARRAY, 'id'); $EpData = Episodes::parseID($EpID); $Episode = Episodes::getActual($EpData['season'], $EpData['episode'], Episodes::ALLOW_MOVIES); $details[] = array('Posted under', !empty($Episode) ? "<a href='" . $Episode->formatURL() . "'>{$EpID}</a>" : $EpID . ' (now deleted/moved)'); if (!empty($Post)) { $details[] = array(($data['type'] === 'request' ? 'Requested' : 'Reserved') . ' by', Users::get($data['type'] === 'request' ? $Post->requested_by : $Post->reserved_by)->getProfileLink()); if ($data['type'] === 'request') { if (!empty($Post->reserved_by)) { $details[] = array('Reserved by', Users::get($Post->reserved_by)->getProfileLink()); } else { $details[] = array('Reserved', false); } } } }
/** * Check image URL in POST request * * @param string $image_url * @param array|null $Post Existing post for comparison * * @return ImageProvider */ static function checkImage($image_url, $Post = null) { try { $Image = new ImageProvider($image_url); } catch (\Exception $e) { Response::fail($e->getMessage()); } global $Database; foreach (Posts::$TYPES as $type) { if (!empty($Post->id)) { $Database->where('r.id', $Post->id, '!='); } /** @var $UsedUnder Post */ $UsedUnder = $Database->disableAutoClass()->join('episodes ep', 'r.season = ep.season && r.episode = ep.episode', 'LEFT')->where('r.preview', $Image->preview)->getOne("{$type}s r", 'r.id, ep.season, ep.episode, ep.twoparter'); if (!empty($UsedUnder)) { /** @var $UsedUnderPost Post */ $className = '\\App\\Models\\' . CoreUtils::capitalize($type); $UsedUnderPost = new $className($UsedUnder); $UsedUnderEpisode = new Episode($UsedUnder); Response::fail("This exact image has already been used for a {$type} under " . $UsedUnderPost->toAnchor(null, $UsedUnderEpisode, true)); } } return $Image; }