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

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

مقدمه

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

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

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

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

<source lang="php"> /* (...) */

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

</source>

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

<source lang="php">

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

</source>

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

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

administrator/component/com_media/controllers/folder.php

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

<source lang="php">

   /* (...) */
   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);
       }
   }
   /* (...) */  

</source>

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

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

منبع :

http://docs.joomla.org


گردآورنده : torghoundy


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