مجموعات عمل لحصر الإعلانات على الطرق العامة بالمدن الجديدة ,
ترأست المهندسة إيمان نبيل كامل الوكيل الأول لقطاع التطوير وتنمية المدن بهيئة المجتمعات العمرانية الجديدة، اجتماعا موسعا لفرق العمل بالمدن الجديدة المعنية بالحصر المكاني لجميع الإعلانات على الطرق العامة بالمدن الجديدة، بهدف إنشاء قاعدة بيانات جغرافية لهذه الإعلانات، في إطار حرص الهيئة المستمر، نحو التحول الرقمي والحوكمة لتسهيل كافة خدماتها، تنفيذاً لتوجيهات الدكتور عاصم الجزار وزير الإسكان والمرافق. والمجتمعات العمرانية، وفي ضوء المتابعة المستمرة من الدكتور وليد عباس نائب رئيس هيئة المجتمعات العمرانية الجديدة لقطاع التخطيط والمشروعات – المشرف على مكتب وزير الإسكان.
وأوضح وكيل أول الوزارة، أن الهيئة وهيئات المدن الجديدة تعمل على حصر وإدارة كافة الإعلانات على الطرق العامة، من خلال نظام إلكتروني ذكي عبر تطبيق “Arcgis Quick Capture”، وربطها بتطبيق خدمة المواطنين الخاص بالهيئة. وذلك تمهيداً لعرض كافة الإعلانات المتاحة بالمدن الجديدة على الموقع الإلكتروني. مما يحقق الشفافية ويوفر فرصة متساوية لجميع المعلنين للتقدم والحصول على ترخيص إعلان.
function replaceOembeds() {
var allEmbeds = document.getElementsByTagName("OEMBED");
while (allEmbeds.length != 0) {
replaceOembedWithHtml(allEmbeds[0], extractLinkFromOembed(allEmbeds[0]));
allEmbeds = document.getElementsByTagName("OEMBED");
}
runYoutubeLazyLoad();
loadfbApi();
}
function replaceOembedWithHtml(element, sourceData) {
if (sourceData.source.toLowerCase() === "youtube") {
var html="
';
replaceElementWithHtml(element, html);
} else if (sourceData.source.toLowerCase() === "instagram") {
var html="
';
replaceElementWithHtml(element, html);
} else if (sourceData.source.toLowerCase() === "twitter") {
var html="
';
replaceElementWithHtml(element, html);
} else if (sourceData.source.toLowerCase() === "facebook") {
var html="
'
replaceElementWithHtml(element, html);
} else {
replaceElementWithHtml(element, "");
}
}
function extractLinkFromOembed(element) {
return getUrlSource(element.getAttribute("url"));
}
function getUrlSource(url) {
var ytRegex = /http(?:s?):\/\/(?:www\.)?youtu(?:be\.com\/watch\?v=|\.be\/)([\w\-\_]*)(&(amp;)?[\w\?=]*)?/;
var instaRegex = /(https?:\/\/www\.)?instagram\.com(\/p\/(\w+)\/?)/;
var twitterRegex = /twitter\.com\/.*\/status(?:es)?\/([^\/\?]+)/;
var fbRegex = /^https?:\/\/www\.facebook\.com.*\/(video(s)?|watch|story|posts)(\.php?|\/).+$/;
if (ytRegex.test(url)) {
return {
source: "Youtube",
url: url,
id: ytRegex.exec(url)[1]
};
}
if (instaRegex.test(url)) {
return {
source: "Instagram",
url: url,
id: instaRegex.exec(url)[3]
};
}
if (twitterRegex.test(url)) {
return {
source: "Twitter",
url: url,
id: twitterRegex.exec(url)[1]
};
}
if (fbRegex.test(url)) {
return {
source: "Facebook",
url: url,
id: fbRegex.exec(url)[1]
};
}
return {
source: "Unknown",
url: url,
id: ""
};
}
function replaceElementWithHtml(element, html) {
var str = html;
var Obj = element; //any element to be fully replaced
if (Obj.outerHTML) { //if outerHTML is supported
Obj.outerHTML = str; ///it's simple replacement of whole element with contents of str var
} else { //if outerHTML is not supported, there is a weird but crossbrowsered trick
var tmpObj = document.createElement("div");
tmpObj.innerHTML = '';
ObjParent = Obj.parentNode; //Okey, element should be parented
ObjParent.replaceChild(tmpObj, Obj); //here we placing our temporary data instead of our target, so we can find it then and replace it into whatever we want to replace to
ObjParent.innerHTML = ObjParent.innerHTML.replace('
', str);
}
}
function loadfbApi() {
var js = document.createElement('script');
js.src="https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v3.2";
document.body.appendChild(js);
}
function runYoutubeLazyLoad() {
/// youtube lazyload
var youtube = document.querySelectorAll(".youtube");
for (var i = 0; i < youtube.length; i++) { var source = "https://img.youtube.com/vi/" + youtube[i].dataset.embed + "/0.jpg"; var image = new Image(); image.src = "/themes/veto/assets/images/no.jpg"; image.classList.add('lazyload'); image.setAttribute("data-src", source); image.setAttribute("alt", "youtube"); image.addEventListener("load", function () { youtube[i].appendChild(image); }(i)); youtube[i].addEventListener("click", function () { var iframe = document.createElement("iframe"); iframe.setAttribute("frameborder", "0"); iframe.setAttribute("allowfullscreen", ""); iframe.setAttribute("src", "https://www.youtube.com/embed/" + this.dataset .embed + "?rel=0&showinfo=0&autoplay=1"); this.innerHTML = ""; this.appendChild(iframe); }); }; }