افزودن آنزیپ(unzip) به مدیریت رسانه ها ، بصری، تصویری،...

چاپفرستادن به ایمیل

 

 با سلام

امروز می خوام یک آموزش خوب که خیلی به درد می خوررا براتون بزارم 

اگر تا به حال با با 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' );
    /* (...) */ 

 کد زیر  را  قرار دهید


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


با اضافه کردن این کد، دکمه در منو بالایی و در کنار دکمه حذف به وجود خواهد آمد.

بعد از اضافه کردن کد بالا  به مسیر زیر مراجعه کرده و فایل مورد نظر را باز کنید

administrator/component/com_media/controllers/folder.php

و بعد ازخط 90( تابع حذف )  یا به عبارتی بعد از کد زیر :

 


	  function delete()

	    {

	        global $mainframe;

	

	        JRequest::checkToken('request') or jexit( 'Invalid Token' );

	

	        // 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 !== JFile::makeSafe($path)) {

	                    JError::raiseWarning(100, JText::_('Unable to delete:').htmlspecialchars($path, ENT_COMPAT, 'UTF-8').' '.JText::_('WARNDIRNAME'));

	                    continue;

	                }

	

	                $fullPath = JPath::clean(COM_MEDIA_BASE.DS.$folder.DS.$path);

	                if (is_file($fullPath)) {

	                    $ret |= !JFile::delete($fullPath);

	                } else if (is_dir($fullPath)) {

	                    $files = JFolder::files($fullPath, '.', true);

	                    $canDelete = true;

	                    foreach ($files as $file) {

	                        if ($file != 'index.html') {

	                            $canDelete = false;

	                        }

	                    }

	                    if ($canDelete) {

	                        $ret |= !JFolder::delete($fullPath);

	                    } else {

	                        JError::raiseWarning(100, JText::_('Unable to delete:').$fullPath.' '.JText::_('Not Empty!'));

	                    }

	                }

	            }

	        }

	        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);

	        }

	    }

 

این کد را قرار دهید (کد زیر)



	  /* (...) */ function unzip() { global $mainframe;

	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);

	}

	}

	    /* (...) */

 

خوب کار تموم شد ...

شما از این پس می توانید تواسط  Media Manager (مدیریت رسانه ها ، بصری، تصویری،...) فایل های فشرده با پسوند های Zip,Tar,Gz را آنزیپ کنید .

ترجمه شده توسط : سعید شمسی از ویکی جوملا

نوشتن نظر (0)Add Comment

بیان دیدگاه
كوچكتر | بزرگتر

security code
باز نویسی حروف نمايش داده شده.


busy