क्या कोई ऐसा करने में सफल रहा है?wmd संपादक को अपलोड उपयोगिता कैसे जोड़ें?
उत्तर
डब्लूएमडी के नियंत्रण कक्ष में एक बटन जोड़ें। italicButton.XShift
my version में, समारोह वर्ग SpritedButtonRow में है और निर्माण कहा जाता है: निम्न स्ट्रिंग के लिए
खोजें जगह है जहाँ बटन जोड़े जा रहे हैं खोजने के लिए।
सेटअप और टेक्स्टऑप विशेषताओं को अनदेखा करें। एक्सशफ्ट सीएसएस स्प्राइट में बटन छवि की स्थिति है जो डब्लूएमडी के साथ आता है, इसके बजाए, बटन को एक वर्ग दें और कक्षा में पृष्ठभूमि छवि निर्दिष्ट करें। फिर बस ईवेंट पर पर क्लिक करें जो आपको करने की आवश्यकता होगी।
लेकिन, मुझे नहीं लगता कि एक अपलोड बटन एक पाठ संपादक के अंदर होना चाहिए, समझ में नहीं आता है।
मैंने अपनी खुद की jquery.dialog विधि के साथ Util.prompt को प्रतिस्थापित करके इसे पूरा किया। प्रॉम्प्ट फ़ंक्शन कॉलबैक के रूप में पैरामीटर लेता है, जिससे ड्रॉप-इन प्रतिस्थापन बनाना आसान हो जाता है।
if (isImage) {
// OLD: util.prompt(imageDialogText, imageDefaultText, makeLinkMarkdown);
// WMD_IMAGE_GALLERY_URL loaded from a global settings elsewhere
util.imageGallery(WMD_IMAGE_GALLERY_URL, makeLinkMarkdown);
}
else {
util.prompt(linkDialogText, linkDefaultText, makeLinkMarkdown);
}
आप रुचि रखते हैं, मैं इसके बारे में एक blog entry लिखा था (चित्रों के साथ!) जो कुछ और नमूना कोड के साथ-साथ समस्याओं/समाधान मैं इस को लागू करने में सामना करना पड़ा से कुछ के रूप में है।
क्या मुझे इसके लिए कोड मिल सकता है ... :) – Moon
मुझे इस सब के लिए कोड देखने में बहुत दिलचस्पी होगी क्योंकि मुझे स्टैक ओवरफ्लो के अनुसार अपलोड को लागू करने की आवश्यकता है। – marcusstarnes
निम्नलिखित हैक को AJAX फ़ाइल अपलोड करने के लिए jQuery, jQuery UI और Mike Alsup's jQuery Form Plugin का उपयोग करने की आवश्यकता है। हैक लिंक किए गए संस्करणों (जेक्यू 1.7.2 और जेQUI 1.8.20) के साथ काम करता है। मैं अन्य संस्करणों के साथ संगतता की गारंटी नहीं दे सकता।
अपने <head>
में, आप निर्भरता को शामिल करने की आवश्यकता होगी:
<script type='text/javascript' src='jquery.min.js'></script>
<link href='theme/jquery-ui.css' rel='stylesheet' type='text/css' />
<script type='text/javascript' src='jquery-ui.js'></script>
<script type='text/javascript' src='wmd/showdown.js'></script>
<script type='text/javascript' src='wmd/wmd.js'></script>
<link type='text/css' rel='stylesheet' href='wmd/wmd.css'/>
<script type='text/javascript' src='jquery.form.js'></script>
हम वास्तव में wmd.js
पर एक बदलाव बनाने की जरूरत है।
वहाँ में पर जाओ और खोज (Ctrl + F) var form = doc.createElement("form");
तुरंत इस लाइन निम्नलिखित के लिए, प्रपत्र एक आईडी असाइन, dialogform करना होगा: form.id = "dialogform";
अब सामने के छोर पर, चलाएँ:
$(document).ready(function(){
$("#wmd-image-button").live("click",function(){
setTimeout(function(){
$(".wmd-prompt-dialog").css({"opacity": "0", display: "none"});
}, 100);
var $div = $("<div>");
var $form = $("<form>").attr({action: "submit_image.php", method: "post"})
var $file = $("<input/>").attr({type: "file", name: "image"});
var $name = $("<input/>").attr({type: "text", name: "name", placeholder: "Name"});
var $submit = $("<input/>").attr("type", "submit");
$form.append($name, $file, $submit).ajaxForm(function(r) {
r = $.parseJSON(r);
if(r.success){
$("#dialogform input[type='text']").val(r.filename);
$("#dialogform input[value='OK']").trigger("click");
$div.dialog("close");
}
});
$div.append($form).dialog({title: "Upload Image"});
});
$("#wmd-link-button").live("click", function(){
setTimeout(function(){
$(".wmd-prompt-dialog").css("opacity", "1");
}, 100);
});
});
याद रखें, पोस्ट jQuery 1.7.2 के लिए लिखा गया था, और live()
के बाद से मान्य नहीं है।आप submit_image.php
में jQuery
और बैकएंड पर, का नवीनतम संस्करण का उपयोग कर रहे हैं on()
करने के लिए स्विच करें:
$f = $_FILES['image'];
$p = $_POST;
$allowedTypes = array(IMAGETYPE_PNG, IMAGETYPE_JPEG, IMAGETYPE_GIF);
$detectedType = exif_imagetype($f['tmp_name']);
if(in_array($detectedType, $allowedTypes)){
$pi = pathinfo($f['name']);
$ext = $pi['extension'];
$target = "img/" . strtolower(str_replace(" ", "-", $p['name'])) . "." . $ext;
if(move_uploaded_file($f['tmp_name'], $target)){
$returnArr = array(
"success" => true,
"filename" => site_url($target)
);
echo json_encode($returnArr);
}
else echo json_encode(array("success" => false));
}
else echo json_encode(array("success" => false, "msg" => "Invalid File Type."));
उम्मीद है कि है कि आप करने के लिए शुरू कर दिया जाएगा। यह कुछ साल पहले लिखा गया था, जब मेरे जावास्क्रिप्ट कौशल उप-बराबर थे! Haha। मेरे पास पहले एक ब्लॉग (जो अब मर चुका है) पर था, चरण-दर-चरण निर्देश और स्पष्टीकरण के साथ; बहुत अनावश्यक fluff। इस लिंक को मेरे ध्यान में लाने के लिए धन्यवाद @Kamiccolo। मुझे इसे पुनर्जीवित करने के लिए रास्ते-बैक-मशीन से परामर्श करना पड़ा।
क्या आप कृपया एक और ऑफ़साइट लिंक छोड़ने के बारे में विस्तार से बता सकते हैं? ध्यान में रखते हुए, वह साइट मृत हो गई। कम से कम इस समय। – Kamiccolo
धन्यवाद @ कैमिककोलो - तय। –
क्या आप थोड़ा और विशिष्ट हो सकते हैं? क्या आप प्री-बिल्ट यूटिलिटी जोड़ने की कोशिश कर रहे हैं या आप अपना खुद का लिखने की कोशिश कर रहे हैं? –
दोनों मेरे लिए यह कर सकते हैं। – Mask
क्या यह डब्लूएमडी के किस संस्करण में महत्वपूर्ण है? –