Всем привет.
Установил дополнение Prime Image Uploader. Считаю, было бы неплохо сделать выбор размера изображения (миниатюра, средний, большой, оригинал).
Доп. Magnific Popup Recall тоже установил, только так и не понял, где он меняет изображения и как его настраивать.
И еще, форум не дает выложить просто картинку без текста (он считает, что это пустое сообщение).
Приходится что-то придумывать, вставлять смайлы и т.п.
доп не имеет настроек и делает все автоматически. Давайте ссылку на проблему
Ссылку дать не на что) Я бы не сказал что это проблема, скорее предложение:
1. Дать возможность при загрузке изображений на форум указывать их размер (оригинал, миниатюра, средний, большой)
2. Дать возможность постить просто изображения без текста
3. Дать возможность вставлять изображения вперемешку с текстом, а не только внизу под текстом.
Было бы круто. Лично я готов за это доплатить дополнительно. Думаю, другие вебмастера тоже)
пункт 1 - возможно рассмотрю позже
пункты 2 и 3 имеют массу подводных камней, которые делают реализацию затруднительной, не так давно обсуждали возможность постить изображения в произвольное место визуального редактора обычной публикации без использования медиабиблиотеки, там я указывал на проблему подобного подхода, тут та же история - медиабиблиотека загруженных к посту изображений должна быть, тогда пользователь сможет управлять этими изображениями, а админ сможет контролировать загрузку изображений установленными лимитами, вот выводимая галерея изображений и выполняет роль медиабиблиотеки только для одного сообщения.
По поводу ставки картинок:
Скрипт для вставки в любое место:
jQuery.fn.extend({ insertAtCaret: function(myValue) { if (document.selection) { this.focus(); sel = document.selection.createRange(); sel.html = myValue; this.focus(); } else if (this.selectionStart || this.selectionStart == '0') { var startPos = this.selectionStart; var endPos = this.selectionEnd; var scrollTop = this.scrollTop; this.value = this.value.substring(0, startPos)+myValue+this.value.substring(endPos,this.value.length); this.focus(); this.selectionStart = startPos + myValue.length; this.selectionEnd = startPos + myValue.length; this.scrollTop = scrollTop; } else { this.value += myValue; this.focus(); } } }); jQuery(document).on('click', '.piu-image-preview img', function(){ var img = jQuery(this).attr('src'); jQuery('.wp-editor-area').insertAtCaret('<img src="'+img+'">'); });
Код для фильтра контента и замены картинки на ту, что получилась после перемещения ее в медиабиблиотеку
function get_attachment_url_by_title( $title ) { global $wpdb; $attachments = $wpdb->get_results( "SELECT * FROM $wpdb->posts WHERE guid LIKE '%$title%' AND post_type = 'attachment' ", OBJECT ); //print_r($attachments); if ( $attachments ){ $attachment_url = $attachments[0]->guid; }else{ return 'image-not-found'; } return $attachment_url; } add_action('pfm_add_post','pfm_parse_img_after_add_post',999); add_action('pfm_after_update_post','pfm_parse_img_after_add_post',999); function pfm_parse_img_after_add_post($post_id) { $dom=new DOMDocument(); $dom->loadHTML(pfm_get_post_content($post_id)); $imgs = $dom->getElementsByTagName('img'); foreach($imgs as $img){ $img_src = $img->getAttribute('src'); // will give you the src String //do something here $pathinfo = pathinfo($img_src); $img_name = $pathinfo['filename'].'.'.$pathinfo['extension']; $new_src = get_attachment_url_by_title($img_name); $img->setAttribute('src',$new_src); // change your src= value } $args = array(); $args['post_content'] = $dom->saveHTML(); global $wpdb; $result = $wpdb->update( RCL_PREF.'pforum_posts', $args, array( 'post_id' => $post_id ) ); }
Для упрощения что бы не использовать поиск LIKE %...% можно при перемещении картинки в библиотеку в поле, например, post_name писать сгенерированное имя файла.
Ну или может это натолкнет на другую реализацию, но думаю это реально