5

मैं सीकेएडिटर का उपयोग कर रहा हूं और मैंने सफलतापूर्वक सामान्य कस्टम छवि ब्राउज़र को कार्यान्वित किया है जो मेरी PHP स्क्रिप्ट को इंगित करता है। हालांकि, यह एक बदसूरत पॉप-अप विंडो में खुलता है। मैं इसे अपने पृष्ठ पर कहीं भी एक div में AJAX के माध्यम से खोलना चाहता हूं, इसलिए यह मेरे सीएमएस के बाकी हिस्सों से बाहर निकलता है और मेल खाता है।सीकेएडिटर कस्टम छवि ब्राउज़र

मुझे ऐसा करने के दो तरीके दिखाई दे रहे हैं;

1) है कि किसी तरह मेरी संवाद बॉक्स खुलता है और पॉप-अप के रूप में ही तरीकों से वापस लौटा देता है करता

2) अन्य साधनों के माध्यम से अपने संवाद खोलें और फिर CKEditor करने के लिए छवि विवरण देंगे CKEditor के लिए एक कस्टम प्लगइन बटन , या तो किसी छवि पर क्लिक करके या शायद इसे संपादक में खींचकर!

अगर किसी ने ऐसा किया है तो कृपया मुझे बताएं।

+0

बस एहसास हुआ कि संपादक को किसी भी ब्राउज़र विंडो से एक चित्र खींचने काम कर देता है .. लेकिन यह नहीं करता है मुझे टैग स्वच्छ तो मेरे सेमी इसकी एक लो जानता है कैल छवि। – DrKHunter

उत्तर

1

छवि टैग प्रतिबंध लगाया है जब आप संपादक के लिए किसी भी ब्राउज़र विंडो से एक चित्र खींचें तो अपने सीएमएस जानता है कि यह एक स्थानीय छवि है के बारे में:

मैं एक समाधान है जो सभी छवि टैग के लिए जाँच करता क्रियान्वित किया है, और अगर यह एक स्थानीय छवि नहीं है, यह छवि को आपके सर्वर पर AJAX अनुरोध और PHP के माध्यम से प्रतिलिपि बनाता है, मुझे आपको इस विकल्प की अनुशंसा करने दें:

सबसे पहले, आपको तुरंत संपादक से सामग्री पोस्ट नहीं करना चाहिए, लेकिन इसे संलग्न करना चाहिए एक अलग छिपे हुए div के लिए ताकि आप जावास्क्रिप्ट के साथ इसका विश्लेषण कर सकें, आइए इस div को "descriptionDropPlace" की आईडी दें

फिर, इस कोड प्रत्येक छवि के URL की जाँच करेगा, और अगर यह आपके स्थानीय डोमेन (यहाँ mydomain) से मेल नहीं खाता, यह एक ajax अनुरोध करेगा:

var images = $('descriptionDropPlaceimg'); 
$("descriptionDropPlace img").each(function(index){ 
    var ajaxDone = false; 
    var src = $(this).attr("src"); 

     var domain = src.match(/^http:\/\/[^/]+/)[0]; 
     if(!domain.match("mydomain")){ 
      $.post('http://'+window.location.hostname+'/phpGetImage.php', { url: src }).done(function(result){ 
       $(images[index]).attr('src', result); 
       var ajaxDone = true; 
      }); 
     } 
}); 

तो phpGetImage.php इस तरह दिखता है (यह पता लगाने के लिए कुछ कोड है कि क्या GET चर हैं और उनमें से छुटकारा पाने के लिए, और यह पता लगाने के लिए कि क्या एक ही नाम की दो छवियां हैं, लेकिन एक अलग निर्देशिका के साथ, और उन्हें पूरे चरित्र के नाम से सहेजने वाले यूआरएल के नाम से बचाया गया है में):

$url = $_POST["url"]; 
    $headers = get_headers($url, 1); 
    if(!empty($headers['Location'])){ 
     $url = $headers['Location']; 
    } 
    $url = explode("?", $url); 
    $url = $url[0]; 
    $replace = array("/", "."); 
    $image = str_replace("http:--", "",str_replace($replace, "-", $url)); 
    $path = './uploads/yourImageDirectory/'.$image; 

    $ch = curl_init($url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    $data = curl_exec($ch); 
    curl_close($ch); 
    file_put_contents($path, $data); 

    echo base_url().'uploads/yourImageDirectory/'.$image; 

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^