Перейти к контенту
  • 0

2.2.2 тестирую создание темы... жуть выдает...


Ульяна

Вопрос

При нажатии на кнопку "создать" выдает вот что:

- // Got an ID? //----------------------------------------- if ( ! is_array( $attach_rel_ids ) or ! count( $attach_rel_ids ) ) { return FALSE; } //----------------------------------------- // Make sure we've got permission //----------------------------------------- if ( $this->plugin->return_bulk_remove_permission( $attach_rel_ids ) === TRUE ) { //----------------------------------------- // Get stuff //----------------------------------------- $this->ipsclass->DB->build_query( array( 'select' => '*', 'from' => 'attachments', 'where' => 'attach_rel_id IN ('.implode(",",$attach_rel_ids).") AND attach_rel_module='".$this->type."'" ) ); $this->ipsclass->DB->exec_query(); while( $_row = $this->ipsclass->DB->fetch_row() ) { $attachments[ $_row['attach_id'] ] = $_row; } foreach( $attachments as $attach_id => $attachment ) { //----------------------------------------- // Remove from the filesystem //----------------------------------------- if ( $attachment['attach_location'] ) { @unlink( $this->_upload_path."/".$attachment['attach_location'] ); } if ( $attachment['attach_thumb_location'] ) { @unlink( $this->_upload_path."/".$attachment['attach_thumb_location'] ); } //----------------------------------------- // Allow the module to clean up any items //----------------------------------------- $this->plugin->remove_attachment_clean_up( $attachment ); } //----------------------------------------- // Remove from the DB //----------------------------------------- $this->ipsclass->DB->build_and_exec_query( array( 'delete' => 'attachments', 'where' => 'attach_rel_id IN ('.implode(",",$attach_rel_ids).") AND attach_rel_module='".$this->type."'" ) ); return TRUE; } else { return FALSE; } } /*-------------------------------------------------------------------------*/ // Remove uploaded file /*-------------------------------------------------------------------------*/ /** * Removes an attachment. */ function remove_attachment() { //----------------------------------------- // Got an ID? //----------------------------------------- if ( ! $this->attach_id ) { return FALSE; } //----------------------------------------- // Get DB row //----------------------------------------- $attachment = $this->ipsclass->DB->build_and_exec_query( array( 'select' => '*', 'from' => 'attachments', 'where' => 'attach_id='.$this->attach_id." AND attach_rel_module='".$this->type."'" ) ); if ( ! $attachment['attach_id'] ) { return FALSE; } //----------------------------------------- // Make sure we've got permission //----------------------------------------- if ( $this->plugin->return_remove_permission( $attachment ) === TRUE ) { //----------------------------------------- // Remove from the DB //----------------------------------------- $this->ipsclass->DB->build_and_exec_query( array( 'delete' => 'attachments', 'where' => 'attach_id='.$attachment['attach_id'] ) ); //----------------------------------------- // Remove from the filesystem //----------------------------------------- if ( $attachment['attach_location'] ) { @unlink( $this->_upload_path."/".$attachment['attach_location'] ); } if ( $attachment['attach_thumb_location'] ) { @unlink( $this->_upload_path."/".$attachment['attach_thumb_location'] ); } //----------------------------------------- // Allow the module to clean up any items //----------------------------------------- $this->plugin->remove_attachment_clean_up( $attachment ); return TRUE; } else { return FALSE; } } /*-------------------------------------------------------------------------*/ // Post Process upload /*-------------------------------------------------------------------------*/ /** * Converts post-key attachments into rel_id / rel_module attachments * by adding in the correct ID, etc */ function post_process_upload( $args=array() ) { if ( ! $this->attach_post_key or ! $this->attach_rel_id ) { return FALSE; } //----------------------------------------- // Got any to update? //----------------------------------------- $this->ipsclass->DB->do_update( 'attachments', array( 'attach_rel_id' => $this->attach_rel_id, 'attach_rel_module' => $this->type ), "attach_post_key='". $this->attach_post_key ."'" ); //----------------------------------------- // Update module specific? //----------------------------------------- return $this->plugin->post_process_upload( $this->attach_post_key, $this->attach_rel_id, $args ); } /*-------------------------------------------------------------------------*/ // Process upload /*-------------------------------------------------------------------------*/ /** * Uploads and saves file */ function process_upload() { //----------------------------------------- // INIT //----------------------------------------- $this->error = ''; $this->get_upload_form_settings(); //----------------------------------------- // Check upload dir //----------------------------------------- if ( ! $this->check_upload_dir() ) { if ( $this->error ) { return; } } //----------------------------------------- // Got attachment types? //----------------------------------------- if ( ! isset( $this->ipsclass->cache['attachtypes'] ) OR ! is_array( $this->ipsclass->cache['attachtypes'] ) ) { $this->ipsclass->cache['attachtypes'] = array(); $this->ipsclass->DB->simple_construct( array( 'select' => 'atype_extension,atype_mimetype,atype_post,atype_photo,atype_img', 'from' => 'attachments_type', 'where' => "atype_photo=1 OR atype_post=1" ) ); $this->ipsclass->DB->simple_exec(); while ( $r = $this->ipsclass->DB->fetch_row() ) { $this->ipsclass->cache['attachtypes'][ $r['atype_extension'] ] = $r; } } //----------------------------------------- // Can upload? //----------------------------------------- if ( ! $this->attach_stats['allow_uploads'] ) { $this->error = 'no_upload_permission'; return; } //----------------------------------------- // Set up array //----------------------------------------- $attach_data = array( 'attach_ext' => "", 'attach_file' => "", 'attach_location' => "", 'attach_thumb_location' => "", 'attach_hits' => 0, 'attach_date' => time(), 'attach_temp' => 0, 'attach_post_key' => $this->attach_post_key, 'attach_member_id' => $this->ipsclass->member['id'], 'attach_rel_id' => $this->attach_rel_id, 'attach_rel_module' => $this->type, 'attach_filesize' => 0, ); //----------------------------------------- // Load the library //----------------------------------------- require_once( KERNEL_PATH.'class_upload.php' ); $upload = new class_upload(); //----------------------------------------- // Set up the variables //----------------------------------------- $upload->out_file_name = $this->type.'-'.$this->ipsclass->member['id'].'-'.time(); $upload->out_file_dir = $this->upload_path; $upload->max_file_size = $this->attach_stats['max_single_upload'] ? $this->attach_stats['max_single_upload'] : 1000000000; $upload->make_script_safe = 1; $upload->force_data_ext = 'ipb'; //----------------------------------------- // Populate allowed extensions //----------------------------------------- if ( is_array( $this->ipsclass->cache['attachtypes'] ) and count( $this->ipsclass->cache['attachtypes'] ) ) { foreach( $this->ipsclass->cache['attachtypes'] as $idx => $data ) { $upload->allowed_file_ext[] = $data['atype_extension']; } } //----------------------------------------- // Upload... //----------------------------------------- $upload->upload_process(); //----------------------------------------- // Error? //----------------------------------------- if ( $upload->error_no ) { switch( $upload->error_no ) { case 1: // No upload $this->error = 'upload_no_file'; return $attach_data; break; case 2: // Invalid file ext $this->error = 'invalid_mime_type'; return $attach_data; break; case 3: // Too big... $this->error = 'upload_too_big'; return $attach_data; break; case 4: // Cannot move uploaded file $this->error = 'upload_failed'; return $attach_data; break; case 5: // Possible XSS attack (image isn't an image) $this->error = 'upload_failed'; return $attach_data; break; } } //----------------------------------------- // Still here? //----------------------------------------- if ( $upload->saved_upload_name and @file_exists( $upload->saved_upload_name ) ) { //----------------------------------------- // Strip off { } and [ ] //----------------------------------------- $upload->original_file_name = preg_replace( "#[\[\]\{\}]#", "", $upload->original_file_name ); $attach_data['attach_filesize'] = @filesize( $upload->saved_upload_name ); $attach_data['attach_location'] = $this->upload_dir . $upload->parsed_file_name; $attach_data['attach_file'] = $upload->original_file_name; $attach_data['attach_is_image'] = $upload->is_image; $attach_data['attach_ext'] = $upload->real_file_extension; if ( $attach_data['attach_is_image'] == 1 ) { require_once( KERNEL_PATH.'class_image.php' ); $image = new class_image(); $image->in_type = 'file'; $image->out_type = 'file'; $image->in_file_dir = $this->upload_path; $image->in_file_name = $upload->parsed_file_name; $image->desired_width = $this->settings['siu_width']; $image->desired_height = $this->settings['siu_height']; $image->gd_version = $this->ipsclass->vars['gd_version']; if ( $this->settings['siu_thumb'] ) { $thumb_data = $image->generate_thumbnail(); } if ( $thumb_data['thumb_location'] ) { $attach_data['attach_img_width'] = $thumb_data['original_width']; $attach_data['attach_img_height'] = $thumb_data['original_height']; $attach_data['attach_thumb_width'] = $thumb_data['thumb_width']; $attach_data['attach_thumb_height'] = $thumb_data['thumb_height']; $attach_data['attach_thumb_location'] = $this->upload_dir . $thumb_data['thumb_location']; } } //----------------------------------------- // Add into Database //----------------------------------------- $this->ipsclass->DB->do_insert( 'attachments', $attach_data ); $newid = $this->ipsclass->DB->get_insert_id(); return $newid; } } /*-------------------------------------------------------------------------*/ // Upload form stuff /*-------------------------------------------------------------------------*/ /** * Gets stuff required for the upload form */ function get_upload_form_settings() { //----------------------------------------- // Collect settings from the plug-in //----------------------------------------- $stats = $this->plugin->get_space_allowance( $this->attach_post_key ); //----------------------------------------- // Format and return... //----------------------------------------- $this->attach_stats['space_used'] = $stats['space_used']; $this->attach_stats['space_used_human'] = $this->ipsclass->size_format( $stats['space_used'] ); $this->attach_stats['total_space_allowed'] = $stats['total_space_allowed'] ? $stats['total_space_allowed'] : $stats['max_single_upload']; $this->attach_stats['max_single_upload'] = $stats['max_single_upload']; $this->attach_stats['max_single_upload_human'] = $this->attach_stats['max_single_upload'] ? $this->ipsclass->size_format( $stats['max_single_upload'] ) : $this->language[ 'unlimited' ]; $this->attach_stats['total_space_allowed_human'] = $this->attach_stats['total_space_allowed'] ? $this->ipsclass->size_format( $this->attach_stats['total_space_allowed'] ) : $this->language[ 'unlimited' ]; if ( $stats['space_allowed'] == 0 ) { //----------------------------------------- // Unlimited... //----------------------------------------- $this->attach_stats['allow_uploads'] = 1; $this->attach_stats['space_allowed'] = 'unlimited'; $this->attach_stats['space_allowed_human'] = $this->language[ 'unlimited' ]; $this->attach_stats['space_left'] = 'unlimited'; $this->attach_stats['space_left_human'] = $this->language[ 'unlimited' ]; $this->attach_stats['total_space_allowed_human'] = $this->language[ 'unlimited' ]; //$this->attach_stats['space_used_human'] = $this->language[ 'unlimited' ]; } else if ( $stats['space_allowed'] == -1 ) { //----------------------------------------- // None //----------------------------------------- $this->attach_stats['allow_uploads'] = 0; $this->attach_stats['space_allowed'] = 'not_allowed'; $this->attach_stats['space_allowed_human'] = $this->language[ 'not_allowed' ]; $this->attach_stats['space_left'] = 'not_allowed'; $this->attach_stats['space_left_human'] = $this->language[ 'not_allowed' ]; } else { //----------------------------------------- // Set figure //----------------------------------------- $this->attach_stats['allow_uploads'] = 1; $this->attach_stats['space_left'] = $stats['space_left']; $this->attach_stats['space_left_human'] = $this->ipsclass->size_format( $stats['space_left'] ); } } /*-------------------------------------------------------------------------*/ // Check uploads dir /*-------------------------------------------------------------------------*/ /** * Checks the upload dir * See above. It's not rocket science * * @return void */ function check_upload_dir() { //----------------------------------------- // Check dir exists... //----------------------------------------- if ( ! file_exists( $this->upload_path ) ) { if ( @mkdir( $this->upload_path, 0777 ) ) { @chmod( $this->upload_path, 0777 ); } else { $this->error = "no_upload_dir"; return false; } } else if ( ! is_writeable( $this->upload_path ) ) { $this->error = "no_upload_dir_perms"; return false; } //----------------------------------------- // Try and create a new monthly dir // eg: monthly_12_2005 //----------------------------------------- $this_month = "monthly_" . gmdate( "m_Y", time() ); //----------------------------------------- // Already a dir? //----------------------------------------- if ( $this->settings['allow_monthly_upload_dirs'] ) { $path = $this->upload_path . "/" . $this_month; if ( ! file_exists( $path ) ) { if ( @mkdir( $path, 0777 ) ) { @chmod( $path, 0777 ); # Set path and dir correct $this->upload_path .= "/" . $this_month; $this->upload_dir = $this_month."/"; } //----------------------------------------- // Was it really made or was it lying? //----------------------------------------- if ( ! file_exists( $path ) ) { $this->upload_path = $this->_upload_path; $this->upload_dir = '/'; } } else { # Set path and dir correct $this->upload_path .= "/" . $this_month; $this->upload_dir = $this_month."/"; } } return true; } /*-------------------------------------------------------------------------*/ // Load plug-in class /*-------------------------------------------------------------------------*/ /** * Loads child extends class. */ function load_plugin() { //----------------------------------------- // INIT //----------------------------------------- $this->type = $this->ipsclass->txt_alphanumerical_clean( $this->type ); //----------------------------------------- // Load... //----------------------------------------- $file = ROOT_PATH . 'sources/classes/attach/plugin_'.$this->type.'.php'; $class = 'plugin_'.$this->type; if ( ! is_object( $this->plugin ) ) { if ( file_exists( $file ) ) { require_once( $file ); $this->plugin = new $class; $this->plugin->ipsclass =& $this->ipsclass; $this->plugin->get_settings(); } else { print "Could not locate $file"; exit(); } } } /*-------------------------------------------------------------------------*/ // Parse thumbnail attachments inline /*-------------------------------------------------------------------------*/ /** * Swaps the HTML for the nice attachments. * * @param array Array of matches from preg_replace_callback * @return string HTML */ function _parse_thumbnail_inline( $matches ) { //----------------------------------------- // INIT //----------------------------------------- $row = $this->_current['row']; $skin_name = $this->_current['skin_name']; //----------------------------------------- // Generate random ID //----------------------------------------- $row['_attach_id'] = $row['attach_id'] . '-' . preg_replace( "#[\.\s]#", "-", microtime() ); //----------------------------------------- // Build HTML //----------------------------------------- $tmp = $this->ipsclass->compiled_templates[ $skin_name ]->Show_attachments_img_thumb( array( 't_location' => $row['attach_thumb_location'], 't_width' => $row['attach_thumb_width'], 't_height' => $row['attach_thumb_height'], 'o_width' => $row['attach_img_width'], 'o_height' => $row['attach_img_height'], 'attach_id' => $row['attach_id'], '_attach_id' => $row['_attach_id'], 'file_size' => $this->ipsclass->size_format( $row['attach_filesize'] ), 'attach_hits' => $row['attach_hits'], 'location' => $row['attach_file'], 'type' => $this->_current['type'], ) ); return $tmp; } } ?>

 

 

 

 

 

 

 

Но при всем при этом тему создает.....

что поправить?

Ссылка на комментарий
Поделиться на других сайтах

Рекомендуемые сообщения

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.