أرشيف انكور
(نسخة قابلة للطباعة من الموضوع)
https://archive.iinkor.com/t1557
أنقر هنا لمشاهدة الموضوع بهيئته الأصلية

تحويل الروابط الى عنوان الرابط
Admin 07-04-2021 01:12 مساءً
بسم الله الرحمن الرحيم

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

معاينة عمل الكود :
13212
الكود :
لوحة الادارة - عناصر اضافية - اكواد javacsript - انشئ كود جديد - الموقع في المواضيع
العنوان : الي شيء
CODE
// 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";
    }
}


بالتوفيق للجميع
يرجى ذكر المصدر عند النقل
والسلام ختام
أرشيف انكور

Copyright © 2009-2025 PBBoard® Solutions. All Rights Reserved