function submitUploadForm()
{
    global $errors, $menu;
    $isWysiwyg = @$_REQUEST['wysiwygForm'];
    //
    if ($isWysiwyg) {
        disableInDemoMode('', 'default/wysiwygUploads.php', false);
    } else {
        disableInDemoMode('', 'default/uploadForm.php', false);
    }
    // remove uploads without record numbers that are older than 1 day
    removeExpiredUploads();
    ### process uploads
    $errors = '';
    $newUploadNums = array();
    foreach (array_values($_FILES) as $uploadInfo) {
        $errors .= saveUpload($GLOBALS['tableName'], $_REQUEST['fieldName'], @$_REQUEST['num'], @$_REQUEST['preSaveTempId'], $uploadInfo, $newUploadNums);
    }
    ### Error checking
    if (!$newUploadNums && !$errors) {
        $errors = t("Please select a file to upload.") . "\n";
    }
    ### display errors - errors will automatically be displayed when page is refreshed
    if ($errors) {
        return;
    }
    ### On Successful Save
    $isDetailFields = getUploadInfoFields($_REQUEST['fieldName']);
    if ($isWysiwyg) {
        //
        $errors = "File Uploaded";
    } elseif ($isDetailFields) {
        // redirect to modify upload details page
        $newUploadNumsAsCSV = join(',', $newUploadNums);
        $modifyUrl = "?menu={$menu}" . "&action=uploadModify" . "&fieldName=" . @$_REQUEST['fieldName'] . "&num=" . @$_REQUEST['num'] . "&preSaveTempId=" . @$_REQUEST['preSaveTempId'] . "&uploadNums={$newUploadNumsAsCSV}";
        print "<script type='text/javascript'>self.parent.reloadIframe('" . @$_REQUEST['fieldName'] . "_iframe')</script>";
        // reload uploadlist
        print "<script type='text/javascript'>window.location='{$modifyUrl}'</script>";
        // go to modify page
        exit;
    } else {
        // reload parent iframe (with upload list)
        print "<script type='text/javascript'>self.parent.reloadIframe('" . @$_REQUEST['fieldName'] . "_iframe')</script>";
        // reload uploadlist
        print "<script type='text/javascript'>self.parent.tb_remove();</script>\n";
        // close thickbox
        exit;
    }
}
Ejemplo n.º 2
0
 function _getFlashUploaderHTML()
 {
     global $SETTINGS;
     if (@$SETTINGS['advanced']['disableFlashUploader']) {
         return;
     }
     //
     $fileExtCSV = implode(',', preg_split("/\\s*\\,\\s*/", strtolower($this->allowedExtensions)));
     $isMac = preg_match('/macintosh|mac os x/i', @$_SERVER['HTTP_USER_AGENT']);
     $key = $isMac ? '<Command>' : '<Ctrl>';
     $tip = htmlencode(t("Tip: hold {$key} to select multiple files"));
     //
     $html = '';
     $html .= "<div id='{$this->name}_uploadTips' style='display: none; text-align: center; font-size: xx-small; margin-top: 2px;'>";
     $html .= "  {$tip}<br/>{$description}<br/>";
     $html .= "</div>";
     $html .= "<div class='uploadifyQueue' id='{$this->name}_uploadQueue'></div>";
     $html .= "<script type='text/javascript'>// <![CDATA[\n";
     $html .= "\$(document).ready(function() { \n";
     $html .= "  \$('#{$this->name}_uploadButton').uploadify(generateUploadifyOptions({ \n";
     $html .= "    'script'           : " . json_encode(basename(@$_SERVER['SCRIPT_NAME'])) . ",\n";
     $html .= "    'modifyAfterSave'  : " . count(getUploadInfoFields($this->name)) . ",\n";
     $html .= "    'menu'             : " . json_encode($menu) . ",\n";
     $html .= "    'fieldName'        : " . json_encode($this->name) . ",\n";
     $html .= "    'num'              : " . json_encode(@$_REQUEST['num'] ? $_REQUEST['num'] : '') . ",\n";
     $html .= "    'preSaveTempId'    : " . json_encode($preSaveTempId) . ",\n";
     $html .= "    'buttonText'       : " . json_encode(t('Upload File(s)')) . ",\n";
     $html .= "    'fileExtCSV'       : " . json_encode($fileExtCSV) . ",\n";
     $html .= "    'maxUploadSizeKB'  : " . json_encode($this->checkMaxUploadSize ? $this->maxUploadSizeKB : 0) . ",\n";
     $html .= "    'loginDataEncoded' : " . json_encode(@$_COOKIE[loginCookie_name(true)]) . ",\n";
     $html .= "    'queueID'          : " . json_encode($this->name . "_uploadQueue") . ",\n";
     $html .= "  }));\n";
     $html .= "});\n";
     $html .= "// ]]></script>\n";
     return $html;
 }
    echo $uploadRecord['num'];
    ?>
" />
       <table border="0" cellspacing="0" cellpadding="0">
        <tr>
          <td height="23"><?php 
    et('Filename:');
    ?>
 &nbsp;</td>
          <td><?php 
    echo htmlencode(pathinfo($uploadRecord['filePath'], PATHINFO_BASENAME));
    ?>
</td>
        </tr>
        <?php 
    foreach (getUploadInfoFields($_REQUEST['fieldName']) as $infoFieldname => $label) {
        ?>
          <tr>
            <td style="vertical-align: middle" valign="middle"><?php 
        echo htmlencode($label);
        ?>
</td>
            <td>
              <?php 
        $fieldName = $_REQUEST['fieldName'];
        // eg: uploads, photos, etc
        $formFieldName = "{$uploadRecord['num']}_{$infoFieldname}";
        //  eg: 1234_info2 (upload record number, underscore, info field name)
        $fieldHTML = "<input class='text-input' type='text' name='{$formFieldName}' value='" . htmlencode($uploadRecord[$infoFieldname]) . "' size='55' maxlength='255' />";
        $fieldHTML = applyFilters('uploadModify_infoFieldHTML', $fieldHTML, $tableName, $fieldName, $infoFieldname, $formFieldName, $uploadRecord);
        echo $fieldHTML;
function _showUpload($fieldSchema, $record)
{
    global $preSaveTempId, $SETTINGS, $menu;
    $prefixText = @$fieldSchema['fieldPrefix'];
    $description = @$fieldSchema['description'];
    if ($prefixText) {
        $prefixText .= "<br/>";
    }
    // create uploadList url
    $uploadList = "?" . "menu=" . urlencode($menu) . "&amp;action=uploadList" . "&amp;fieldName=" . urlencode($fieldSchema['name']) . "&amp;num=" . urlencode(@$_REQUEST['num']) . "&amp;preSaveTempId=" . urlencode($preSaveTempId);
    // create uploadLink url
    $uploadLink = "?menu=" . urlencode($menu) . "&amp;action=uploadForm" . "&amp;fieldName=" . urlencode($fieldSchema['name']) . "&amp;num=" . urlencode(@$_REQUEST['num']) . "&amp;preSaveTempId=" . urlencode($preSaveTempId) . "&amp;TB_iframe=true&amp;height=350&amp;width=700&amp;modal=true";
    // error checking
    $errors = '';
    list($uploadDir, $uploadUrl) = getUploadDirAndUrl($fieldSchema);
    if (!file_exists($uploadDir)) {
        mkdir_recursive($uploadDir, 0755);
    }
    // create upload dir (if not possible, dir not exists error will show below)
    if (!file_exists($uploadDir)) {
        $errors .= "Upload directory '" . htmlencode($uploadDir) . "' doesn't exist!.<br/>\n";
    } elseif (!is_writable($uploadDir)) {
        $errors .= "Upload directory '" . htmlencode($uploadDir) . "' isn't writable!.<br/>\n";
    }
    // display errors
    if ($errors) {
        print <<<__HTML__
  <tr>
   <td valign="top"><br/>{$fieldSchema['label']}<br/></td>
   <td><div id='alert'><span>{$errors}</span></div></td>
  </tr>
__HTML__;
        return;
    }
    // display field
    ?>
   <tr>
    <td style="vertical-align: top"><?php 
    echo $fieldSchema['label'];
    ?>
</td>
    <td>
      <?php 
    echo $prefixText;
    ?>
      <iframe id="<?php 
    echo $fieldSchema['name'];
    ?>
_iframe" src="<?php 
    echo $uploadList;
    ?>
" height="100" width="100%" frameborder="0" class="uploadIframe"></iframe><br/>

      <?php 
    $displayDefaultLink = applyFilters('edit_show_upload_link', true, $fieldSchema, $record);
    ?>
      <?php 
    if ($displayDefaultLink) {
        ?>

        <div style="position: relative; height: 24px;">
          <div style="position: absolute; top: 6px; width: 100%; text-align: center;">
            <?php 
        if (inDemoMode()) {
            ?>
              <a href="javascript:alert('<?php 
            echo jsEncode(t('This feature is disabled in demo mode.'));
            ?>
')"><b><?php 
            echo t('Add or Upload File(s)');
            ?>
</b></a>
            <?php 
        } else {
            ?>
              <a href="<?php 
            echo $uploadLink;
            ?>
" class="thickbox"><b><?php 
            echo t('Add or Upload File(s)');
            ?>
</b></a>
            <?php 
        }
        ?>
          </div>
          <div style="position: absolute; z-index: 1; width: 100%; text-align: center;">
            <div id="<?php 
        echo $fieldSchema['name'];
        ?>
_uploadButton"></div>
          </div>
        </div>

        <?php 
        $useFlashUploader = !@$SETTINGS['advanced']['disableFlashUploader'];
        ?>

        <?php 
        if ($useFlashUploader && !inDemoMode()) {
            ?>
          <?php 
            $fileExtCSV = implode(',', preg_split("/\\s*\\,\\s*/", strtolower($fieldSchema['allowedExtensions'])));
            ?>
          <div id="<?php 
            echo $fieldSchema['name'];
            ?>
_uploadTips" style="display: none; text-align: center; font-size: xx-small; margin-top: 2px;">
            <?php 
            $isMac = preg_match('/macintosh|mac os x/i', @$_SERVER['HTTP_USER_AGENT']);
            $key = $isMac ? '<Command>' : '<Ctrl>';
            if (@$fieldSchema['maxUploads'] != 1) {
                echo htmlencode(t("Tip: hold {$key} to select multiple files"));
            }
            ?>
<br/>
            <?php 
            echo $description;
            ?>
          </div>
          <div class="uploadifyQueue" id="<?php 
            echo $fieldSchema['name'];
            ?>
_uploadQueue"></div>
          <script type="text/javascript">// <![CDATA[
            $(document).ready(function() {
              $('#<?php 
            echo $fieldSchema['name'];
            ?>
_uploadButton').uploadify(generateUploadifyOptions({
                'script'           : <?php 
            echo json_encode(basename(@$_SERVER['SCRIPT_NAME']));
            ?>
,
                'modifyAfterSave'  : <?php 
            echo count(getUploadInfoFields($fieldSchema['name']));
            ?>
,
                'menu'             : <?php 
            echo json_encode($menu);
            ?>
,
                'fieldName'        : <?php 
            echo json_encode($fieldSchema['name']);
            ?>
,
                'num'              : <?php 
            echo json_encode(@$_REQUEST['num'] ? $_REQUEST['num'] : '');
            ?>
,
                'preSaveTempId'    : <?php 
            echo json_encode($preSaveTempId);
            ?>
,
                'buttonText'       : <?php 
            echo json_encode(t('Upload File(s)'));
            ?>
,
                'fileExtCSV'       : <?php 
            echo json_encode($fileExtCSV);
            ?>
,
                'maxUploadSizeKB'  : <?php 
            echo json_encode($fieldSchema['checkMaxUploadSize'] ? $fieldSchema['maxUploadSizeKB'] : 0);
            ?>
,
                'loginDataEncoded' : <?php 
            echo json_encode(@$_COOKIE[loginCookie_name(true)]);
            ?>
,
                'queueID'          : <?php 
            echo json_encode($fieldSchema['name'] . "_uploadQueue");
            ?>
              }));
            });
          // ]]></script>
        <?php 
        }
        ?>
      <?php 
    }
    ?>

    </td>
   </tr>
  <?php 
}