Example #1
0
 static function getHashPath($name)
 {
     return FileRepo::getHashPathForLevel($name, 2);
 }
Example #2
0
 public static function getVidDirPath($filename)
 {
     return FileRepo::getHashPathForLevel($filename, self::NUM_DIR_LEVELS);
 }
 /**
  * @brief Gets an array of sample avatars
  *
  * @desc Method based on Masthead::getDefaultAvatars()
  *
  * @param string $thumb a thumb
  *
  * @return array multidimensional array with default avatars defined on messaging.wikia.com
  *
  * @author Andrzej 'nAndy' Ɓukaszewski
  */
 private function getDefaultAvatars($thumb = '')
 {
     wfProfileIn(__METHOD__);
     // parse message only once per request
     if (empty($thumb) && is_array($this->defaultAvatars) && count($this->defaultAvatars) > 0) {
         wfProfileOut(__METHOD__);
         return $this->defaultAvatars;
     }
     $this->defaultAvatars = array();
     $images = getMessageForContentAsArray('blog-avatar-defaults');
     if (is_array($images)) {
         foreach ($images as $image) {
             $hash = FileRepo::getHashPathForLevel($image, 2);
             $this->defaultAvatars[] = array('name' => $image, 'url' => $this->defaultAvatarPath . $thumb . $hash . $image);
         }
     }
     wfProfileOut(__METHOD__);
     return $this->defaultAvatars;
 }
Example #4
0
 /**
  * getPurgeUrl -- the basic URL (without image server rewriting, cachebuster,
  * etc.) of the avatar.  This can be sent to squid to purge it.
  *
  * @access public
  *
  * @param $thumb String  -- if defined will be added as part of base path
  *      default empty string ""
  *
  * @return String
  */
 public function getPurgeUrl($thumb = "")
 {
     global $wgBlogAvatarPath;
     $url = $this->mUser->getOption(AVATAR_USER_OPTION_NAME);
     if ($url) {
         /**
          * if default avatar we glue with messaging.wikia.com
          * if uploaded avatar we glue with common avatar path
          */
         if (strpos($url, '/') !== false) {
             /**
              * uploaded file, we are adding common/avatars path
              */
             $url = $wgBlogAvatarPath . rtrim($thumb, '/') . $url;
         } else {
             /**
              * default avatar, path from messaging.wikia.com
              */
             $hash = FileRepo::getHashPathForLevel($url, 2);
             $url = $this->mDefaultPath . trim($thumb, '/') . '/' . $hash . $url;
         }
     } else {
         $defaults = $this->getDefaultAvatars(trim($thumb, "/") . "/");
         $url = array_shift($defaults);
     }
     return $url;
 }
 /**
  * @param Masthead $masthead
  * @param int $width
  * @param $timestamp
  * @return \Wikia\Vignette\UrlGenerator
  */
 public static function getVignetteUrl(Masthead $masthead, $width, $timestamp)
 {
     $relativePath = $masthead->mUser->getGlobalAttribute(AVATAR_USER_OPTION_NAME);
     if ($relativePath) {
         if (strpos($relativePath, '/') !== false) {
             // custom avatar
             $url = self::vignetteCustomUrl($width, $relativePath, $timestamp);
         } else {
             // wikia-provided avatars
             $hash = FileRepo::getHashPathForLevel($relativePath, 2);
             $bucket = VignetteRequest::parseBucket($masthead->mDefaultPath);
             $relativePath = $hash . $relativePath;
             $url = self::buildVignetteUrl($width, $bucket, $relativePath, $timestamp, false);
         }
     } else {
         // default avatar
         $legacyDefaultUrl = $masthead->getDefaultAvatars('thumb/')[0];
         $bucket = VignetteRequest::parseBucket($legacyDefaultUrl);
         $relativePath = VignetteRequest::parseRelativePath($legacyDefaultUrl);
         $url = self::buildVignetteUrl($width, $bucket, $relativePath, $timestamp, false);
     }
     return $url;
 }
Example #6
0
/**
 * Diese Hook-Funktion aktualisiert die Index-Sektion, sollte es sich um einen FileUpload handeln
 * und ein neuer Inhalt fuer diese Sektion vorbereitet worden sein.
 * In jedem Fall wird die global abgelegte Index-Sektions-Inhalts-Variable wieder geleert.
 *
 * @param $oArticle OBJECT Der Artikel
 * @param $oUser OBJECT Der Benutzer
 * @param $sContent STRING Inhalt des Artikels
 * @param $sSummary STRING Zusammenfassung fuer das Update
 * @param $minor SIEHE WIKIDOKU
 * @param $watch SIEHE WIKIDOKU
 * @param $sectionanchor SIEHE WIKIDOKU
 * @param $flags SIEHE WIKIDOKU
 * @return BOOL TRUE
 */
function wfFiArticleSave(&$oArticle, &$oUser, &$sContent, &$sSummary, $minor, $watch, $sectionanchor, &$flags)
{
    global $wgFiPrefix, $wgFiPostfix, $wgUploadDirectory, $wgHashedUploadDirectory, $wgRequest, $wgFiCreateIndexThisTime;
    // Spezialseite und UploadFormular setzen $wgFiCreateIndexThisTime auf true zur Indexerstellung
    if ($wgFiCreateIndexThisTime === true || !is_null($wgRequest->getVal('wpProcessIndex')) && $wgRequest->getVal('wpProcessIndex') == "true") {
        // Datei holen und Index erstellen
        $sFilepath = $wgUploadDirectory . "/" . FileRepo::getHashPathForLevel($oArticle->mTitle->mDbkeyform, $wgHashedUploadDirectory ? 2 : 0) . $oArticle->mTitle->mDbkeyform;
        $sIndex = wfFiGetIndex($sFilepath);
        if (is_numeric($sIndex)) {
            // kein Index aus Datei erzeugt
            switch ($sIndex) {
                case WC_FI_ERR_MISSING_SYSTEMCOMMAND:
                    $sReason = wfMsg('fileindexer_index_creation_failed_comment_missing_systemcommand');
                    break;
                case WC_FI_ERR_UNKNOWN_FILETYPE:
                    $sReason = wfMsg('fileindexer_index_creation_failed_comment_unknown_filetype');
                    break;
                default:
                    $sReason = wfMsg('fileindexer_index_creation_failed_comment_unknown_reason');
            }
            $sSummary .= (substr($sSummary, strlen($sSummary) - 1, 1) == "\n" ? "" : "\n") . wfMsg('fileindexer_index_creation_failed_comment') . $sReason;
            return true;
        }
        // Index suchen und Text in Fragmente splitten
        $aFragments = wfFiGetIndexFragments($sContent);
        if ($aFragments === false) {
            // kein Index gefunden
            if (substr($sContent, strlen($sContent) - 1, 1) != "\n") {
                $sContent .= "\n";
            }
            $sContent .= $sIndex;
            $sSummary .= (substr($sSummary, strlen($sSummary) - 1, 1) == "\n" ? "" : "\n") . wfMsg('fileindexer_index_creation_complete_comment');
            return true;
        } else {
            // Index gefunden
            $sContent = $aFragments['pre'] . $sIndex . $aFragments['post'];
            $sSummary .= (substr($sSummary, strlen($sSummary) - 1, 1) == "\n" ? "" : "\n") . wfMsg('fileindexer_index_update_complete_comment');
            return true;
        }
    }
    return true;
}
Example #7
0
 /**
  * Get a relative path including trailing slash, e.g. f/fa/
  * If the repo is not hashed, returns an empty string
  */
 function getHashPath($name)
 {
     return FileRepo::getHashPathForLevel($name, $this->hashLevels);
 }