2
votes

While editing a document (tinymce) I select Insert->Insert/Edit image. This shows a dialog with source. To the right of source is a camera icon, which I click to select an image I would like to insert and nothing happens.

The website is www.dallasdowntownassociation.com (base URL). I am actually developing a new site at www.dallasdowntownassociation.com/newsite. On the new site if you point to Around Town and select Blue Garden a screen with show with a button to edit content.

Version info: TinyMCE 4.2.7; Responsive Filemanager 9.9.6.

<script>
    tinymce.init({
    mode : "specific_textareas",
    editor_selector : "mceEditor", width: "100%", height: "400",
    theme: "modern",
   font_formats: "Aller=aller,san-serif;" +
        "Aller Bold=aller bold,san-serif;" +
        "Aller Display=aller display,san-serif;"+
        "Aller Light=aller light,san-serif;" +
        "Andale Mono=andale mono,times;"+
        "Arial=arial,helvetica,sans-serif;"+
        "Arial Black=arial black,avant garde;"+
        "Book Antiqua=book antiqua,palatino;"+
        "Comic Sans MS=comic sans ms,sans-serif;"+
        "Courier New=courier new,courier;"+
        "Georgia=georgia,palatino;"+
        "Helvetica=helvetica;"+
        "Impact=impact,chicago;"+
        "Symbol=symbol;"+
        "Tahoma=tahoma,arial,helvetica,sans-serif;"+
        "Terminal=terminal,monaco;"+
        "Times New Roman=times new roman,times;"+
        "Trebuchet MS=trebuchet ms,geneva;"+
        "Verdana=verdana,geneva;"+
        "Webdings=webdings;"+
        "Wingdings=wingdings,zapf dingbats",
    browser_spellcheck : true,
    gecko_spellcheck: true,
    plugins: [
            "advlist autolink lists link image charmap print preview hr anchor pagebreak",
            "searchreplace wordcount visualblocks visualchars code fullscreen",
            "insertdatetime media nonbreaking save table contextmenu directionality",
            "emoticons template paste textcolor colorpicker textpattern"
    ],
    toolbar1: "newdocument | insertfile undo redo | bold italic underline strikethrough | alignleft aligncenter alignright alignjustify | cut copy paste | bullist numlist outdent indent | link image",
    toolbar2: "styleselect formatselect fontselect fontsizeselect | responsivefilemanager | blockqote | removeformat | forecolor backcolor | subscript superscript",
    image_advtab: true ,

    filemanager_title:"Responsive Filemanager",
    external_filemanager_path:"/newsite/filemanager/",
    external_plugins: { "filemanager" : "/newsite/filemanager/plugin.min.js"},
    });
</script>

The filemanager config.php is as follows:

<?php
    session_start();
    mb_internal_encoding('UTF-8');
    date_default_timezone_set('Europe/Rome');

    /*
    |--------------------------------------------------------------------------
    | Optional security
    |--------------------------------------------------------------------------
    |
    | if set to true only those will access RF whose url contains the access key(akey) like:
    | <input type="button" href="../filemanager/dialog.php?field_id=imgField&lang=en_EN&akey=myPrivateKey" value="Files">
    | in tinymce a new parameter added: filemanager_access_key:"myPrivateKey"
    | example tinymce config:
    |
    | tiny init ...
    | external_filemanager_path:"../filemanager/",
    | filemanager_title:"Filemanager" ,
    | filemanager_access_key:"myPrivateKey" ,
    | ...
    |
    */

    define('USE_ACCESS_KEYS', false); // TRUE or FALSE

    /*
    |--------------------------------------------------------------------------
    | DON'T COPY THIS VARIABLES IN FOLDERS config.php FILES
    |--------------------------------------------------------------------------
    */

    /*
    |--------------------------------------------------------------------------
    | Path configuration
    |--------------------------------------------------------------------------
    | In this configuration the folder tree is
    | root
    |    |- source <- upload folder
    |    |- thumbs <- thumbnail folder [must have write permission (755)]
    |    |- filemanager
    |    |- js
    |    |   |- tinymce
    |    |   |   |- plugins
    |    |   |   |   |- responsivefilemanager
    |    |   |   |   |   |- plugin.min.js
    */

    $config = array(

        /*
        |--------------------------------------------------------------------------
        | DON'T TOUCH (base url (only domain) of site).
        |--------------------------------------------------------------------------
        |
        | without final /
        |
        */

            'base_url' => ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] && ! in_array(strtolower($_SERVER['HTTPS']), array( 'off', 'no' ))) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'],

        /*
        |--------------------------------------------------------------------------
        | path from base_url to base of upload folder
        |--------------------------------------------------------------------------
        |
        | with start and final /
        |
        |           'upload_dir' => '/source/',
        */
            'upload_dir' => '/newsite/source/',

        /*
        |--------------------------------------------------------------------------
        | relative path from filemanager folder to upload folder
        |--------------------------------------------------------------------------
        |
        | with final /
        |
        |           'current_path' => '../source/',
        */
            'current_path' => '../source/',

        /*
        |--------------------------------------------------------------------------
        | relative path from filemanager folder to thumbs folder
        |--------------------------------------------------------------------------
        |
        | with final /
        | DO NOT put inside upload folder
        |
        |           'thumbs_base_path' => '../thumbs/',
        */
            'thumbs_base_path' => '../thumbs/',

        /*
        |--------------------------------------------------------------------------
        | Access keys
        |--------------------------------------------------------------------------
        |
        | add access keys eg: array('myPrivateKey', 'someoneElseKey');
        | keys should only containt (a-z A-Z 0-9 \ . _ -) characters
        | if you are integrating lets say to a cms for admins, i recommend making keys randomized something like this:
        | $username = 'Admin';
        | $salt = 'dsflFWR9u2xQa' (a hard coded string)
        | $akey = md5($username.$salt);
        | DO NOT use 'key' as access key!
        | Keys are CASE SENSITIVE!
        |
        */

            'access_keys' => array(),

        //--------------------------------------------------------------------------------------------------------
        // YOU CAN COPY AND CHANGE THESE VARIABLES INTO FOLDERS config.php FILES TO CUSTOMIZE EACH FOLDER OPTIONS
        //--------------------------------------------------------------------------------------------------------

        /*
        |--------------------------------------------------------------------------
        | Maximum upload size
        |--------------------------------------------------------------------------
        |
        | in Megabytes
        |
        */
            'MaxSizeUpload' => 100,


        /*
        |--------------------------------------------------------------------------
        | default language file name
        |--------------------------------------------------------------------------
        */
            'default_language' => "en_EN",

        /*
        |--------------------------------------------------------------------------
        | Icon theme
        |--------------------------------------------------------------------------
        |
        | Default available: ico and ico_dark
        | Can be set to custom icon inside filemanager/img
        |
        */
            'icon_theme' => "ico",


        //Show or not show folder size in list view feature in filemanager (is possible, if there is a large folder, to greatly increase the calculations)
            'show_folder_size'                        => true,
        //Show or not show sorting feature in filemanager
            'show_sorting_bar'                        => true,
        //active or deactive the transliteration (mean convert all strange characters in A..Za..z0..9 characters)
            'transliteration'                         => false,
        //convert all spaces on files name and folders name with $replace_with variable
            'convert_spaces'                          => false,
        //convert all spaces on files name and folders name this value
            'replace_with'                            => "_",

        // -1: There is no lazy loading at all, 0: Always lazy-load images, 0+: The minimum number of the files in a directory
        // when lazy loading should be turned on.
            'lazy_loading_file_number_threshold'      => 0,


        //*******************************************
        //Images limit and resizing configuration
        //*******************************************

        // set maximum pixel width and/or maximum pixel height for all images
        // If you set a maximum width or height, oversized images are converted to those limits. Images smaller than the limit(s) are unaffected
        // if you don't need a limit set both to 0
            'image_max_width'                         => 0,
            'image_max_height'                        => 0,
            'image_max_mode'                          => 'auto',
        /*
        #  $option:  0 / exact = defined size;
        #            1 / portrait = keep aspect set height;
        #            2 / landscape = keep aspect set width;
        #            3 / auto = auto;
        #            4 / crop= resize and crop;
         */

        //Automatic resizing //
        // If you set $image_resizing to TRUE the script converts all uploaded images exactly to image_resizing_width x image_resizing_height dimension
        // If you set width or height to 0 the script automatically calculates the other dimension
        // Is possible that if you upload very big images the script not work to overcome this increase the php configuration of memory and time limit
            'image_resizing'                          => false,
            'image_resizing_width'                    => 0,
            'image_resizing_height'                   => 0,
            'image_resizing_mode'                     => 'auto', // same as $image_max_mode
            'image_resizing_override'                 => false,
        // If set to TRUE then you can specify bigger images than $image_max_width & height otherwise if image_resizing is
        // bigger than $image_max_width or height then it will be converted to those values

        //******************
        // Default layout setting
        //
        // 0 => boxes
        // 1 => detailed list (1 column)
        // 2 => columns list (multiple columns depending on the width of the page)
        // YOU CAN ALSO PASS THIS PARAMETERS USING SESSION VAR => $_SESSION['RF']["VIEW"]=
        //
        //******************
            'default_view'                            => 0,

        //set if the filename is truncated when overflow first row
            'ellipsis_title_after_first_row'          => true,

        //*************************
        //Permissions configuration
        //******************
            'delete_files'                            => true,
            'create_folders'                          => true,
            'delete_folders'                          => true,
            'upload_files'                            => true,
            'rename_files'                            => true,
            'rename_folders'                          => true,
            'duplicate_files'                         => true,
            'copy_cut_files'                          => true, // for copy/cut files
            'copy_cut_dirs'                           => true, // for copy/cut directories
            'chmod_files'                             => false, // change file permissions
            'chmod_dirs'                              => false, // change folder permissions
            'preview_text_files'                      => true, // eg.: txt, log etc.
            'edit_text_files'                         => true, // eg.: txt, log etc.
            'create_text_files'                       => true, // only create files with exts. defined in $editable_text_file_exts

        // you can preview these type of files if $preview_text_files is true
            'previewable_text_file_exts'              => array( 'txt', 'log', 'xml', 'html', 'css', 'htm', 'js' ),
            'previewable_text_file_exts_no_prettify'  => array( 'txt', 'log' ),

        // you can edit these type of files if $edit_text_files is true (only text based files)
        // you can create these type of files if $create_text_files is true (only text based files)
        // if you want you can add html,css etc.
        // but for security reasons it's NOT RECOMMENDED!
            'editable_text_file_exts'                 => array( 'txt', 'log', 'xml', 'html', 'css', 'htm', 'js' ),

        // Preview with Google Documents
            'googledoc_enabled'                       => true,
            'googledoc_file_exts'                     => array( 'doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx' ),

        // Preview with Viewer.js
            'viewerjs_enabled'                        => true,
            'viewerjs_file_exts'                      => array( 'pdf', 'odt', 'odp', 'ods' ),

        // defines size limit for paste in MB / operation
        // set 'FALSE' for no limit
            'copy_cut_max_size'                       => 100,
        // defines file count limit for paste / operation
        // set 'FALSE' for no limit
            'copy_cut_max_count'                      => 200,
        //IF any of these limits reached, operation won't start and generate warning

        //**********************
        //Allowed extensions (lowercase insert)
        //**********************
            'ext_img'                                 => array( 'jpg', 'jpeg', 'png', 'gif', 'bmp', 'tiff', 'svg' ), //Images
            'ext_file'                                => array( 'doc', 'docx', 'rtf', 'pdf', 'xls', 'xlsx', 'txt', 'csv', 'html', 'xhtml', 'psd', 'sql', 'log', 'fla', 'xml', 'ade', 'adp', 'mdb', 'accdb', 'ppt', 'pptx', 'odt', 'ots', 'ott', 'odb', 'odg', 'otp', 'otg', 'odf', 'ods', 'odp', 'css', 'ai' ), //Files
            'ext_video'                               => array( 'mov', 'mpeg', 'm4v', 'mp4', 'avi', 'mpg', 'wma', "flv", "webm" ), //Video
            'ext_music'                               => array( 'mp3', 'm4a', 'ac3', 'aiff', 'mid', 'ogg', 'wav' ), //Audio
            'ext_misc'                                => array( 'zip', 'rar', 'gz', 'tar', 'iso', 'dmg' ), //Archives

        /******************
         * AVIARY config
         *******************/
            'aviary_active'                           => true,
            'aviary_apiKey'                           => "2444282ef4344e3dacdedc7a78f8877d",
            'aviary_language'                         => "en",
            'aviary_theme'                            => "light",
            'aviary_tools'                            => "all",
            'aviary_maxSize'                          => "1400",
        // Add or modify the Aviary options below as needed - they will be json encoded when added to the configuration so arrays can be utilized as needed

        //The filter and sorter are managed through both javascript and php scripts because if you have a lot of
        //file in a folder the javascript script can't sort all or filter all, so the filemanager switch to php script.
        //The plugin automatic swich javascript to php when the current folder exceeds the below limit of files number
            'file_number_limit_js'                    => 500,

        //**********************
        // Hidden files and folders
        //**********************
        // set the names of any folders you want hidden (eg "hidden_folder1", "hidden_folder2" ) Remember all folders with these names will be hidden (you can set any exceptions in config.php files on folders)
            'hidden_folders'                          => array(),
        // set the names of any files you want hidden. Remember these names will be hidden in all folders (eg "this_document.pdf", "that_image.jpg" )
            'hidden_files'                            => array( 'config.php' ),

        /*******************
         * JAVA upload
         *******************/
            'java_upload'                             => true,
            'JAVAMaxSizeUpload'                       => 200, //Gb


        //************************************
        //Thumbnail for external use creation
        //************************************


        // New image resized creation with fixed path from filemanager folder after uploading (thumbnails in fixed mode)
        // If you want create images resized out of upload folder for use with external script you can choose this method,
        // You can create also more than one image at a time just simply add a value in the array
        // Remember than the image creation respect the folder hierarchy so if you are inside source/test/test1/ the new image will create at
        // path_from_filemanager/test/test1/
        // PS if there isn't write permission in your destination folder you must set it
        //
            'fixed_image_creation'                    => false, //activate or not the creation of one or more image resized with fixed path from filemanager folder
            'fixed_path_from_filemanager'             => array( '../test/', '../test1/' ), //fixed path of the image folder from the current position on upload folder
            'fixed_image_creation_name_to_prepend'    => array( '', 'test_' ), //name to prepend on filename
            'fixed_image_creation_to_append'          => array( '_test', '' ), //name to appendon filename
            'fixed_image_creation_width'              => array( 300, 400 ), //width of image (you can leave empty if you set height)
            'fixed_image_creation_height'             => array( 200, '' ), //height of image (you can leave empty if you set width)
        /*
        #             $option:     0 / exact = defined size;
        #                          1 / portrait = keep aspect set height;
        #                          2 / landscape = keep aspect set width;
        #                          3 / auto = auto;
        #                          4 / crop= resize and crop;
         */
            'fixed_image_creation_option'             => array( 'crop', 'auto' ), //set the type of the crop


        // New image resized creation with relative path inside to upload folder after uploading (thumbnails in relative mode)
        // With Responsive filemanager you can create automatically resized image inside the upload folder, also more than one at a time
        // just simply add a value in the array
        // The image creation path is always relative so if i'm inside source/test/test1 and I upload an image, the path start from here
        //
            'relative_image_creation'                 => false, //activate or not the creation of one or more image resized with relative path from upload folder
            'relative_path_from_current_pos'          => array( './', './' ), //relative path of the image folder from the current position on upload folder
            'relative_image_creation_name_to_prepend' => array( '', '' ), //name to prepend on filename
            'relative_image_creation_name_to_append'  => array( '_thumb', '_thumb1' ), //name to append on filename
            'relative_image_creation_width'           => array( 300, 400 ), //width of image (you can leave empty if you set height)
            'relative_image_creation_height'          => array( 200, '' ), //height of image (you can leave empty if you set width)
        /*
        #             $option:     0 / exact = defined size;
        #                          1 / portrait = keep aspect set height;
        #                          2 / landscape = keep aspect set width;
        #                          3 / auto = auto;
        #                          4 / crop= resize and crop;
         */
            'relative_image_creation_option'          => array( 'crop', 'crop' ), //set the type of the crop


        // Remember text filter after close filemanager for future session
            'remember_text_filter'                    => false,

    );

    return array_merge(
            $config,
            array(
                    'MaxSizeUpload' => ((int)(ini_get('post_max_size')) < $config['MaxSizeUpload'])
                            ? (int)(ini_get('post_max_size')) : $config['MaxSizeUpload'],
                    'ext'=> array_merge(
                            $config['ext_img'],
                            $config['ext_file'],
                            $config['ext_misc'],
                            $config['ext_video'],
                            $config['ext_music']
                    ),
                // For a list of options see: https://developers.aviary.com/docs/web/setup-guide#constructor-config
                    'aviary_defaults_config' => array(
                            'apiKey'     => $config['aviary_apiKey'],
                            'language'   => $config['aviary_language'],
                            'theme'      => $config['aviary_theme'],
                            'tools'      => $config['aviary_tools'],
                            'maxSize'    => $config['aviary_maxSize']
                    ),
            )
    );

Please note, the source and thumbs folder have permissions 755 set.

I know I'm doing something wrong, if you could point me in the right direction, it would be much appreciated.

BTW, I've looked at all documentation, but that doesn't mean I may have overlooked or interpreted something incorrectly.

Regards, Rich

1
So what is it you would like to do? Maybe I missed it. If you're trying to "insert" an image via TinyMCE, you usually have to be able to upload it to the server. The upload dir for your File Manager needs to allow uploads: /newsite/source/ should allow your web server to Write at least. - Twisty
Twisty - did you look at the filemanager config.php file? You will see : <pre> |-------------------------------------------------------------------------- | path from base_url to base of upload folder |-------------------------------------------------------------------------- | | with start and final / | | 'upload_dir' => '/source/', */ 'upload_dir' => '/newsite/source/', - Rich R
Yes I did. That is why my comment asked about the permissions on a specific folder. - Twisty
Yes, under the config.php you will see my note regarding setting permission 755 for both the source and thumbs folders. - Rich R
What about the upload_dir folder? Also 755 doesn't tell us much if we do not know who the Owner is. If the owner is root, but apache is running under www-data, this permission is not enough. Please confirm the right folders have the right permissions. - Twisty

1 Answers

0
votes

I have found the solution. In the TinyMCE script it was coded with:

    external_filemanager_path:"/newsite/filemanager/",

I made a change as follows:

    external_filemanager_path:"filemanager/",

Apparently the external_filemanager used the complete URL, in my case

    http://www.dallasdowntownassociation.com/newsite/

and prepends it to the value in 'external_filemanager_path'.

I did find something I missed in the documentation and that was to copy the tinymce plug-in for responsivefilemanager. Once I did that I now have an icon on my toolbar for responsivefilemanager.