Пример #1
0
 /**
  * __construct 
  * 
  * @param FCMS_Error  $fcmsError 
  * @param Database    $fcmsDatabase 
  * @param User        $fcmsUser 
  * @param Destination $destination 
  * @param UploadPhoto $uploadPhoto 
  * 
  * @return void
  */
 public function __construct(FCMS_Error $fcmsError, Database $fcmsDatabase, User $fcmsUser, Destination $destination, UploadPhoto $uploadPhoto = null)
 {
     $this->fcmsError = $fcmsError;
     $this->fcmsDatabase = $fcmsDatabase;
     $this->fcmsUser = $fcmsUser;
     $this->destination = $destination;
     $this->uploadPhoto = $uploadPhoto;
     $this->usingFullSizePhotos = usingFullSizePhotos();
 }
Пример #2
0
 /**
  * getPhotoPaths 
  * 
  * @param string $fileName 
  * @param string $uid 
  * 
  * @return array
  */
 public function getPhotoPaths($fileName, $uid)
 {
     $fileName = basename($fileName);
     $uid = (int) $uid;
     $photoPath[0] = $this->absolutePath . "member{$uid}/{$fileName}";
     $photoPath[1] = $this->absolutePath . "member{$uid}/{$fileName}";
     if (usingFullSizePhotos()) {
         $photoPath[1] = $this->absolutePath . "member{$uid}/full_{$fileName}";
     }
     return $photoPath;
 }
Пример #3
0
    /**
     * display 
     * 
     * @return boolean
     */
    public function display()
    {
        $_SESSION['fcms_uploader_type'] = 'java';
        // Setup some applet params
        $scaledInstanceNames = '<param name="uc_scaledInstanceNames" value="thumb,main"/>';
        $scaledInstanceDimensions = '<param name="uc_scaledInstanceDimensions" value="150x150xcrop,600x600xfit"/>';
        $fullSizedPhotos = '';
        if (usingFullSizePhotos()) {
            $scaledInstanceNames = '<param name="uc_scaledInstanceNames" value="thumb,main,full"/>';
            $scaledInstanceDimensions = '<param name="uc_scaledInstanceDimensions" value="150x150xcrop,600x600xfit,1400x1400xfit"/>';
            $fullSizedPhotos = '
                function sendFullSizedPhotos() {
                    var uploader = document.jumpLoaderApplet.getUploader();
                    var attrSet = uploader.getAttributeSet();
                    var attr = attrSet.createStringAttribute("full-sized-photos", "1");
                    attr.setSendToServer(true);
                }
                sendFullSizedPhotos();';
        }
        echo '
            <noscript>
                <style type="text/css">
                applet, .photo-uploader {display: none;}
                #noscript {padding:1em;}
                #noscript p {background-color:#ff9; padding:3em; font-size:130%; line-height:200%;}
                #noscript p span {font-size:60%;}
                </style>
                <div id="noscript">
                <p>
                    ' . T_('JavaScript must be enabled in order for you to use the Advanced Uploader. However, it seems JavaScript is either disabled or not supported by your browser.') . '<br/>
                    <span>
                        ' . T_('Either enable JavaScript by changing your browser options.') . '<br/>
                        ' . T_('or') . '<br/>
                        ' . T_('Enable the Basic Upload option by changing Your Settings.') . '
                    </span>
                </p>
                </div>
            </noscript>

            <div id="loading">' . T_('Loading Advanced Uploader...') . '</div>
            <form method="post" id="uploadForm" name="uploadForm" class="photo-uploader" style="visibility:hidden">
                <div class="header">
                    <label>' . T_('Category') . '</label>
                    ' . $this->getCategoryInputs() . '
                </div>
                <ul class="upload-types">
                    ' . $this->getUploadTypesNavigation('upload') . '
                </ul>
                <div class="upload-area">
                    <applet id="jumpLoaderApplet" name="jumpLoaderApplet"
                        code="jmaster.jumploader.app.JumpLoaderApplet.class"
                        archive="../inc/thirdparty/jumploader_z.jar"
                        width="758"
                        height="300"
                        mayscript>
                        <param name="uc_sendImageMetadata" value="true"/>
                        <param name="uc_uploadUrl" value="index.php"/>
                        <param name="vc_useThumbs" value="true"/>
                        <param name="uc_uploadScaledImagesNoZip" value="true"/>
                        <param name="uc_uploadScaledImages" value="true"/>
                        ' . $scaledInstanceNames . '
                        ' . $scaledInstanceDimensions . '
                        <param name="uc_scaledInstanceQualityFactors" value="900"/>
                        <param name="uc_uploadFormName" value="uploadForm"/>
                        <param name="vc_lookAndFeel" value="system"/>
                        <param name="vc_uploadViewStartActionVisible" value="false"/>
                        <param name="vc_uploadViewStopActionVisible" value="false"/>
                        <param name="vc_uploadViewPasteActionVisible" value="false"/>
                        <param name="vc_uploadViewRetryActionVisible" value="false"/>
                        <param name="vc_uploadViewFilesSummaryBarVisible" value="false"/>
                        <param name="vc_uiDefaults" value="Panel.background=#eff0f4; List.background=#eff0f4;"/> 
                        <param name="ac_fireAppletInitialized" value="true"/>
                        <param name="ac_fireUploaderStatusChanged" value="true"/> 
                        <param name="ac_fireUploaderFileStatusChanged" value="true"/>
                    </applet>
                </div>
                <div class="footer">
                    <input class="sub1" type="button" value="' . T_('Upload') . '" id="start-upload" name="start-upload"/>
                </div>
            </form>
            <script type="text/javascript">
            document.onkeydown = keyHandler;
            function keyHandler(e)
            {
                if (!e) { e = window.event; }
                if (e.keyCode == 27) {
                    $("#uploadForm").css("visibility", "visible");
                    $("#loading").hide();
                }
            }
            $("#start-upload").click(function(e) {

                ' . $this->getJsUploadValidation() . '

                var uploader = document.jumpLoaderApplet.getUploader();
                var attrSet  = uploader.getAttributeSet();

                var newValue = $("#new-category").val();
                var newAttr  = attrSet.createStringAttribute("new-category", newValue);
                newAttr.setSendToServer(true);

                var attribute = attrSet.createStringAttribute("javaUpload", 1);
                attribute.setSendToServer(true);

                if ($("#existing-categories")) {
                    var value = $("#existing-categories").val();
                    var attr  = attrSet.createStringAttribute("category", value);
                    attr.setSendToServer(true);
                }

                uploader.startUpload();
            });' . $fullSizedPhotos . '
            function uploaderStatusChanged(uploader) {
                if (uploader.getStatus() == 0) {
                    window.location.href = "index.php?action=advanced";
                }
            }
            function appletInitialized(applet) {
                $("#uploadForm").css("visibility", "visible");
                $("#loading").hide();
            }
            </script>';
    }
Пример #4
0
Файл: S3.php Проект: lmcro/fcms
 /**
  * getPhotoPaths 
  * 
  * @param string $fileName 
  * @param string $uid 
  * 
  * @return array
  */
 public function getPhotoPaths($fileName, $uid)
 {
     $fileName = basename($fileName);
     $mediumPath = $this->s3->getAuthenticatedURL($this->bucketName, $fileName, 3600);
     $photoPaths = array($mediumPath, $mediumPath);
     if (usingFullSizePhotos()) {
         $photoPaths[1] = $this->s3->getAuthenticatedURL($this->bucketName, 'full_' . $fileName, 3600);
     }
     return $photoPaths;
 }
Пример #5
0
    /**
     * display 
     * 
     * @return void
     */
    public function display()
    {
        $_SESSION['fcms_uploader_type'] = 'plupload';
        if (isset($_SESSION['photos'])) {
            unset($_SESSION['photos']);
        }
        $fullFileUploaded = '';
        $filesPerPhotoCount = 2;
        if (usingFullSizePhotos()) {
            $filesPerPhotoCount = 3;
            $fullFileUploaded = 'else if (!("full" in file)) {
            file.full    = true;
            file.thumb   = false;
            file.loaded  = 0;
            file.percent = 0;
            file.status  = plupload.QUEUED;

            up.trigger("QueuedChanged");
            up.refresh();
        }';
        }
        // Display the form
        echo '
            <link rel="stylesheet" href="../ui/js/jqueryui/jquery-ui.min.css">
            <link rel="stylesheet" href="../ui/js/jqueryui/jquery-ui.theme.min.css">
            <link rel="stylesheet" href="../inc/thirdparty/plupload/js/jquery.ui.plupload/css/jquery.ui.plupload.css">
            <script type="text/javascript" src="../ui/js/jqueryui/jquery-ui.min.js"></script>
            <script type="text/javascript" src="../inc/thirdparty/plupload/js/plupload.full.min.js"></script>
            <script type="text/javascript" src="../inc/thirdparty/plupload/js/jquery.ui.plupload/jquery.ui.plupload.min.js"></script>
            <script>
            var filesPerPhotoCount = ' . $filesPerPhotoCount . ';
            $(document).ready(function() {
                $("#uploader").plupload({

                    runtimes      : "html5,flash,silverlight,html4",
                    url           : "index.php",
                    max_file_size : "100mb",

                    buttons: {
                        "start" : false,
                    },
             
                    multipart_params: {
                        "plupload" : "1",
                    },
             
                    filters : [
                        {title : "Image files", extensions : "jpg,jpeg,gif,png"}
                    ],
             
                    // Sort files
                    sortable: true,
             
                    // Views to activate
                    views: {
                        list   : false,
                        thumbs : true,
                        active : "thumbs"
                    },
             
                    // Flash settings
                    flash_swf_url : "../inc/thirdparty/plupload/js/Moxie.swf",
                 
                    // Silverlight settings
                    silverlight_xap_url : "../inc/thirdparty/plupload/js/Moxie.xap",

                    preinit : {
                        Init: function(up, info) {
                            up.real_total_files    = 0;
                            up.real_files_uploaded = 0;
                        },
                    },

                    init : {
                        FilesAdded: function(up, files) {
                            var total = files.length;
                            var i     = 1;

                            plupload.each(files, function(file) {
                                i++;
                                up.real_total_files += filesPerPhotoCount;
                            });
                     
                            up.refresh(); // Reposition Flash/Silverlight
                        },

                        BeforeUpload: function(up, file) {
                            if ("thumb" in file) {
                                up.settings.resize         = { width: 150, height: 150, quality: 80, crop: true };
                                up.settings.resize.enabled = true;
                                up.settings.resize.width   = 150;
                                up.settings.resize.height  = 150;
                                up.settings.resize.quality = 90;
                                up.settings.resize.crop    = true;
                                up.settings.file_data_name = "thumb";

                                if ("full" in file) {
                                    up.settings.resize.enabled = false;
                                    up.settings.file_data_name = "full";
                                }
                            }
                            else {
                                up.settings.resize.enabled = true;
                                up.settings.resize.width   = 600;
                                up.settings.resize.height  = 600;
                                up.settings.resize.crop    = true;
                                up.settings.file_data_name = "main";
                            }
                        },

                        Error: function(up, err) {
                            $("#autocomplete_form").before(
                                "<div class=\\"error-alert\\">" + err.message + "</div>"
                            );
                     
                            up.refresh(); // Reposition Flash/Silverlight
                        },
             
                        FileUploaded: function(up, file, info) {
                            var response = JSON.parse(info.response);
                            if (response !== null && response.error) {
                                file.status = plupload.FAILED;
                                $("#uploader").plupload("notify", "error", response.error.message);
                            }
                            if (!("thumb" in file)) {
                                file.thumb   = true;
                                file.loaded  = 0;
                                file.percent = 0;
                                file.status  = plupload.QUEUED;

                                up.trigger("QueuedChanged");
                                up.refresh();
                            }
                            ' . $fullFileUploaded . '

                            up.real_files_uploaded++;

                            if (up.real_total_files == up.real_files_uploaded) {
                                window.location.href = "index.php?action=advanced";
                            }
                        }
                    }
                });
            });
            </script>
            <form id="autocomplete_form" enctype="multipart/form-data" action="?action=upload" method="post" class="photo-uploader">
                <div class="header">
                    <label>' . T_('Category') . '</label>
                    ' . $this->getCategoryInputs() . '
                </div>
                <ul class="upload-types">
                    ' . $this->getUploadTypesNavigation('upload') . '
                </ul>
                <div class="upload-area">
                    <div class="plupload">
                        <p style="float:right">
                            <a class="help" href="../help.php?topic=photo#gallery-howworks">' . T_('Help') . '</a>
                        </p>
                        <div id="uploader">
                        </div>
                    </div><!--/plupload-->
                </div>
                <div class="footer">
                    <input class="sub1" type="submit" id="submit-photos" name="addphoto" value="' . T_('Submit') . '"/>
                </div>
            </form>
            <script type="text/javascript">
            $("#submit-photos").click(function(e) {
            ' . $this->getJsUploadValidation() . '

                e.preventDefault();

                var newCategory = $("#new-category").val();
                var category    = "";
                if ($("#existing-categories")) {
                    category = $("#existing-categories").val();
                }

                var uploader = $("#uploader").plupload("getUploader");
                uploader.settings.multipart_params = {
                    "plupload"      : "1",
                    "new-category"  : newCategory,
                    "category"      : category,
                };

                $("#uploader").plupload("start");
            });
            </script>';
    }