راهنمایی در مورد omdb api

amin704

کاربر عضو
سلام

من از omdb api به این شکل برای فراخوانی اطلاعات فیلم استفاده میکنم :

این قسمت در فانکشن :

function get_imdb($ID){$url=file_get_contents("http://www.omdbapi.com/?i=".$ID."");$details=json_decode($url);$print.="<ul>";$print.="<li><span><b>تاريخ انتشار:</b>".$details->Released."</span></li>";$print.="<li><span><b>ژانر:</b>".$details->Genre."</span></li>";$print.="<li><span><b>کارگردان:</b>".$details->Director."</span></li>";$print.="<li><span><b>نويسنده:</b>".$details->Writer."</span></li>";$print.="<li><span><b>ستارگان:</b>".$details->Actors."</span></li>";$print.="<li><span><b>زمان:</b>".$details->Runtime."</span></li>";$print.="<li><span><b>جوايز:</b>".$details->Awards."</span></li>";$print.="<li><span><b>کشور سازنده:</b>".$details->Country."</span></li>";$print.="<li><span><b>امتياز منتقدين:</b>".$details->Metascore."</span></li>";$print.="<li><span><b>امتياز IMDB:</b>".$details->imdbRating."</span></li>";$print.="<li><span><b>تعداد راي دهندگان:</b>".$details->imdbVotes."</span></li>";$print.="<li><span><b>امتياز منتقدين:</b>".$details->Poster."</span></li>";$print.="</ul>";echo $print; }و با یک زمینه دلخواه به این شکل اطلاعاتو در فایل single.php فراخوانی میکنم، در زمینه دلخواه ای دی فیلم در imdb رو قرار میدم:

<?php $ID = get_post_meta($post->ID, 'M-S-ID',true);if(!empty($ID)){echo get_imdb($ID);} ?>حالا سه تا سوال دارم،

اول اینکه امکانش هست اطلاعات فراخوانی شده به صورت زمینه دلخواه ذخیره بشن؟

دوم اینکه اگه بخوام مثلا فقط ژانر رو در جایی فراخوانی کنم چیکار باید کنم وکد قراخوانی به چه شکله؟

سوال سوم هم از دو پست تایپ با single.php متفاوت استفاده میکنم، امکانش قسمت کارگردان در فراخوانی سریال لحاظ نشه؟ اگر اره به چه شکل؟

 
آخرین ویرایش توسط مدیر:

MahdiY

راهبر انجمن
سلام

من از omdb api به این شکل برای فراخوانی اطلاعات فیلم استفاده میکنم :

حالا سه تا سوال دارم،
اول اینکه امکانش هست اطلاعات فراخوانی شده به صورت زمینه دلخواه ذخیره بشن؟

دوم اینکه اگه بخوام مثلا فقط ژانر رو در جایی فراخوانی کنم چیکار باید کنم وکد قراخوانی به چه شکله؟

سوال سوم هم از دو پست تایپ با single.php متفاوت استفاده میکنم، امکانش قسمت کارگردان در فراخوانی سریال لحاظ نشه؟ اگر اره به چه شکل؟
1 - برای این کار شما می توانید در هنگام ارسال مطلب زمینه دلخواه را ایجاد کنید . یا مثلا در هنگام نمایش مطلب بیاد و چک کنه اگه اطلاعات فیلم نبود بگیره و در زمینه دلخواه ذخیره کنه

2- باید یه ارگومان به تابع بدی که مثلا اگه تابع را با Gener فراخوانی کردی فقط کد $details->Genre رو اجرا کنه

3 - دقیق متوجه نشدم اما خطی که $details->Director داخلشه رو حذف کن

 

amin704

کاربر عضو
سوال اول منو اشتباه متوجه شدید، برای فیلم هایی که اطلاعاتشو در imdb وجود نداره زمینه دلخواه دارم تا دستی اطلاعاتو وارد کنم، منظورم این اطلاعاتی که این فانکشن از omdb api میگیره مثله افزونه imdbi داخل زمینه دلخواه ذخیره بشه تا اگر omdb api از کار افتاد این اطلاعات فراخوانی بشه و در واقع هرچی رشته کردیم پنبه نشه

سوال دوم رو میشه مثال بزنید php من قوی نیست

در مورد سوال سوم دو تا فایل single-tv-series.php و single-movie.php دارم که در داخل هر کدوم این توابع omdb api با استفاده از زمینه دلخواه لود میشه، حالا میخوام برای سریال ها قسمت کارگردان لود نشه و از اونجایی که منبع هر دو فایل سینگل یکی هست و در منبع کارگردان وجود داره، پس نمیتونم حذفش کنم چون از طرفی برای فیلم این قسمت کارگردان واجبه... راهی هست که بشه این قسمتو درست کرد؟ مثلا بر اساس نوع فایل سینگل که مربوط به سریال هست یک استایل display:none; به این قسمت کارگردان داده بشه؟

یا هر راه دیگه ای؟

ممنون از راهنمایی

 

IAMIR

کاربر عضو
پیشنهاد میکنم .

از افزونه رایگان IMDB استفاده کنید .



 

amin704

کاربر عضو
پیشنهاد میکنم .

از افزونه رایگان IMDB استفاده کنید .

افزونه imdbi خیلی بهتر همه کار هارو انجام میده منتها مشکلش اینه که اولا از پست تایپ استفاده میکنم که این افزونه فقط در پست تایپ پیشفرض ورد پرس نمایش داده میشه و در پست تایپ هایی که با افزونه که ساختم وجود نداره، دوما به این صورت کد رو فراخوانی میکنم که در صورتی که یک پست اطلاعات imdb نداشته باشه باز هم "ژانر :" نمایش داده میشه، روش های مختلف رو با راهنمایی دوتستان برای نمایش دادنش امتحان کردم که همشون بی تاثیر بودن

<li><?php _e('Genre : ', 'record'); ?><?php imdbi('Genre'); ?></li><br> 
این درخواست هایی که برای omdb api داشتم درست شدنی نیستن؟

 

IAMIR

کاربر عضو
با یک شرط if قبل از چاپ مشخص کن اگر محتویاتش خالی بود . نمایش ندهد .

 

Tiny

کاربر عضو
قبلا هم به شما گفتم. نسخه بهینه شده وجود دارد به نام wp poster که سایت های فیلم ازش استفاده می کنن.

نصب و راه اندازی هم براتون انجام می دن. آدرس سایتش یادم نیست. تو گوگل سرچ کنید بهش می رسید.

 

amin704

کاربر عضو
قبلا هم به شما گفتم. نسخه بهینه شده وجود دارد به نام wp poster که سایت های فیلم ازش استفاده می کنن.

نصب و راه اندازی هم براتون انجام می دن. آدرس سایتش یادم نیست. تو گوگل سرچ کنید بهش می رسید.
فکر کنم  با کس دیگه ای اشتباه گرفتید، چون اولین باره همچین چیزی میشنوم ... اما خیلی ممنون خیلی وقت پیش دنبال همچین جایی بودم و کلی وقتم هدر رفت ... فقط متوجه نشدم باید حق اشتراک ماهانه پرداخت کرد؟

درضمن اطلاعات به صورت زنده و لحظه ای نیست که اصل دلیلی که omdb api رو انتخاب کردم، اطلاعات لایو هستش وگرنه که دستی هم میتونم اطلاعات رو وارد کنم

 
آخرین ویرایش توسط مدیر:

amin704

کاربر عضو
دوستان راهنمایی کنید

 سوال سوم رو با استفاده از استایل display:none; حل کردم، این دو مورد مونده:

اول اینکه امکانش هست اطلاعات فراخوانی شده به صورت زمینه دلخواه ذخیره بشن؟

دوم اینکه اگه بخوام مثلا فقط ژانر رو در جایی فراخوانی کنم چیکار باید کنم وکد قراخوانی به چه شکله؟

یه مورد دیگه هم اینکه در این قسمت زمان فراخوانی، کلمه imdb میفته اخر و بعد از تابع imdbrating  و متن رو بهم میریزه، راهی نیست که بشه درستش کرد؟ از دایرکشن استفاده کردم و بی تاثیر بود

کد:
$print.="<li> امتياز IMDB : ".$details->imdbRating." / 10";
 
آخرین ویرایش توسط مدیر:

MahdiY

راهبر انجمن
برای فراخوانی یه مورد خاص باید تابع رو بصورت زیر تکمیل کنید

function get_imdb($ID,$i = ""){ $url=file_get_contents("http://www.omdbapi.com/?i=".$ID.""); $details=json_decode($url); $print.="<ul>"; switch($i){ case "Genre": $print.="<li><span><b>ژانر:</b>".$details->Genre."</span></li>"; break; case "Director": $print.="<li><span><b>کارگردان:</b>".$details->Director."</span></li>"; break; . . . default: $print.="<li><span><b>تاريخ انتشار:</b>".$details->Released."</span></li>"; $print.="<li><span><b>ژانر:</b>".$details->Genre."</span></li>"; $print.="<li><span><b>کارگردان:</b>".$details->Director."</span></li>"; $print.="<li><span><b>نويسنده:</b>".$details->Writer."</span></li>"; $print.="<li><span><b>ستارگان:</b>".$details->Actors."</span></li>"; $print.="<li><span><b>زمان:</b>".$details->Runtime."</span></li>"; $print.="<li><span><b>جوايز:</b>".$details->Awards."</span></li>"; $print.="<li><span><b>کشور سازنده:</b>".$details->Country."</span></li>"; $print.="<li><span><b>امتياز منتقدين:</b>".$details->Metascore."</span></li>"; $print.="<li><span><b>امتياز IMDB:</b>".$details->imdbRating."</span></li>"; $print.="<li><span><b>تعداد راي دهندگان:</b>".$details->imdbVotes."</span></li>"; $print.="<li><span><b>امتياز منتقدين:</b>".$details->Poster."</span></li>"; break; } $print.="</ul>"; echo $print; }و به عنوان مثال برای فراخوانی ژانر یه فیلم بصورت زیر عمل می کنید

کد:
get_imdb($ID,"Genre");
 

amin704

کاربر عضو
برای فراخوانی یه مورد خاص باید تابع رو بصورت زیر تکمیل کنید

function get_imdb($ID,$i = ""){ $url=file_get_contents("http://www.omdbapi.com/?i=".$ID.""); $details=json_decode($url); $print.="<ul>"; switch($i){ case "Genre": $print.="<li><span><b>ژانر:</b>".$details->Genre."</span></li>"; break; case "Director": $print.="<li><span><b>کارگردان:</b>".$details->Director."</span></li>"; break; . . . default: $print.="<li><span><b>تاريخ انتشار:</b>".$details->Released."</span></li>"; $print.="<li><span><b>ژانر:</b>".$details->Genre."</span></li>"; $print.="<li><span><b>کارگردان:</b>".$details->Director."</span></li>"; $print.="<li><span><b>نويسنده:</b>".$details->Writer."</span></li>"; $print.="<li><span><b>ستارگان:</b>".$details->Actors."</span></li>"; $print.="<li><span><b>زمان:</b>".$details->Runtime."</span></li>"; $print.="<li><span><b>جوايز:</b>".$details->Awards."</span></li>"; $print.="<li><span><b>کشور سازنده:</b>".$details->Country."</span></li>"; $print.="<li><span><b>امتياز منتقدين:</b>".$details->Metascore."</span></li>"; $print.="<li><span><b>امتياز IMDB:</b>".$details->imdbRating."</span></li>"; $print.="<li><span><b>تعداد راي دهندگان:</b>".$details->imdbVotes."</span></li>"; $print.="<li><span><b>امتياز منتقدين:</b>".$details->Poster."</span></li>"; break; } $print.="</ul>"; echo $print; }و به عنوان مثال برای فراخوانی ژانر یه فیلم بصورت زیر عمل می کنید

get_imdb($ID,"Genre");


یعنی هر تابع رو که نیاز به فراخوانی دارم باید زیر قسمت

switch($i){ قید کنم؟ بعد از قسمت پایینی نباید حذفش کنم؟ یعنی این ژانر رو هم در  قسمت سوییچ و هم در قسمت زیری باید داشته باشم؟

 
آخرین ویرایش توسط مدیر:

MahdiY

راهبر انجمن
بله هر قسمت که نیاز دارید (شایدم همشو) که تنهایی فراخوانی کنید باید این کار را انجام بدید

یه نکته که حالا گفتن نداره اما اون سه خط که نقطه هستند را فراموش نکنید پاک نمایید

قسمت آخر را نباید حذف کنید همونطوری که نوشته شده default: هست و اگه شما چیزی فراخوانی نکردید کلشو نمایش میده (از همین قسمت)

بعلاوه من یه پیشنهاد دیگه دارم که تابع شما یه آرایه برگردونه و با ارایه کار کنید

 

amin704

کاربر عضو
بله هر قسمت که نیاز دارید (شایدم همشو) که تنهایی فراخوانی کنید باید این کار را انجام بدید

یه نکته که حالا گفتن نداره اما اون سه خط که نقطه هستند را فراموش نکنید پاک نمایید

قسمت آخر را نباید حذف کنید همونطوری که نوشته شده default: هست و اگه شما چیزی فراخوانی نکردید کلشو نمایش میده (از همین قسمت)

بعلاوه من یه پیشنهاد دیگه دارم که تابع شما یه آرایه برگردونه و با ارایه کار کنید
خیلی ممنون ، در مورد ارایه ممکنه یه مثال بزنید و بیشتر توضیح بدید

 

MahdiY

راهبر انجمن
اینم یه مثال

function get_imdb($ID){ $url = file_get_contents("http://www.omdbapi.com/?i=".$ID.""); $details = json_decode($url,true); return $details; }کافیه برای یه فیلم بصورت تست خروجی آن را print_r کنید متوجه همه چی میشید

 

amin704

کاربر عضو
اینم یه مثال

function get_imdb($ID){ $url = file_get_contents("http://www.omdbapi.com/?i=".$ID.""); $details = json_decode($url,true); return $details; }کافیه برای یه فیلم بصورت تست خروجی آن را print_r کنید متوجه همه چی میشید
من php ضعیف هستم واقعا، میشه واضح تر بگید... ممنون 

موضوع دیگه اینکه کد رو به این صورت گذاشتم اما مشکل اینه متن ها، در صورت وجود نداشتن اطلاعات، نمایش داده میشن!! قبلا اینطوری نبود

<?php $ID = get_post_meta($post->ID, 'M-S-ID',true);if(!empty($ID)) ?><?php if(get_imdb($ID,"imdbRating") ) { ?><?php get_imdb($ID,"imdbRating");?><?php } ?><?php if(get_imdb($ID,"imdbVotes") ) { ?><?php get_imdb($ID,"imdbVotes");?><?php } ?><?php if(get_imdb($ID,"Metascore") ) { ?><?php get_imdb($ID,"Metascore");?><?php } ?><?php if(get_field('h-Metascore') ) { ?><li><?php _e('Metascore : ', 'record'); ?><?php echo get_field('h-Metascore');?></li><br><?php } ?><?php if(get_imdb($ID,"Released") ) { ?><?php get_imdb($ID,"Released");?><?php } ?><?php if(get_field('h-Released') ) { ?><li><?php _e('Released : ', 'record'); ?><?php echo get_field('h-Released');?></li><br><?php } ?><?php if(get_imdb($ID,"Rated") ) { ?><?php get_imdb($ID,"Country");?><?php } ?><?php if(get_field('h-Country') ) { ?><li><?php _e('Country : ', 'record'); ?><?php echo get_field('h-Country');?></li><br><?php } ?><?php if(get_imdb($ID,"imdbRating") ) { ?><?php get_imdb($ID,"Rated");?><?php } ?><?php if(get_field('h-rated') ) { ?><li><?php _e('reted : ', 'record'); ?><?php echo get_field('h-rated');?></li><br><?php } ?><?php if(get_imdb($ID,"Genre") ) { ?><?php get_imdb($ID,"Genre");?><?php } ?><?php if(get_field('h-Genre') ) { ?><li><?php _e('Genre : ', 'record'); ?><?php echo get_field('h-Genre');?></li><br><?php } ?><?php if(get_imdb($ID,"Writer") ) { ?><?php get_imdb($ID,"Writer");?><?php } ?><?php if(get_field('h-Writer') ) { ?><li><?php _e('Writer : ', 'record'); ?><?php echo get_field('h-Writer');?></li><br><?php } ?><?php if(get_imdb($ID,"Actors") ) { ?><?php get_imdb($ID,"Actors");?><?php } ?><?php if(get_field('h-Stars ') ) { ?><li><?php _e('Stars : ', 'record'); ?><?php echo get_field('h-Stars');?></li><br><?php } ?><?php if(get_imdb($ID,"Runtime") ) { ?><?php get_imdb($ID,"Runtime");?><?php } ?><?php if(get_field('h-Runtime') ) { ?><li><?php _e('Runtime : ', 'record'); ?><?php echo get_field('h-Runtime');?></li><br><?php } ?>متن ها:

  • امتياز : / 10تعداد راي دهندگان :
  • امتياز منتقدين : / 100
  • تاريخ انتشار :
  • درجه سنی :
  • امتياز : / 10
  • ژانر :
  • نويسنده :
  • ستارگان :
  • زمان :
  • جوايز :
 
آخرین ویرایش توسط مدیر:
بالا