ওয়ার্ডপ্রেস মিডিয়া লাইব্রেরির শারীরিক সংগঠন (রিয়েল মিডিয়া লাইব্রেরি প্লাগইন)


22

রিয়েল মিডিয়া লাইব্রেরি ফোল্ডার কাঠামো

ভূমিকা।

উপরের স্ক্রিনশটে আপনি প্রিমিয়াম প্লাগইন রিয়েল মিডিয়া লাইব্রেরি সহ একটি ফোল্ডার কাঠামো দেখতে পাচ্ছেন । এখন আমি একটি এক্সটেনশন প্লাগইন তৈরি করতে চাই যা ফোল্ডার কাঠামোটিকে শারীরিক ফোল্ডারের কাঠামোতে সংগঠিত করতে পারে - আরএমএল কেবল ভিজ্যুয়াল স্ট্রাকচার।

আপডেট # 2 (2017-01-27): উত্তরটি দেখুন!

কটাক্ষপাত আছে ওয়ার্ডপ্রেস মিডিয়া লাইব্রেরি দৈহিক সংস্থা (রিয়াল মিডিয়া লাইব্রেরী প্লাগইন) যেখানে আমি একটি মুক্ত এক্সটেনশন প্লাগইন তৈরি করেছেন।

আপডেট # 1 (2016-12-14): প্রথম সাফল্য: কাস্টম থাম্বনেল আপলোড ফোল্ডার

এখন, আমি আর একটি প্লাগইন তৈরি করেছি রিয়েল থাম্বনেইল জেনারেটর , যা আপনাকে কাস্টম থাম্বনেল আপলোড ফোল্ডার তৈরি করতে দেয়। এই স্ক্রিনশটটি একবার দেখুন:

রিয়েল থাম্বনেইল জেনারেটর আপলোড ফোল্ডার

কাস্টম থাম্বনেল ফোল্ডার কেন? কাস্টম থাম্বনেইল ফোল্ডারগুলি বজায় রাখা সহজ, কারণ এখানে, আমাদের ডাটাবেস আপডেট URL গুলি বজায় রাখার দরকার নেই কারণ থাম্বনেইলগুলি এখনও একই স্থানে রয়েছে (যা এখনও আরএমএল এক্সটেনশন দ্বারা পরিবর্তিত হয়নি)।

আপনি যদি কাস্টম থাম্বনেল জেনারেটর সম্পর্কে আরও জানতে চান, আপনি এই থ্রেডটিতে একবার নজর রাখতে পারেন, যেখানে আমি একটি প্রযুক্তিগত পদ্ধতির ব্যাখ্যা করেছি কাস্টম আপলোড ডিরেক্টরিতে প্রতিটি কাস্টম চিত্রের আকার?

দয়া করে এই থ্রেডটি চালু রাখুন, কারণ 2017 সালের শুরুতে আমি আরএমএল এক্সটেনশনের বিকাশ চালিয়ে যাব যা আরএমএল এবং সার্ভার আপলোড ফোল্ডারের মধ্যে সুসংগতকরণের অনুমতি দেয়। এক্সটেনশনটি রিয়েল থাম্বনেল জেনারেটর প্লাগইনের সাথেও সামঞ্জস্যপূর্ণ, তাই ডাটাবেস আপডেট হওয়া উচিত।

আসল পোস্ট

আমার এক্সটেনশন লক্ষ্য।

এই মুহুর্তে আমি "/ অসংগঠিত" ফোল্ডারে আছি, তার অর্থ এটি ফোল্ডার / ডব্লিউপি-সামগ্রী / আপলোডস /। আমি যখন ফাইলটি (যেমন আপনি স্ক্রিনশটটিতে দেখতে পাচ্ছেন) ফোল্ডারে পিডিএফ / সাবডিরে সরিয়ে নিই তখন ফাইলটি ভিজ্যুয়াল ফোল্ডারে থাকে। এখন আমার এক্সটেনশানটি বিভিন্ন ফোল্ডারটিকে দৈহিক একটিতে সনাক্ত করে এবং একটি সামান্য "বোতাম" দেখায় যা ব্যবহারকারীকে এটি শারীরিকভাবেও স্থানান্তর করতে দেয়:

এটি ফিজিক্স বোতাম

ব্যবহারকারী এখন "ফিজিক্স এটি!" বোতামে ক্লিক করুন এবং ফাইলটি /wp-content/uploads/pdfs/subdir/Another-Doc.pdf এ সরানো উচিত । আমি ইতিমধ্যে সরানোর প্রক্রিয়াটি তৈরি করেছি: আমি এই সংযুক্তির জন্য সমস্ত মিডিয়া ফাইলগুলি (চিত্রগুলির জন্য অন্তর্ভুক্ত থাম্বনেইলস) পড়েছি এবং ডাব্লুপি ফাংশন ডাব্লুপিএমপিডির_পি () এর সাথে পিএইচপি ফাংশনটির পুনর্নবীকরণ ($ old_file, $ new_file) ব্যবহার করিমধ্যে GUID wp_posts টেবিল এবং মেটা ডেটা wp_postmeta পরিবর্তন করা হয়, খুব। সমস্ত ফাইল সরানো হলে, আমি অ্যাকশনটি কল করি:

<?php
do_action('RML/Physix/Moved', $meta, $id);
// $meta = Infos about the move process, see above screenshot
// $id = The attachment ID
?>

ta মেটা একটি অ্যারে:

এখানে চিত্র বর্ণনা লিখুন

কী "পুনর্নামকরণ" এ সমস্ত পুনর্নবীকরণ প্রক্রিয়া থাকে (উদাহরণস্বরূপ এখানে চিত্রগুলির জন্য থাম্বনেইল ফাইল হতে পারে)।

সমস্যা: গ্যারান্টি প্লাগইন সামঞ্জস্য।

ওয়ার্ডপ্রেস মিডিয়া লাইব্রেরির মূল সমস্যা (যদি তা হয়) হ'ল, অনেক প্লাগইন সংযুক্তি আইডির পরিবর্তে পুরো ইউআরএল সহ চিত্রগুলির রেফারেন্সগুলি সংরক্ষণ করে। তার অর্থ, কলামগুলির সাথে মাইএসকিউএল টেবিল রয়েছে যা প্রদত্ত ফাইলে একটি URL রয়েছে। আমি কীভাবে গ্যারান্টি দিতে পারি যে সমস্ত উল্লেখগুলি শারীরিক ফোল্ডারগুলির সাথে আপ টু ডেট আছে ? আমি মনে করি এটি অসম্ভব।

একটি সম্ভাব্য পন্থা।

আমি অ্যাকশনে প্রবেশ করি এবং এসকিউএল-এ পুনরাবৃত্তির পুনঃস্থাপন-বিবৃতি সহ ডাব্লুপি_পোস্ট-> পোস্ট_কন্টেন্টের মতো স্ট্যান্ডার্ড টেবিলগুলি আপডেট করি ।

<?php    
/**
 * When a attachment is moved.
 * 
 * @hooked RML/Physix/Moved
 */
function physix_moved($meta, $id) {
    $rename = $meta["rename"];

    // Prepare array for recursive REPLACE
    $arr = array();
    foreach ($rename as $value) {
        $arr[] = array($value["old_url"], $value["new_url"]);
    }
    $rec = $this->recReplace($arr, "post_content"); // function is already finished
}
?>

$ রেক ভেরিয়েবল এখন একটি প্রতিস্থাপন-বিবৃতি:

REPLACE(post_content, 'https://example.io/wp-content/uploads/Another-Doc.pdf', 'https://example.io/wp-content/uploads/pdfs/subdir/Another-Doc.pdf')

যাইহোক: সমস্ত থাম্বনেইল ফাইল সহ একটি চিত্রের জন্য (साक्षीচিহ্ন.জেপিজি) এটি দেখতে এটি দেখতে পারেন:

REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(post_content, 'https://example.io/wp-content/uploads/testimage-750x350.jpg', 'https://example.io/wp-content/uploads/pdfs/subdir/testimage-750x350.jpg'), 'https://example.io/wp-content/uploads/testimage-1170x855.jpg', 'https://example.io/wp-content/uploads/pdfs/subdir/testimage-1170x855.jpg'), 'https://example.io/wp-content/uploads/testimage-256x187.jpg', 'https://example.io/wp-content/uploads/pdfs/subdir/testimage-256x187.jpg'), 'https://example.io/wp-content/uploads/testimage-1024x748.jpg', 'https://example.io/wp-content/uploads/pdfs/subdir/testimage-1024x748.jpg'), 'https://example.io/wp-content/uploads/testimage-300x219.jpg', 'https://example.io/wp-content/uploads/pdfs/subdir/testimage-300x219.jpg'), 'https://example.io/wp-content/uploads/testimage-150x150.jpg', 'https://example.io/wp-content/uploads/pdfs/subdir/testimage-150x150.jpg'), 'https://example.io/wp-content/uploads/testimage.jpg', 'https://example.io/wp-content/uploads/pdfs/subdir/testimage.jpg')

তবে কি হবে, যদি এটি ডাটাবেস সারণীতে ক্রমিকযুক্ত স্ট্রিং (জেএসএন) হয়? তাই দেখে মনে হচ্ছে { "image": "http:\/\/example.io\/wp-content\/uploads\/Another-Doc.pdf" }। প্রতিস্থাপন-বিবৃতিতে আমার কী যুক্ত করতে হবে?

প্রতিস্থাপন-বিবৃতি এখন সমস্ত মাইএসকিউএল টেবিলের সাহায্যে ব্যবহার করা যেতে পারে যার মধ্যে চিত্রের URL রয়েছে s আমি একটি ফিল্টার অ্যারে তৈরি করার কথা ভেবেছিলাম যেখানে প্লাগইনগুলি তাদের টেবিলগুলি যুক্ত করতে পারে এবং আমার এক্সটেনশানটি বাকীটি করতে পারে:

<?php
$tables = apply_filters("RML/Physix/Moved/Tables", array( // TODO: use $wpdb->prefix
    "wp_posts" => array("post_excerpt", "post_content"),
    "wp_postmeta" => array("meta_value")
    //...
));
?>

"সরানো" লগ

আমি একটি "লগ" তৈরি করতে চাই যেখানে ব্যবহারকারীরা চালগুলি পূর্বাবস্থায় ফিরিয়ে আনতে পারে। কোনও ব্যবহারকারী যদি দেখেন যে কোনও চিত্র ভাঙা হয়েছে (উদাহরণস্বরূপ স্লাইডার রেভোলিউশন প্লাগইনে), তিনি মূল ফোল্ডারে সরানোটিকে পূর্বাবস্থায় ফিরিয়ে আনতে পারেন।

আপনি এই ধারণা সম্পর্কে কি মনে করেন? এর চেয়ে ভাল সমাধান কি আছে? আমি আশা করি আমি সুন্দরভাবে সমস্ত ব্যাখ্যা করেছি!


9
আপনি ফোল্ডার কাঠামো অন্তর্নিহিত সংযুক্তিগুলি বোঝার জন্য নয়, প্রচুর ক্ষেত্রে কিছুই নেই (সম্ভবত ফাইলগুলি সার্ভারে নেই? এস 3 এডাব্লুএস সিডিএন ইত্যাদি), সংযুক্তি পোস্টগুলিতে ওয়ার্ডপ্রেস ডিল করে, সংযুক্তি ফাইলগুলি নয়, এবং এগুলিকে একটি সার্ভারে ঘুরিয়ে দেওয়া বিপরীত is আপনি কাস্টম ট্যাক্সনমি এবং পুনর্লিখনের নিয়মগুলি দিয়ে পুনর্নির্মাণের মাধ্যমে এটি আরও ভাল করছেন
টম জে নওয়েল

5
যদিও এটি স্পষ্টতা / গুণমানের (শ্রমের জন্য +1) দিক থেকে একটি দুর্দান্ত প্রশ্ন, শেষ পর্যন্ত আমরা এখানে একটি তৃতীয় পক্ষের প্লাগইন নিয়ে কাজ করছি, যা অফ-টপিক হিসাবে বিবেচিত - আমি মনে করি না যে কেউ সক্ষম হতে সক্ষম হবে আরএমএলে গুরুতরভাবে বিনিয়োগ না করে "দ্রুত" আপনাকে সহায়তা করুন।
TheDeadMedic

@ দ্য ডেডমিডিক হ্যাঁ এটি সত্য। তবে আমি প্রশ্নটি জিজ্ঞাসা করেছিলাম যে আপনি কীভাবে এটি জানেন যে এটি আরএমএলের ক্রিয়াগুলির সাথে কীভাবে কাজ করে। এই প্রশ্নটি আরএমএল নির্দিষ্ট নয়, এটি আরও ডেটাবেস নির্দিষ্ট - ইউআরএল প্রতিস্থাপনের মাধ্যমে কীভাবে সমস্যাটি সমাধান করবেন।
ম্যাথিয়াস গন্তার

2
এবং প্রয়াসের জন্য আরও একটি +1 - আশা করি আমাদের কাছে এরকম আরও প্রশ্ন থাকুক ... যেমন আমাদের প্রথম দিনগুলিতে ছিল। যাইহোক, মূল সমস্যাগুলি উপরে বর্ণিত। আপনার বক্তব্যটি বোঝানোর জন্য : আপনি কি দয়া করে একটি সম্পাদনা ফাইল করতে পারেন এবং আপনি যা চেষ্টা করছেন তার যুক্তি ব্যাখ্যা করতে পারেন? এখনও পর্যন্ত এই ফাইল সিস্টেমের কাজগুলি করার কোনও মানে হয় না।
কায়সার

আপনি এই @ ম্যাথিয়াসগনটার দিয়ে কীভাবে চলেছেন? আপনি কি কোনও সমাধান খুঁজে বের করতে পেরেছেন?
টিম ম্যালোন

উত্তর:


1

বিনামূল্যে সমাধান এক্সটেনশান "শারীরিক কাস্টম আপলোড ফোল্ডার"

অনেক দিন আগে আমি এই থ্রেডটি খুলতে শুরু করেছি এবং এখন রিয়েল মিডিয়া লাইব্রেরির জন্য একটি ব্যবহারযোগ্য এক্সটেনশন প্লাগইন রয়েছে যা আপনাকে শারীরিকভাবে আপনার আপলোড ফোল্ডার পরিচালনা করতে দেয় ।

এখানে চিত্র বর্ণনা লিখুন

এই প্লাগইনটি দেখুন: https://wordpress.org/plugins/physical-custom-upload-folder/

আপনি কি ডাব্লুপি-সামগ্রী / আপলোড ফোল্ডারটি জানেন? সেখানে ফাইলগুলি বছর / মাস ভিত্তিক ফোল্ডারে সংরক্ষণ করা হয়। এটি একটি জটিল ও ভর প্রক্রিয়া হতে পারে, বিশেষত যখন আপনি ফাইলজিলার মতো এফটিপি ক্লায়েন্টের সাথে কাজ করছেন।

ইতিমধ্যে আপলোড করা ফাইলগুলি সরানো: এই প্লাগইনটি আপনি যখন রিয়েল মিডিয়া লাইব্রেরিতে কোনও ফাইল সরিয়ে রাখেন তখন ফাইলগুলি শারীরিকভাবে স্থানান্তর করতে দেয় না কারণ ওয়ার্ডপ্রেস ইউআরএল বিভিন্ন জায়গায় ব্যবহার করে। এ জাতীয় প্রক্রিয়া বজায় রাখা খুব কঠিন is সুতরাং এটি কেবলমাত্র নতুন আপলোডগুলির জন্য কাজ করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.