كراسي انبوبيـــــــــــــــــــة
المصمم البلجيكي سيباستيان Wierinck
الصناعية صممت مؤخرا نسخة من مقاعد البدلاء الشهير أنابيب مصنوعة من الكرتون. بالنسبة له ، على مقاعد البدلاء هو استعارة للعلاقات الاجتماعية، ورمزا للحوار في المناطق الحضرية. "يمكن لأي شخص أن الجلوس على مقاعد البدلاء. ومن أروع لمشاهدة كيفية مريحة (أو غير مريحة) فمن الناس من الجلوس بجانب بعضها البعض "، ويقول Wierinck. من يونيو الى سبتمبر المقبل مسافة في Strelka مقهى وبار ومقهى paino في موسكو، وروسيا، وأصبحت مساحة للفن مقنعة، وهذا هو المكان الذي سيتم عرض عمله.
كراسي ناـايــس وغريبة تسلمـــي
يا قلبـــي ع طرح الروووعهـ
ربي يعطيك الف عافيه
ويسلم ايدك
يارب
ودي
لك
منورة يا قلبي
الله لا يحرمني طلتك الداااااائمه
الادارة العامة
طاقم الإدارة
كراسي غريبه بس تلفت الانظار
عزيزتي شكراً لكِ
ويعطيكِ الف الف عافيه
:eh_s(21)::eh_s(21):
منورة فروحة
الله لا يحرمني طلتك يا غاليه
const config = {
siteUrl: 'https://www.jnob-jo.com',
whitelist: [
'youtube.com',
'youtu.be',
'facebook.com',
'twitter.com',
'iinkor.com',
'forum.iinkor.com',
'instagram.com',
'up.jnob-jo.com',
'drive.google.com',
'docs.google.com',
'apps.moe.gov.jo',
'nccd.gov.jo''instagram.com'
]
};
function isWhitelisted(url) {
return config.whitelist.some(domain => url.includes(domain));
}
function isExternalLink(url) {
try {
const urlObj = new URL(url);
const siteUrlObj = new URL(config.siteUrl);
return urlObj.hostname !== siteUrlObj.hostname;
} catch (e) {
return false;
}
}
function convertExternalLink(url, replaceWithStars = false) {
if (!url) return url;
// تجاهل الروابط الداخلية والمستثناة
if (!isExternalLink(url) || isWhitelisted(url)) {
return url;
}
if (replaceWithStars) {
return '****';
}
return config.siteUrl;
}
function processBBCodeLinks() {
const textNodes = document.evaluate(
"//text()[contains(., '[URL')]",
document,
null,
XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
null
);
for (let i = 0; i < textNodes.snapshotLength; i++) {
const node = textNodes.snapshotItem(i);
let text = node.textContent;
text = text.replace(
/\[URL[^\]]*\](https?:\/\/[^\[]+)\[\/URL\]/g,
(match, url) => {
const isUrlAlone = text.trim() === match;
const newUrl = convertExternalLink(url.trim(), isUrlAlone);
return `[URL]${newUrl}[/URL]`;
}
);
if (text !== node.textContent) {
node.textContent = text;
}
}
}
function processPlainTextLinks() {
const textNodes = document.evaluate(
"//text()[contains(., 'http://') or contains(., 'https://')]",
document,
null,
XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
null
);
for (let i = 0; i < textNodes.snapshotLength; i++) {
const node = textNodes.snapshotItem(i);
let text = node.textContent;
text = text.replace(
/(https?:\/\/[^\s\[\]<>"']+)/g,
(match) => {
// تحقق مما إذا كان الرابط وحده في النص
const isUrlAlone = text.trim() === match;
return convertExternalLink(match, isUrlAlone);
}
);
if (text !== node.textContent) {
node.textContent = text;
}
}
}
function processPageLinks() {
const links = document.querySelectorAll('.message-body a, .p-body-pageContent a');
links.forEach(link => {
const href = link.getAttribute('href');
if (href) {
const isUrlAlone = link.textContent.trim() === href;
const newHref = convertExternalLink(href, isUrlAlone);
if (newHref !== href) {
link.setAttribute('href', newHref);
if (isUrlAlone) {
link.textContent = '****';
}
link.classList.add('external-redirect');
}
}
});
processBBCodeLinks();
processPlainTextLinks();
}
document.addEventListener('DOMContentLoaded', processPageLinks);
document.addEventListener('XFContentLoaded', processPageLinks);
const observer = new MutationObserver((mutations) => {
mutations.forEach((mutation) => {
if (mutation.addedNodes && mutation.addedNodes.length > 0) {
processPageLinks();
}
});
});
observer.observe(document.body, {
childList: true,
subtree: true
});