اکستراکت فایل‌های فشرده در مدیریت رسانه - جوملا

از دانشنامه جوملا فارسی - مامبو فارسی
پرش به: ناوبری, جستجو

مقدمه

اگر توجه کنید Media manager یا همان مدیریت رسانه امکان اكستراكت کردن فایل‌های فشرده را در خودش ندارد.

قصد داريم تا اين امكان را به آن اضافه كنيم.

چگونه می‌توان اين امكان را به آن اضافه كرد؟

ابتدا فایل administrator/component/com_media/views/media/view.html.php را از ريشه جوملای خود باز کرده و در خط 106 کد زير را پيدا كنيد:

/* (...) */
    // Add a delete button
    $title = JText::_('Delete');
    $dhtml = "<a href=\"#\" onclick=\"MediaManager.submit('folder.delete')\"
      class=\"toolbar\">
                <span class=\"icon-32-delete\" title=\"$title\"
                  type=\"Custom\"></span>
                $title</a>";
    $bar->appendButton( 'Custom', $dhtml, 'delete' );
    /* (...) */

سپس بعد از خط 106 این کد را اضافه کنید:

    /* (...) */
    // Add a Unzip button
    $title = JText::_('Unzip');
    $dhtml = "<a href=\"#\" onclick=\"MediaManager.submit('folder.unzip')\"
      class=\"toolbar\">
                <span class=\"icon-32-unarchive\" title=\"$title\"
                  type=\"Custom\"></span>
                $title</a>";
    $bar->appendButton( 'Custom', $dhtml, 'unzip' );
    /* (...) */

تا این مرحله شما یک آیکن کنار آیکن delete در مدیریت رسانه ایجاد کردید.

حالا فایل زير را باز کنید :

administrator/component/com_media/controllers/folder.php

و بعد از خط 90 کد زير را اضافه کنید:

    /* (...) */
    function unzip() {
        global $mainframe;
 
        // Set FTP credentials, if given
        jimport('joomla.client.helper');
        JClientHelper::setCredentialsFromRequest('ftp');
 
        // Get some data from the request
        $tmpl    = JRequest::getCmd( 'tmpl' );
        $paths    = JRequest::getVar( 'rm', array(), '', 'array' );
        $folder = JRequest::getVar( 'folder', '', '', 'path');
 
        // Initialize variables
        $msg = array();
        $ret = true;
 
        if (count($paths)) {
            foreach ($paths as $path)
            {
                if ($path !== JFilterInput::clean($path, 'path')) {
                    JError::raiseWarning(100, JText::_('Impossible de
                      decompresser:').htmlspecialchars($path, ENT_COMPAT,
                      'UTF-8').' '.JText::_('WARNDIRNAME'));
                    continue;
                }
 
                $fullPath = JPath::clean(COM_MEDIA_BASE.DS.$folder.DS.$path);
 
                if (is_file($fullPath)) {
                    $ext = JFile::getExt(strtolower($fullPath));
                        $pathdir = $fullPath;
                        if($ext != 'gz') {
                            $pathdir = str_replace( ".".$ext, "",$pathdir);
                        }
                    else {
                        $pathdir = str_replace( ".".$ext, "",$pathdir);
                        $pathdir = str_replace( ".tar", "",$pathdir);
                    }
 
                    jimport('joomla.filesystem.*');
                    jimport('joomla.filesystem.archive');
                    JFolder::create($pathdir);
                    JFile::write($pathdir.DS."index.html", "<html>\n<body
                      bgcolor=\"#FFFFFF\">\n</body>\n</html>");
                    JArchive::extract($fullPath, $pathdir);
 
 
                } else if (is_dir($fullPath)) {
                    JError::raiseWarning(100, JText::_('Imossible de
                      decompresser:').$fullPath.' '.JText::_('Pas un fichier
                      ZIP'));
                }
            }
        }
        if ($tmpl == 'component') {
            // We are inside the iframe
            $mainframe->redirect('index.php?option=com_media&view=mediaList&
              folder='.$folder.'&tmpl=component');
        } else {
            $mainframe->redirect('index.php?option=com_media&folder='.$folder);
        }
    }
    /* (...) */

پس از ذخيره فايل یک دکمه برای اکستراکت ساخته شده و شما قادر هستید فرمت‌های zip,tar و gz را از حالت فشرده خارج کنید.

توجه داشته باشید و قتی فایلی رو اكستراكت می‌کنید یک پوشه با همان نام ایجاد می‌شود و محتویات اكستراكت شده درون آن شاخه قرار میگیرد.

منبع :

http://docs.joomla.org


گردآورنده : torghoundy


8.pngاستفاده از مطالب دانشنامه جوملا فارسی - مامبو فارسی با ذکر منبع ( دانشنامه جوملا فارسی ) و لینک مستقیم به http://docs.joomlafarsi.com بلامانع است.
ابزارهای شخصی
گویش‌ها
فضاهای نام
عملکردها
گشتن
جوملا فارسی
مامبولرن
جعبه‌ابزار