براي استفاده از امكانات انجمن مامبولرن بايد عضو شويد ، براي ثبت نام كليك كنيد




 Advertisement

هاستینگ جوملا مامبو اس ام اف - ثبت دامین
تبلیغات Advertising
مکان فعلی شما : انجمن تخصصی جوملا فارسی - مامبو فارسی » عمومی  » متفرقه » مقالات و آموزش ها » اکستراکت فایل های فشرده در مدیریت رسانه - جوملا
صفحه: [1]   پایین

نویسنده موضوع: اکستراکت فایل های فشرده در مدیریت رسانه - جوملا  (دفعات بازدید: 795 بار)

torghoundy

  • تیم مامبولرن
  • *****
  • آفلاین آفلاین
  • جنسيت : پسر
  • ارسال: 1223
  • معین رضائی
    • WWW
اکستراکت فایل های فشرده در مدیریت رسانه - جوملا
« : سه‌شنبه, 07 سپتامبر 2010 - 21:49 »
سلام
اگر توجه کنید 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 رو از حالت فشرده خارج کنید.
توجه داشته باشید و قتی فایلی رو انزیپ می کنید یک پوشه با همون نام ایجاد میشه و محتویات انزیپ شده داخلش قرار میگیره.
این کار روی نسخه 1.5.20 جوملا امتحان شده.

منبع:
http://docs.joomla.org
صفحه: [1]   بالا
 

انجمن تخصصی مامبو و جوملا فارسی RSS - آر اس اس Bookmark and Share