Its overall image quality isn't great, but for the price and light output, it might look good enough.
There are two distinct camps in the cheap projector realm. On one hand are highly portable, battery-powered projectors; we've reviewed a few, but honestly, none are bright enough for a reasonable size screen. The other camp eschews the battery for a brighter image but cuts costs in other ways. This type requires plugging into a wall as a result, but for backyard movie nights, the need to run an extension cord isn't a problem.
Enter Epson's EpiqVision Flex CO-FH02. It's in the second camp, costing around $600 while having the small size and built-in streaming that make impromptu movie-watching easy. What makes the FH02 especially notable is its light output. It is the brightest projector we've ever tested, and we've tested a lot of bright projectors.
", // رابط المقال الحالي (لاستبعاده)
labels: [ // الحصول على تصنيفات المقال الحالي
"",
],
blogUrl: "" // رابط الصفحة الرئيسية للمدونة
};
function displayRelatedPosts(json) {
var container = document.querySelector(relatedPostsConfig.containerSelector);
if (!container) return;
var relatedPostsHTML = "";
var posts = json.feed.entry || [];
var displayedCount = 0;
// إضافة عنوان القسم
relatedPostsHTML += "
" + relatedPostsConfig.widgetTitle + "
";
// إضافة حاوية الشبكة
relatedPostsHTML += "
"; // استخدام كلاس حاوية الشبكة من CSS
for (var i = 0; i < posts.length && displayedCount < relatedPostsConfig.numPosts; i++) {
var post = posts[i];
var postUrl = "";
for (var k = 0; k < post.link.length; k++) {
if (post.link[k].rel == 'alternate') {
postUrl = post.link[k].href;
break;
}
}
// تخطي المقال الحالي
if (!postUrl || postUrl == relatedPostsConfig.currentPostUrl) continue;
var postTitle = post.title.$t;
var postThumbnail = ("media$thumbnail" in post) ? post.media$thumbnail.url : relatedPostsConfig.defaultThumbnail;
// محاولة الحصول على صورة أصغر (72x72 بكسل)
postThumbnail = postThumbnail.replace(/\/s[0-9]+(\-c)?\//, "/s72-c/");
postThumbnail = postThumbnail.replace(/\/w[0-9]+(\-h[0-9]+)?(\-c)?\//, "/s72-c/");
// قص العنوان إذا كان طويلاً
if (postTitle.length > relatedPostsConfig.maxTitleLength) {
postTitle = postTitle.substring(0, relatedPostsConfig.maxTitleLength) + "...";
}
// بناء HTML لكل مقال مرتبط
relatedPostsHTML += "
";
// يمكن إضافة بيانات وصفية أخرى هنا إذا لزم الأمر (مثل التاريخ)
// relatedPostsHTML += "
...
";
relatedPostsHTML += "
"; // close related-post-content
relatedPostsHTML += "
"; // close related-post-item
displayedCount++;
}
relatedPostsHTML += "
"; // close related-posts-container (grid)
// عرض النتائج أو إخفاء القسم
if (displayedCount === 0) {
container.style.display = 'none'; // إخفاء القسم بالكامل إذا لم تكن هناك مقالات ذات صلة
} else {
container.innerHTML = relatedPostsHTML;
}
}
function fetchRelatedPosts() {
var container = document.querySelector(relatedPostsConfig.containerSelector);
if (!container || !relatedPostsConfig.labels || relatedPostsConfig.labels.length === 0) {
if(container) container.style.display = 'none'; // إخفاء القسم إذا لم يكن هناك تصنيفات
return;
}
// جلب المقالات من التصنيف الأول فقط
var label = relatedPostsConfig.labels[0];
var feedUrl = relatedPostsConfig.blogUrl.replace(/\/$/, "") + "/feeds/posts/default/-/" + encodeURIComponent(label) +
"?alt=json-in-script&max-results=" + (relatedPostsConfig.numPosts + 1) + // جلب مقال إضافي للمساعدة في استبعاد المقال الحالي
"&callback=displayRelatedPosts";
// إضافة السكربت لجلب البيانات
var script = document.createElement('script');
script.src = feedUrl;
document.body.appendChild(script);
}
// تشغيل الدالة فقط في صفحات المقالات الفردية وعند وجود تصنيفات
if (relatedPostsConfig.currentPostUrl && relatedPostsConfig.labels && relatedPostsConfig.labels.length > 0) {
fetchRelatedPosts();
} else {
// إخفاء القسم إذا لم نكن في صفحة مقال أو لا توجد تصنيفات
var container = document.querySelector(relatedPostsConfig.containerSelector);
if(container) container.style.display = 'none';
}
//]]>
أضف تعليقاً: