Memperbaiki menejemen file di PyroCMS

Dari sekian banyak CMS ini adalah salah satu cms yang berbasis dari CodeIgniter. Sedikit mengenal tentang PyroCMS, PyroCMS ini terdiri dari dua versi yaitu versi berbayar dan versi komunitas alias gratisan. Disini PyroCMS yang saya maksud adalah PyroCMS yang gratisan dimana saat anda upload file keserver maka semua file akan tersimpan dalam sebuah folder saja yaitu folder uploads/files/. Pada dashboard memang ada settingan untuk per folder namun itu hanyalah virtual belaka untuk keperluan gallery.

Menejemen file kali ini adalah memisahkan file dalam folder-folder sesuai dengan kapan file itu diupload (jika anda melihat letak file di wordpress pasti anda sudah tau apa yang saya maksud). Untuk proses upload di PyroCMS ditangani oleh module files (system/pyrocms/modules/files/).

Membuat folder

Setiap kali kita upload file, maka kita akan cek apakah folder pada bulan dan tahun saat ini sudah ada atau belum di bawah folder uploads. Untuk melakukan hal ini silahkan buka file admin di (system/pyrocms/modules/files/controller/admin.php) dan cari private function _check_dir(). replace dengan code dibawah ini :

	 /**
	 * Validate our upload directory.
	 * edited by temon 07-08-2011
	 */
	private function _check_dir()
	{
		if (is_dir($this->_path . date('Y') . '/' . date('m')) && is_really_writable($this->_path . date('Y') . '/' . date('m')))
		{
			return TRUE;
		}
		elseif ( ! is_dir($this->_path))
		{
			if ( ! @mkdir($this->_path))
			{
				$this->data->messages['notice'] = lang('file_folders.mkdir_error');
				return FALSE;
			}
		}
		elseif(! is_dir($this->_path . date('Y'))){
		    if ( ! @mkdir($this->_path . date('Y')) && !@mkdir($this->_path . date('Y') . '/' . date('m')))
			{
				$this->data->messages['notice'] = lang('file_folders.mkdir_error');
				return FALSE;
			}
        }
        elseif(! is_dir($this->_path . date('Y') . '/' . date('m'))){
           	if ( ! @mkdir($this->_path . date('Y') . '/' . date('m')))
			{
				$this->data->messages['notice'] = lang('file_folders.mkdir_error');
				return FALSE;
			}
        }

		else
		{
			if ( ! chmod($this->_path, 0777) && ! chmod($this->_path . date('Y'), 0777) && ! chmod($this->_path . date('Y') . '/' . date('m'), 0777))
			{
				$this->session->messages['notice'] = lang('file_folders.chmod_error');
				return FALSE;
			}
		}
	}

	// ------------------------------------------------------------------------

Merubah upload destination

Baca Juga:  Cara Tagging Ala Twitter Dengan Regular Expression

Setelah folder berdasarkan bulan dan tahun itu sudah terbuat, barulah kita mengarahkan tujuan file yang kita upload ke folder bulan yang kita upload misalnya untuk bulan ini adalah di folder uploads/2011/08. Sama seperti yang pertama buka file admin di (system/pyrocms/modules/files/controller/admin.php) dan cari public function upload. Rubah dibagian ini :

		// Setup upload config
			$this->load->library('upload', array(
				'upload_path'	=> $this->_path . date('Y') . '/' . date('m'),
				'allowed_types'	=> $this->_ext,
				'overwrite'     => FALSE,
				'remove_spaces' => TRUE
			));

Jangan lupa untuk mengubah config files_folder di files.php (system/pyrocms/modules/files/config/files.php) dengan “uploads” saja. 😀

semoga membantu, jika ada kekurangan silahkan ditambah yah.

Komentar

comments

grain storage instagram türk takipçi satın al