سلام ، آیا این بازدید اول شماست ؟ یا
نمایش نتایج: از شماره 1 تا 1 , از مجموع 1

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

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1

    تاریخ عضویت
    Aug 2009
    محل سکونت
    Afghanistan - Herat
    نوشته ها
    2,445
    تشکر
    1,026
    تشکر شده 450 بار در 357 ارسال

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

    سلام
    اگر توجه کنید 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

    جهت مشاهده لینک ها باید ثبت نام کنید یا لاگین کنید.


  2. # ADS
    تبلیغات در جوملا فارسی
    تاریخ عضویت
    Always
    محل سکونت
    Advertising world
    نوشته ها
    Many
     

علاقه مندی ها (Bookmarks)

علاقه مندی ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •