Вернуться   Дизайнерский форум » ВЕБ-ПРОГРАММИРОВАНИЕ » ASP, Perl, PHP и MySQL

Проблема с редактором на сайте

Обсуждение темы Проблема с редактором на сайте в разделе ASP, Perl, PHP и MySQL, часть категории ВЕБ-ПРОГРАММИРОВАНИЕ; Ранее не сталкивался с такой задачей, не могу разобраться, установил визуальный редактор на сайт вопросов (логин и пароль test), текст сохраняет, код видео ...


Закрытая тема
 
Опции темы
Старый 27.10.2011, 20:32   #1
Ранее не сталкивался с такой задачей, не могу разобраться, установил визуальный редактор на сайт вопросов (логин и пароль test), текст сохраняет, код видео сохраняет и потом все это отображает в новостях после сохранения.

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

Т.е. картинку грузит на сервер а на сайт не выводит (выводит только в момент добавления картинки, до сохранения).

В чем может быть проблема? Подскажите

Я так понимаю редактор сам должен код со ссылкой на картинку вставить, т.е. сохранить его в базу mysql
Когда вставляешь готовый код видео, редактор его сохраняет и отображеет, а картинки не хочет, сохраняет только саму картинку в папку на сервер и все, я видимо что-то не доганяю, наверное мне нужно что-то, куда-то прописать, в обработчик какой?
Считал, что редактор сам все это делает на автомате.

Вот такой upload.php может в нем что не то или от него не зависит?

PHP код:
<?php
    
include "../config.php";

$_FILES['file']['type'] = strtolower($_FILES['file']['type']);

if (
$_FILES['file']['type'] == 'image/png' 
|| $_FILES['file']['type'] == 'image/jpg' 
|| $_FILES['file']['type'] == 'image/gif' 
|| $_FILES['file']['type'] == 'image/jpeg'
|| $_FILES['file']['type'] == 'image/pjpeg')
{    
    
copy($_FILES['file']['tmp_name'], IMAGES_ROOT.md5(date('YmdHis')).'.jpg');
    echo 
'/redactor/tmp/images/'.md5(date('YmdHis')).'.jpg';
}
?>
Такой config.php

PHP код:
<?php
define
('SYSTEM_ROOT''/var/www/u1578791/data/www/demo.ruvotes.ru/redactor/');
define('FILES_ROOT'SYSTEM_ROOT.'tmp/files/');
define('IMAGES_ROOT'SYSTEM_ROOT.'tmp/images/');
?>
Вот такой код в redactor.js относящийся к картинкам как я понял, может в нем, что править нужно?

Код HTML:
        /*
            Image
        */  
        imageEdit: function(e)
        {
            var handler = function()
            {
                var $el = $(e.target);
                var src = $el.attr('src');      
                $('#redactor_image_edit_src').attr('href', src);
                $('#redactor_image_edit_delete').click(function() { this.deleteImage(e.target);  }.bind2(this));
                $('#redactorSaveBtn').click(function() { this.imageSave(e.target);  }.bind2(this));

                $('#redactor_file_alt').val($el.attr('alt'));
                
                var float = $el.css('float');
                if (float == 'none') float = 0;
                
                $('#redactor_form_image_align').val(float);

            }.bind2(this);       
        
            redactorActive = this;      
            this.modalInit(RLANG.image, this.opts.path + 'plugins/image_edit.html', 380, 290, handler);
        },
        imageSave: function(el)
        {
            $(el).attr('alt', $('#redactor_file_alt').val());
    
            var style = '';
            if ($('#redactor_form_image_align') != 0)
            {
                var float = $('#redactor_form_image_align').val();
                
                if (float == 'left') $(el).css({ float: 'left', margin: '10px' });
                else if (float == 'right') $(el).css({ float: 'right', margin: '10px' });
            }
            else $(el).css({ float: 'none', margin: '0' });

            this.modalClose();
        },
        deleteImage: function(el)
        {
            $(el).remove();
            this.modalClose();
        },      
        showImage: function()
        {
            this.spanid = Math.floor(Math.random() * 99999);
            if (jQuery.browser.msie)
            {
                this.execCommand('inserthtml', '<span id="span' + this.spanid + '"></span>');
            }
            
            var handler = function()
            {
                var params = '';

                if (this.opts.imageUploadFunction) var params = this.opts.imageUploadFunction();
                this.uploadInit('redactorInsertImageForm', { url: this.opts.image_upload + params, trigger: 'redactorUploadBtn', success: function(data) {
                    this.imageUploadCallback(data);
                }.bind2(this)  });           

            }.bind2(this);
            
        
            redactorActive = this;
            this.modalInit(RLANG.image, this.opts.path + 'plugins/image.html', 450, 330, handler);
        },
        imageUploadCallback: function(data)
        {
            if ($('#redactor_file_link').val() != '') data = $('#redactor_file_link').val();
            var alt = $('#redactor_file_alt').val();
    
            var className = '';
            if ($('#redactor_form_image_align') != 0)
            {
                var float = $('#redactor_form_image_align').val();
                
                if (float == 'left') className = 'class=="img_left"';
                else if (float == 'right') className = 'class="img_right"';
                
                var html = '<img alt="' + alt + '" src="' + data + '" ' + className + ' />';
            }
            else
            {
                var html = '<p><img alt="' + alt + '" src="' + data + '" /></p>'; 
            }
        
            redactorActive.frame.get(0).contentWindow.focus();
            
            if ($.browser.msie)
            {       
                $(redactorActive.doc.getElementById('span' + redactorActive.spanid)).after(html);
                $(redactorActive.doc.getElementById('span' + redactorActive.spanid)).remove();
            }   
            else
            {
                redactorActive.execCommand('inserthtml', html);
            }
    
            this.modalClose();
            this.docObserve();          
    
        },

Последний раз редактировалось 74ivan74; 27.10.2011 в 20:38.. Причина: Добавлено сообщение
 
Старый 27.10.2011, 20:32
Ссылки
Старый 27.10.2011, 20:37   #2
теоретически, строка echo '/redactor/tmp/images/'.md5(date('YmdHis')).'.jpg'; как разтаки видимо возвращает клиенту инфу о файле картинки. тут надо смотреть сторону клиента, что там происходит и почему инфа не идет дальше.
 
Этот пользователь сказал спасибо redreem за это полезное сообщение:
74ivan74 (27.10.2011)
Старый 27.10.2011, 20:40   #3
тут надо смотреть сторону клиента, что там происходит и почему инфа не идет дальше

это в какой стороне смотреть?
 
Старый 27.10.2011, 20:40   #4
покажи рабочую страницу (выложи гденить на хостинге) с этой фигней.
 
Старый 27.10.2011, 20:48   #5
Если я с путем ошибся '/redactor/tmp/images/'.md5(date('YmdHis')).'.jpg';
при просмотре кода сайта, всеравно должно же быть что-то там, где должно быть изображение (не верный урл пути)?

http://demo.ruvotes.ru/
логин и пароль test

Еще такой код есть, я так понял он отвечает за передачу инфы из редактора ans_content

PHP код:
    function view($id 0){
        
        
$id = (int)$id;
        
        
$q $this->qa_m->get_q_by_id($id);
        
        if(
$q){
            
            if(isset(
$_SESSION['user']->user_id)){
            
                
$this->db->replace('xref_user_q_ans_cnt',array('ans_cnt'=>$q->q_answer_cnt,'user_id'=>$_SESSION['user']->user_id,'q_id'=>$id));
                
            }
            
            if(
count($_POST)){
                
                if(!isset(
$_SESSION['user']))redirect('user/auth');
                
                
$data = array(
                        
'ans_content'   =>    $this->_strip($_POST['ans_content']),
                        
'ans_datetime'  =>    time(),
                        
'ans_user_id'   =>    $_SESSION['user']->user_id,
                        
'ans_q_id'      =>    $id
                
);
                
$this->db->insert('answer',$data);
                
                
$this->db->query('UPDATE question SET q_answer_cnt = q_answer_cnt + 1 WHERE q_id ='.$id);
                
                
$this->load->library('mymail');
                
                
$users $this->db->where('x.q_id',$id)->select('x.*,user.*')->join('user','x.user_id=user.user_id')->get('xref_user_q_subscribe x')->result();
                
                foreach(
$users as $data){
                    if(
$data->user_id != $_SESSION['user']->user_id)
                    
$this->mymail->send('QA','QA',$data->user_email,$data->user_email,'utf-8','utf-8','Новый ответ'
                    
'Появился новый ответ на вопрос <a href="http://'.$_SERVER['HTTP_HOST'].'/view/'.$id.'">'.$q->q_title.'</a>. Для просмотра перейдите по ссылке... <a href="http://'.$_SERVER['HTTP_HOST'].'/view/'.$id.'">http://'.$_SERVER['HTTP_HOST'].'/view/'.$id.'</a>');
                }
                
                
                
                
                
redirect('/view/'.$id);
                
            } 

Последний раз редактировалось 74ivan74; 27.10.2011 в 20:49.. Причина: Добавлено сообщение
 
Старый 27.10.2011, 20:58   #6
а просто текст, введеный в то поле отображает потом?
 
Старый 27.10.2011, 21:18   #7
Текст да, видео тоже, картинки нет

Может в бд mysql нужно таблицу дописать, врятли, ведь под видео не дописывал.
*издец короче, где-то, что-то, не так делаю, может в textarea где ошибка?

Последний раз редактировалось 74ivan74; 27.10.2011 в 21:18.. Причина: Добавлено сообщение
 
Старый 27.10.2011, 21:22   #8
короче надо JS-скрипт ковырять. при сабмите формы скрипт перекидывает содержимое динамического фрейма в textarea. надо искать где он это делает и почему фильтрует при этом ссылку на картинку. может в настройке скрипта выставлено, что ссылки нельзя вставлять?
 
Старый 27.10.2011, 21:33   #9
Странно, ссылки вставлялись...

Получается что код сделаный самим редактором, система не сохраняет, сохраняет только сторонний код (видео) и сам текст.

Последний раз редактировалось 74ivan74; 27.10.2011 в 21:33.. Причина: Добавлено сообщение
 
Старый 27.10.2011, 21:36   #10
не в этом дело. скрипт создает динамический фрейм, в котором происходит редактирование. textarea, которая у тебя в форме - служить только для того, чтобы передать данные по сабмиту. при нажатии на сабмит - скрипт копирует данные из фрейма и производит передачу данных. вопрос только в том, почему он при копировании выкидывает тэг img из потока.
 
Этот пользователь сказал спасибо redreem за это полезное сообщение:
74ivan74 (27.10.2011)
Старый 27.10.2011, 21:36
Закрытая тема


Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с отображением флеша на сайте zmanz Технологии Flash 5 17.07.2011 11:21
Проблема с flash-меню и картинками на сайте -=VIR=- Технологии Flash 8 18.09.2009 22:50
Проблема на сайте Ucoz Gogle HTML, CSS, JavaScript 6 20.07.2009 20:38
Проблема при прохождении уроков, выложенных на этом сайте Криония Технологии Flash 0 03.01.2008 23:03
Проблема с "цветочком" аськи на сайте russian HTML, CSS, JavaScript 3 20.09.2007 09:51


Текущее время: 11:51. Часовой пояс GMT +4.

Реклама на форуме Условия размещения рекламы
Биржа ссылок Заработай на сайте!
Дизайнерский форум