تحويل الروابط الى عنوان الرابط

  • بادئ الموضوع بادئ الموضوع Admin
  • تاريخ البدء تاريخ البدء

Admin

مدير شركة انكور التطويرية
طاقم الإدارة
ادارة انكور
بسم الله الرحمن الرحيم



تحويل الروابط الى عنوان الرابط

اقدم لكم كود لتحويل الرابط في الموضوع الى عنوانه لتحسين مظهر المواضيع وهو يساعد في الارشفة والقراءة ايضا حصريا على انكور

طبعا الكود يعمل على جميع النسخ



معاينة عمل الكود :

13212.png


الكود :

لوحة الادارة - عناصر اضافية - اكواد javacsript - انشئ كود جديد - الموقع في المواضيع

العنوان : الي شيء

كود:
// ZONE EDITABLE
const VERSION = "AwesomeBB";
const ENABLE_CACHE = true;
const NO_PERMS_MSG = "No tienes permisos para ver este tema";
// FIN ZONA EDITABLE

const FORUM_URL = window.location.origin;
const NO_PERMS_TITLE = "Informaciones";
const regex = new RegExp(`<a href="(?:${FORUM_URL})?\/t[0-9]-*(?:.*?)">(?:${FORUM_URL})?\/t[0-9]-*(?:.*?)<\/a>`, 'g');
const regexGroups = new RegExp(`<a href="((?:${FORUM_URL})?\/t[0-9]-*(?:.*?))">((?:${FORUM_URL})?\/t[0-9]-*(?:.*?))<\/a>`);
const cache = new Map((ENABLE_CACHE && sessionStorage.posttitles) ? JSON.parse(sessionStorage.posttitles) : "");

$.ajaxPrefilter((options, originalOptions, jqXHR) => {
    if (options.cache) {
        const success = originalOptions.success || $.noop,
            url = originalOptions.url;
        options.cache = false;
        options.beforeSend = () => {
            if (cache.has(url)) {
                success(cache.get(url));
                return false;
            }
            return true;
        };
        options.success = (data, textStatus) => {
            const title = /<title>(.*?)<\/title>/.exec(data)[1];
            cache.set(url, title);
            sessionStorage.posttitles = JSON.stringify([...cache]);
            success(title);
        };
    }
});

document.addEventListener("DOMContentLoaded", () => {
    const posts = document.querySelectorAll(selector(VERSION));
    for (const post of posts) {
        const matches = post.innerHTML.match(regex);
        if (matches === null) continue;
        for (const match of matches) {
            const parts = regexGroups.exec(match);
            const url = parts[1];
            $.ajax({
                url: url,
                async: true,
                cache: ENABLE_CACHE,
                success: (title) => {
                    if (title === _lang.Login || title === NO_PERMS_TITLE) {
                        title = NO_PERMS_MSG;
                    }
                    post.innerHTML = post.innerHTML.replace(parts[0], `<a href=${url}>${title}</a>`);
                }
            });
        }
    }
});

function selector(version) {
    switch (version.toLowerCase()) {
        case "phpbb3":
        case "modernbb":
            return ".postbody > .content > div";
        case "phpbb2":
            return ".postbody > div";
        case "punbb":
            return ".entry-content > div > div";
        case "invision":
            return ".post-entry > div";
        case "awesomebb":
            return ".post-content";
        default:
            throw "REPLACE POST URLs: " + version + " is not a valid version";
    }
}



بالتوفيق للجميع

يرجى ذكر المصدر عند النقل

والسلام ختام​
 

رأيك جزء من المعرفة.

أضف تجربتك أو سؤالك، فالنقاش يكمل الفكرة.

في هذا الموضوع

صاحب النقاش

Admin
Adminمدير شركة انكور التطويرية

معرفة تكبر بالنقاش

وجدت معلومة مفيدة؟ أضف تجربتك أو سؤالك ليساعد النقاش أعضاء آخرين.

أكمل رحلتك

تغيير أيقونة الموضوع بسرعة دون الحاجة إلى تعديل الموضوع أو تحديث الصفحةإضافة زر "حذف سريع" للصور من الصور التي تمت مشاركتها مؤخرًكود عرض المواضيع التفاعلي على احلى منتدى
عودة
أعلى