function updateJSStrings($lang)
{
    include INCLUDES . "emoticons.inc";
    // local $_emoticons
    include_once INCLUDES . "files.php";
    forceFolders("scripts/strings");
    $neededStrings = array("_ARE_YOU_SURE" => "_ARE_YOU_SURE", "_BB_ALIGN_CENTER" => "_BB_ALIGN_CENTER", "_BB_ALIGN_JUSTIFY" => "_BB_ALIGN_JUSTIFY", "_BB_ALIGN_LEFT" => "_BB_ALIGN_LEFT", "_BB_ALIGN_RIGHT" => "_BB_ALIGN_RIGHT", "_BB_BOLD" => "_BB_BOLD", "_BB_CLUBICON" => "_BB_CLUBICON", "_BB_EMOTICON" => "_BB_EMOTICON", "_BB_ITALIC" => "_BB_ITALIC", "_BB_STRIKED" => "_BB_STRIKED", "_BB_UNDERLINE" => "_BB_UNDERLINE", "_BB_SUBSCRIPT" => "_BB_SUBSCRIPT", "_BB_SUPERSCRIPT" => "_BB_SUPERSCRIPT", "_BB_THUMB" => "_BB_THUMB", "_BB_URL" => "_BB_URL", "_BB_USERICON" => "_BB_USERICON", "_BLANK_COMMENT" => "_BLANK_COMMENT", "_EMOTICONS" => "_EMOTICONS", "_EMOTICON_EXPLAIN" => "_EMOTICON_EXPLAIN", "_ENTER_CLUBNAME" => "_ENTER_CLUBNAME", "_ENTER_LINK_TEXT" => "_ENTER_LINK_TEXT", "_ENTER_LINK_URL" => "_ENTER_LINK_URL", "_ENTER_THUMBID" => "_ENTER_THUMBID", "_ENTER_USERNAME" => "_ENTER_USERNAME", "_FUZZY_0" => "_FUZZY_0", "_FUZZY_1" => "_FUZZY_1", "_FUZZY_2" => "_FUZZY_2", "_FUZZY_3" => "_FUZZY_3", "_FUZZY_7" => "_FUZZY_7", "_FUZZY_11" => "_FUZZY_11", "_FUZZY_24" => "_FUZZY_24", "_FUZZY_48" => "_FUZZY_48", "_FUZZY_99" => "_FUZZY_99", "_FUZZY_234" => "_FUZZY_234", "_FUZZY_456" => "_FUZZY_456", "_FUZZY_987" => "_FUZZY_987", "_HIDE" => "_HIDE", "_INVALID_FILE_TYPE" => "_JS_INVALID_FILE_TYPE", "_MORE" => "_MORE", "_NO_BBCODE" => "_NO_BBCODE", "_NO_EMOTICONS" => "_NO_EMOTICONS", "_NO_SIG" => "_NO_SIG", "_OEKAKI_NO_EDITOR" => "_JS_OEKAKI_NO_EDITOR", "_PLEASE_WAIT" => "_JS_PLEASE_WAIT", "_PREVIEW" => "_PREVIEW", "_PREV_FLASH_MOVIE" => "_JS_PREV_FLASH_MOVIE", "_PREV_TEXT_FILE" => "_JS_PREV_TEXT_FILE", "_READONLY" => "_READONLY", "_REQUIRE_LOGIN" => "_REQUIRE_LOGIN", "_SEND_COMMENT" => "_SEND_COMMENT", "_UPDATES" => "_UPDATES", "_MESSAGES" => "_MESSAGES", "_FAVOURITES" => "_FAVOURITES", "_COMMENTS" => "_COMMENTS", "_JOURNALS" => "_JOURNALS", "_SUBMISSIONS" => "_SUBMISSIONS", "_SUBMIT_TYPE_EXTRA" => "_SUBMIT_TYPE_EXTRA");
    $filename = "scripts/strings/" . $lang . ".js";
    $fp = fopen($filename . "_tmp", "w");
    foreach ($neededStrings as $key => $value) {
        $result = sql_query("SELECT `strText` FROM `strings` " . "WHERE `strLanguage` = '{$lang}' AND `strName` = '" . $value . "' LIMIT 1");
        if ($data = mysql_fetch_assoc($result)) {
            $text = formatText($data["strText"], true);
        } else {
            $result = sql_query("SELECT `strText` FROM `strings` " . "WHERE `strLanguage` = 'en' AND `strName` = '" . $value . "' LIMIT 1");
            if ($data = mysql_fetch_assoc($result)) {
                $text = formatText($data["strText"], true);
            } else {
                $text = "???";
            }
        }
        fwrite($fp, "var {$key} = '" . str_replace("\n", "", addslashes($text)) . "';\n");
    }
    fwrite($fp, "var Emoticons = new Array( ");
    $emots = array();
    foreach ($_emoticons as $emo1) {
        if (!$emo1["emoExtra"]) {
            $emots[$emo1["emoExpr"]] = $emo1;
        }
    }
    ksort($emots);
    $first = true;
    foreach ($emots as $emo1) {
        if ($first) {
            $first = false;
        } else {
            fwrite($fp, ",");
        }
        fwrite($fp, "{ expr: '" . $emo1["emoExpr"] . "', icon: '" . $emo1["emoFilename"] . "' }");
    }
    unset($emots);
    fwrite($fp, " );\n");
    fclose($fp);
    if (file_exists($filename)) {
        unlink($filename);
    }
    rename($filename . "_tmp", $filename);
}
Example #2
0
             $_FILES["submission"]["also_move_ext"] = ".oeb";
             $oekakiExtras = ", `objAniType` = 'oeb'";
         } else {
             $oekakiExtras = ", `objAniType` = 'no'";
         }
         $_POST["submit"] = true;
     } else {
         redirect(url("oekaki/" . $objid));
     }
 }
 include_once INCLUDES . "submission.php";
 include_once INCLUDES . "files.php";
 // file uploading functions
 if (isset($_POST["textfile"]) && $_POST["textfile"] != "") {
     $tempfilename = "files/texttemp/" . $_auth["useid"] . ".txt";
     forceFolders(dirname($tempfilename));
     $fp = fopen($tempfilename, "wb");
     fputs($fp, $_POST["textfile"]);
     fclose($fp);
     $_FILES["submission"]["error"] = UPLOAD_ERR_OK;
     $_FILES["submission"]["tmp_name"] = $tempfilename;
     $_FILES["submission"]["name"] = "textfile.txt";
     $_FILES["submission"]["type"] = "text/plain";
     $_FILES["submission"]["simple_move"] = true;
     if (checkUploadedFile("thumb") == _UPL_NO_FILE) {
         $thumbfilename = applyIdToPath("files/thumbs/", $objData["objid"]) . "-" . preg_replace('/[^0-9]/', "", $objData["objLastEdit"]) . ".jpg";
         $_FILES["thumb"]["error"] = UPLOAD_ERR_OK;
         $_FILES["thumb"]["tmp_name"] = $thumbfilename;
         $_FILES["thumb"]["name"] = "thumbnail.jpg";
         $_FILES["thumb"]["type"] = "image/jpeg";
         $_FILES["thumb"]["simple_move"] = true;
Example #3
0
function oekakiProcess($editor, $saveAnimation = false)
{
    // user's global session id is used as oekaki session id
    $oekakiSession = $_GET["oekakiSession"];
    $baseFilename = "files/oekakitemp/" . $oekakiSession;
    include_once INCLUDES . "files.php";
    // for forceFolders()
    forceFolders(dirname($baseFilename));
    // delete old files if any
    foreach (glob($baseFilename . "-*.*") as $filename) {
        @unlink($filename);
    }
    $baseFilename .= "-" . strval(time());
    $data = $GLOBALS["HTTP_RAW_POST_DATA"];
    switch ($editor) {
        case OEK_SHI:
        case OEK_SHIPRO:
        case OEK_PAINTBBS:
            $signature = $editor == OEK_PAINTBBS ? "P" : "S";
            if (substr($data, 0, 1) != $signature) {
                return;
            }
            $headerLength = intval(substr($data, 1, 8));
            $header = substr($data, 9, $headerLength);
            $imageLength = intval(substr($data, $headerLength + 9, 8));
            $image = substr($data, $headerLength + 19, $imageLength);
            $animLength = intval(substr($data, $headerLength + $imageLength + 19, 8));
            $anim = substr($data, $headerLength + $imageLength + 27, $animLength);
            $animExt = ".pch";
            break;
        case OEK_OEKAKIBBS:
            $start = strpos($data, "Content-type:");
            $middle = 0;
            $end = 0;
            while ($start) {
                $end = strpos($data, "Content-type:", $start + 1);
                $middle = strpos($data, "\r", $start);
                $type = substr($data, $start + 13, $middle - $start - 13);
                $middle = strpos($data, "\r", $middle + 1);
                if ($end === false) {
                    $end = null;
                    $block = substr($data, $middle + 2);
                } else {
                    $block = substr($data, $middle + 2, $end - $middle - 2);
                }
                $start = $end;
                if ($type == "image/0") {
                    // PNG
                    $image = $block;
                }
                if ($type == "animation/") {
                    $anim = $block;
                    $animLength = strlen($anim);
                    $animExt = ".oeb";
                }
                unset($block);
            }
            break;
    }
    // save the image
    $fp = fopen($baseFilename . ".png", "wb");
    fwrite($fp, $image);
    fclose($fp);
    // save the animation
    if ($saveAnimation && $animLength > 0) {
        $fp = fopen($baseFilename . $animExt, "wb");
        fwrite($fp, $anim);
        fclose($fp);
    }
}
Example #4
0
function updateCustomTheme($useid, $isClub, $data, &$errors)
{
    $themePath = getCustomThemePath($useid, $isClub);
    forceFolders($themePath);
    $lastThemeFile = getLastCustomThemeFile($useid, $isClub);
    $err = !uploadSingleImage("logo", 0, 0, 51200, $fnLogo, $errors, $themePath);
    $err |= !uploadSingleImage("outer", 0, 0, 25600, $fnOuter, $errors, $themePath);
    $err |= !uploadSingleImage("container", 0, 0, 51200, $fnContainer, $errors, $themePath);
    $err |= !uploadSingleImage("container2", 0, 0, 25600, $fnContainer2, $errors, $themePath);
    if ($err) {
        return false;
    }
    $fileLogo = urlf() . findNewestFile($themePath . "logo-*.jpg");
    $fileOuter = urlf() . findNewestFile($themePath . "outer-*.jpg");
    $fileContainer = urlf() . findNewestFile($themePath . "container-*.jpg");
    $fileContainer2 = urlf() . findNewestFile($themePath . "container2-*.jpg");
    $pixLogo = PIX($fnLogo);
    $pixOuter = PIX($fnOuter);
    $pixContainer = PIX($fnContainer);
    $pixContainer2 = PIX($fnContainer2);
    $pix00Container = PIX($fnContainer, 0, 0);
    $avgLogo = AVG($fnLogo);
    $avgOuter = AVG($fnOuter);
    $avgContainer = AVG($fnContainer);
    $avgContainer2 = AVG($fnContainer2);
    $colors = array('{bBody}' => $pixLogo, '{bOuter}' => $pixOuter, '{bContainer}' => $pixContainer, '{bContainer2}' => $pixContainer2, '{bInput}' => BRIGHT($pixContainer2, 1.2), '{bInputHover}' => BRIGHT($pixContainer2, 1.5), '{bInputFocus}' => $pix00Container, '{bButton}' => BRIGHT($pixContainer2, 1.2), '{bButtonHover}' => BRIGHT($pixContainer2, 1.5), '{bTabActive}' => $pix00Container, '{bTabInactive}' => $pixOuter, '{bUI2Layout}' => $pixContainer2, '{cBody}' => BRIGHT(CONTRAST($avgLogo), 1.3), '{cOuter}' => BRIGHT(CONTRAST($avgOuter), 1.2), '{cContainer}' => BRIGHT(CONTRAST($avgContainer), 1.3), '{cContainer2}' => BRIGHT(CONTRAST($avgContainer2), 1.3), '{cOutline}' => BRIGHT(CONTRAST($avgContainer2), 1.3), '{cTabActive}' => CONTRAST($avgContainer), '{cTabInactive}' => CONTRAST($avgOuter), '{cInput}' => CONTRAST($avgContainer2), '{cLink}' => RICH(BRIGHT($pixContainer2, -2.5), 1.1), '{cLinkHover}' => RICH(BRIGHT($pixContainer2, -3), 1.1), '{cHeaderLink}' => RICH(BRIGHT($pixOuter, -2.5), 1.1), '{cHeaderLinkHover}' => RICH(BRIGHT($pixOuter, -3), 1.1), '{cMarkedText}' => BRIGHT(HARMONY($pixContainer2), 1.5), '{cTabOutline}' => BRIGHT(CONTRAST($avgContainer2), 1.3), '{cThumbBorder}' => BRIGHT(CONTRAST($avgContainer2), 1.3), '{cThumbBorderMature}' => RICH(BRIGHT($pixContainer2, -3), 1.1));
    if (tooClose($colors['{cLink}'], $colors['{cContainer2}'], 32)) {
        $colors['{cLink}'] = RICH(PIX($fnOuter), 2);
        $colors['{cLinkHover}'] = BRIGHT($colors['{cLink}'], 2.5);
    }
    if (tooClose($colors['{cContainer}'], $colors['{cMarkedText}'], 140)) {
        $colors['{cMarkedText}'] = BRIGHT(HARMONY(PIX($fnContainer2)), -1.3);
    }
    // Override auto-generated colors with POSTed colors.
    if (!isset($data["c"])) {
        $data["c"] = array();
    }
    $acceptedColors = array("cBody", "cOuter", "cContainer", "cContainer2", "cOutline", "cTabActive", "cTabInactive", "cInput", "cLink", "cLinkHover", "cHeaderLink", "cHeaderLinkHover", "cMarkedText", "cTabOutline", "cThumbBorder", "cThumbBorderMature", "sOutline", "sTitleMargin", "bButton", "bButtonHover", "bInput", "bInputFocus", "bUI2Layout");
    // Override some data from POST (if available)
    foreach ($acceptedColors as $c1) {
        if (isset($_POST[$c1]) && $_POST[$c1] != "") {
            $data["c"][$c1] = $_POST[$c1];
        }
    }
    foreach ($data["c"] as $key => $value) {
        if (preg_match('/^[0-9A-Fa-f]{3}$/', $value)) {
            $r = hexdec(substr($value, 0, 1)) * 17;
            $g = hexdec(substr($value, 1, 1)) * 17;
            $b = hexdec(substr($value, 2, 1)) * 17;
            $colors["{" . $key . "}"] = getColor($r, $g, $b);
        }
        if (preg_match('/^[0-9A-Fa-f]{6}$/', $value)) {
            $r = hexdec(substr($value, 0, 2));
            $g = hexdec(substr($value, 2, 2));
            $b = hexdec(substr($value, 4, 2));
            $colors["{" . $key . "}"] = getColor($r, $g, $b);
        }
    }
    $sOutline = 'border-width: 1px;';
    if (isset($data["c"]["sOutline"])) {
        switch ($data["c"]["sOutline"]) {
            case 2:
                $sOutline = 'border-width: 2px;';
                break;
            case 3:
                $sOutline = 'border-width: 2px; border-left: none; border-right: none;';
                break;
            case 4:
                $sOutline = 'border: none;';
                break;
        }
    }
    $sTitleMargin = 'padding-left: 0px;';
    if (isset($data["c"]["sTitleMargin"])) {
        $m = intval($data["c"]["sTitleMargin"]);
        $m = $m > 400 ? 400 : $m;
        $m = $m < 0 ? 0 : $m;
        $data["c"]["sTitleMargin"] = $m;
        $sTitleMargin = 'padding-left: ' . $m . 'px;';
    }
    $css = file_get_contents(INCLUDES . "p_themedesigner.css");
    $css = str_replace('{sOutline}', $sOutline, $css);
    $css = str_replace('{sTitleMargin}', $sTitleMargin, $css);
    $css = str_replace('{fileLogo}', $fileLogo, $css);
    $css = str_replace('{fileOuter}', $fileOuter, $css);
    $css = str_replace('{fileContainer}', $fileContainer, $css);
    $css = str_replace('{fileContainer2}', $fileContainer2, $css);
    foreach ($colors as $colorVar => $colorValue) {
        $css = str_replace($colorVar, getWebColor($colorValue), $css);
    }
    if (!isset($data["Tile"]) || isset($_POST["submitTheme"])) {
        $data["Tile"] = 0;
    }
    // Override some data from POST (if available)
    if (isset($_POST["BGLayoutTiledH"])) {
        $data["Tile"] |= 1;
    }
    if (isset($_POST["BGOuterTiledH"])) {
        $data["Tile"] |= 2;
    }
    if (isset($_POST["BGContainerTiledH"])) {
        $data["Tile"] |= 4;
    }
    if (isset($_POST["BGContainer2TiledH"])) {
        $data["Tile"] |= 8;
    }
    if (isset($_POST["BGLayoutTiledV"])) {
        $data["Tile"] |= 16;
    }
    if (isset($_POST["BGOuterTiledV"])) {
        $data["Tile"] |= 32;
    }
    if (isset($_POST["BGContainerTiledV"])) {
        $data["Tile"] |= 64;
    }
    if (isset($_POST["BGContainer2TiledV"])) {
        $data["Tile"] |= 128;
    }
    $css = str_replace('{layoutTiling}', getTiling($data["Tile"] & 1, $data["Tile"] & 16), $css);
    $css = str_replace('{outerTiling}', getTiling($data["Tile"] & 2, $data["Tile"] & 32), $css);
    $css = str_replace('{containerTiling}', getTiling($data["Tile"] & 4, $data["Tile"] & 64), $css);
    $css = str_replace('{container2Tiling}', getTiling($data["Tile"] & 8, $data["Tile"] & 128), $css);
    // Remove comments from the final CSS file.
    $css = preg_replace('/\\/\\*(.+?)\\*\\//', "", $css);
    if ($lastThemeFile != "") {
        $css_orig = file_get_contents($lastThemeFile);
    } else {
        $css_orig = "";
    }
    if ($css != $css_orig) {
        // Create new CSS file and delete the previous CSS file.
        $fp = fopen($themePath . "style-" . time() . ".css", "w");
        fwrite($fp, $css);
        fclose($fp);
        if ($lastThemeFile != "") {
            unlink($lastThemeFile);
        }
        // Store updated data to the database.
        $cusWhere = dbWhere(array("cusUser" => $useid, "cusIsClub" => $isClub));
        $result = sql_query("SELECT `cusid` FROM `customThemes`" . $cusWhere . "LIMIT 1");
        if (mysql_num_rows($result) == 0) {
            sql_query("INSERT INTO `customThemes`" . dbValues(array("cusUser" => $useid, "cusIsClub" => $isClub, "cusData" => serialize($data))));
        } else {
            sql_query("UPDATE `customThemes`" . dbSet(array("cusData" => serialize($data))) . $cusWhere . "LIMIT 1");
        }
        return true;
    } else {
        return false;
    }
}
Example #5
0
function forceFolders($path)
{
    if (strlen($path) == 0) {
        return false;
    }
    if (strlen($path) < 3) {
        return true;
    } elseif (is_dir($path)) {
        return true;
    } elseif (dirname($path) == $path) {
        return true;
    }
    return forceFolders(dirname($path)) and mkdir($path, 0755);
}