حوادث وقضايا

انطلاق ورشة كتابة القصة بمكتبة التفوق العلمي ببورسعيد

شهدت مكتبة التفوق العلمي التابعة لفرع ثقافة بورسعيد، ضمن فعاليات الهيئة العامة لقصور الثقافة برئاسة المخرج هشام عطوة، أمس، انطلاق أولى فعاليات ورشة كتابة القصة القصيرة، باستخدام منهجية اللايف كوتشينج، فن إدارة الحياة، وذلك بالتعاون مع صالون الحكاية الثقافي.

بدأت الأديبة منى الجبريني بشرح مفهوم القصة القصيرة، وعناصرها، وخصائصها، موضحة الفرق بينها وبين الرواية، كما أوضحت أهمية الكتابة في حياة الفرد واستخدامها كوسيلة للعلاج النفسي والصحة النفسية، باستخدام أسلوب التدريب، أعقبتها بتنفيذ تمرينات كتابة عملية، أضفت حالة من النقاش الثري بين المشاركين في الورشة.

وتحدثت الكاتبة الشيماء الصلاحي عن منهجية دمج اللايف كوتشينج في ورش تعليم الكتابة والأثر العائد من ذلك، كما أشارت إلى استخدام اللاوعي في الكتابة، وقامت بعمل تمارين نفسية، عن قانون الجذب وتأثيره على مشاعر وأفكار الفرد أعقبتها بتطبيق عملي.

فعاليات الورشة تقدم بالمجان وتقام بإشراف فرع ثقافة بورسعيد برئاسة د. جيهان الملكي، التابع لإقليم القناة وسيناء الثقافي برئاسة محمد نبيل، وتستمر حتى الأربعاء المقبل 12 يوليو الحالي.

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 = "https://www.alwafd.news/themes/alwafd/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); }); }; }