امروز :  جمعه, 29 ارديبهشت 1391
خانه مقالات مقالات اموزش جوملا انزیپ کردن فایل های فشرده در جوملا

انزیپ کردن فایل های فشرده در جوملا


در سیسیتم مدیریت تصاویر یا همان media manager  امکانی برای باز نمودن و یا انزیپ کردن فایل های بارگذاری شده وجود ندارد ، لذا بر ان شدیم تا اموزش ایجاد این قابلیت را برای استفاده کنندهگان جوملا معرفی کنیم . با پیگیری این آموزش شما امکان انزیپ کردن فایل هایی با پسوند های zip و tar و gz را خواهید داشت و به آسانی خواهید توانست که بر فایل های خود مدیریت داشته و به اسانی فولد و فایلا های خود را به هاست از طریق سیستم جوملا منتقل نمایید .

نکته :

 این روش بر روی جوملای نسخه 1.5.15 امتحان شده و جواب داده است . در صورتی که می خواهید برای نسخه های قدیمی تر استفاده نمایید ابتدا جوملای خود را بروز نمایید .
ابتدا وارد روت سایت خود بشوید و به ادرس زیر مراجعه کنید و فایل مربوطه را باز کنید(view.html.php)   :
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' );
    /* (...) */


حال بعد از کد بالا کد نوشته شده در پایین را اضافه نمایید :


 /* (...) */
    // 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' );
    /* (...) *
با این عمل در واقع شما کدی برای نمایش دکمه انزیپ کردن را در منوی ابزار مدیریت رسانه ایجاد کرده اید .
حال برای افزودن تابع انزیپ به ادرس زیر رفته و فایل (folder.php)  را باز نمایید :
administrator/component/com_media/controllers/folder.php

حال در این فایل بعد از تابع حذف (delete function) کد زیرا را اضافه نمایید (احتمالا بعد از خط 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);
        }
    }
    /* (...) */



برگرفته شده از :

http://docs.joomla.org/Unzip_function_in_the_Media_Manager

تیم پلاس تمپلیت با بهره گیری از دانش و تجربه خود و نیز با داشتن 2 سال سابقه کاری و کار بر روی سیستم جوملا از نسخه 1 تا 1.5 قادر به خلق قالب های زیبا و سبک و طراحی و برنامه نویسی ماژول های متنوع برای استفاده در سایت می باشد . این تیم با خدماتی چون ارائه مشاوره رایگان در مورد طراحی و نیز مدیریت سایت شما را در داشتن یک سایت زیبا ، کارا و کاربر پسند همراهی میکند .

شما می توانید از طریق ارسال پیام مشکلات و مسائل خود را در زیمنه مدیریت سیستم جوملا با پشتیبانان ما در میان بگذارید .