dark master

مشکل با نحوه نمایش ندادن اطلاعات imdbi

11 پست در این موضوع قرار دارد

سلام

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


<ul class="imdb-info">
<?php if( imdbi('imdbVotes') ) { ?><li><?php _e('Imdb Rating : ', ''); ?><?php imdbi('imdbRating'); ?>/10 <?php } ?><?php if( imdbi('imdbVotes') ) { ?><?php _e(' from ', 'record'); ?><span class="imdbVotes"><?php imdbi('imdbVotes'); ?></span></li><br><?php } ?>
<li><?php if( imdbi('Metascore') ) { ?><?php _e('Metascore : ', ''); ?><?php imdbi('Metascore'); ?>/100<br><?php } ?></li>
<li><?php if( imdbi('Released') ) { ?><?php _e('Released : ', ''); ?><?php imdbi('Released'); ?><br><?php } ?></li>
<li><?php if( imdbi('Genre') ) { ?><?php _e('Genre : ', ''); ?><?php imdbi('Genre'); ?><br><?php } ?></li>
<li><?php if( imdbi('Director') ) { ?><?php _e('Director(s) : ', ''); ?><?php imdbi('Director'); ?><br><?php } ?></li>
<li><?php if( imdbi('Writer') ) { ?><?php _e('Writer(s) : ', ''); ?><?php imdbi('Writer'); ?><br><?php } ?></li>
<li><?php if( imdbi('Stars') ) { ?><li style="line-height: 16px;"><?php _e('Stars : ', ''); ?><?php imdbi('Actors'); ?><br><?php } ?></li>
<li><?php if( imdbi('Runtime') ) { ?><?php _e('Runtime : ', ''); ?><?php imdbi('Runtime'); ?><br><?php } ?></li>
<li><?php if( imdbi('Country') ) { ?><?php _e('Country : ', ''); ?><?php imdbi('Country'); ?><br><?php } ?></li>
<li><?php if(get_field('encoder') ) { ?><?php _e('Encoder : ', ''); ?><?php echo get_field('Encoder');?><br><?php } ?></li>
<li style="line-height: 16px;"><?php if( imdbi('Awards') ) { ?><?php _e('Awards : ', ''); ?><?php imdbi('Awards'); ?><br><?php } ?></li>
<li><?php if(get_field('plot') ) { ?><?php _e('Plot : ', ''); ?><?php echo get_field('plot');?><br><?php } ?></li>
<li><?php if(get_field('add_info') ) { ?><?php echo get_field('add_info');?><br><?php } ?></li>
</ul>
<div class="clear"></div>
</div>

0

به اشتراک گذاری این پست


لینک به پست

دوست عزیز چون فانکشن مقدار بازگشتی را echo می‌کند و استفاده از if برای این مورد کارساز نیست؛ درباره این مورد شما می‌تونید با نویسنده افزونه تماس بگیرید یا از Output Buffer استفاده کنید.

موفق باشید.

1

به اشتراک گذاری این پست


لینک به پست
دوست عزیز چون فانکشن مقدار بازگشتی را echo می‌کند و استفاده از if برای این مورد کارساز نیست؛ درباره این مورد شما می‌تونید با نویسنده افزونه تماس بگیرید یا از Output Buffer استفاده کنید. موفق باشید.

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

0

به اشتراک گذاری این پست


لینک به پست

ارسال شده در (ویرایش شده)

سلام

چک کن اول ببین خروجی تابع هایی مثلا

imdbi('Genre')

چیه. اگه خروجی یک کاراکتر خالی یا ' ' نباشه و null یا '' باشه ... میتونی به جای اون دستور if که فقط تابع رو گذاشتی جاش، از تابع empty استفاده کنی که اگه خالی نبود، نمایش بده ! که در صورتی که خالی باشه نمایش نمیده ... اینطوری:

if ( !empty ( imdbi ( 'Genre' ) ) ) { ..... }

حالا اینو خودت تعمیم بده به بقیه if هایی که گذاشتی !

امیدوارم حل کنه مشکلتو دوست عزیز...

.

ویرایش برای مدیران عزیز انجمن:

ادیتور چرا اینکارارو میکنه :


imdbi('Genre')

وقتی کد میزارم !!!!

با کلید های کیبورد هم که زمان نوشتن کمک میکنند نمیشه راحت کار کرد توی ادیتور ...

ویرایش شده در توسط Morteza
1

به اشتراک گذاری این پست


لینک به پست

سلام

چک کن اول ببین خروجی تابع هایی مثلا

imdbi('Genre')

چیه. اگه خروجی یک کاراکتر خالی یا ' ' نباشه و null یا '' باشه ... میتونی به جای اون دستور if که فقط تابع رو گذاشتی جاش، از تابع empty استفاده کنی که اگه خالی نبود، نمایش بده ! که در صورتی که خالی باشه نمایش نمیده ... اینطوری:

if ( !empty ( imdbi ( 'Genre' ) ) ) { ..... }

حالا اینو خودت تعمیم بده به بقیه if هایی که گذاشتی !

امیدوارم حل کنه مشکلتو دوست عزیز...

.

ویرایش برای مدیران عزیز انجمن:

ادیتور چرا اینکارارو میکنه :


imdbi('Genre')[/background][/size][/color]
[color=#282828][size=2][background=rgb(248, 248, 248)]

وقتی کد میزارم !!!!

با کلید های کیبورد هم که زمان نوشتن کمک میکنند نمیشه راحت کار کرد توی ادیتور ...

این کد نویسی که شما گفتید هم امتحان کرده بودم و بی تاثیر بود

0

به اشتراک گذاری این پست


لینک به پست

اول این کد رو بزارید توی functions.php:


function parsi_buffer_saver( $func, $param ) {
ob_start();
$func( $param );
return ob_get_clean();
}

کد رو بهتر به آخر فایا اضافه کنید.

سپس، در قسمتی که اطلاعات رو فراخوانی می‌کنید، به جای شیوه قبلی، به این صورت فراخوانی کنید، مثلاً برای ژانر:


$genre = parsi_buffer_saver( 'imdbi', 'Genre' );
echo ( $genre ) ? $genre : '-';

به این صورت اگه ژانری برای فیلم نباشه، - نمایش داده میشه.

اگه مشکلتون حل نشد، کاری که کردید را بنویسید تا مشکل رو با هم حل کنیم.

موفق باشید.

1

به اشتراک گذاری این پست


لینک به پست

ارسال شده در (ویرایش شده)

اول این کد رو بزارید توی functions.php:


function parsi_buffer_saver( $func, $param ) {
ob_start();
$func( $param );
return ob_get_clean();
}

کد رو بهتر به آخر فایا اضافه کنید.

سپس، در قسمتی که اطلاعات رو فراخوانی می‌کنید، به جای شیوه قبلی، به این صورت فراخوانی کنید، مثلاً برای ژانر:


$genre = parsi_buffer_saver( 'imdbi', 'Genre' );
echo ( $genre ) ? $genre : '-';

به این صورت اگه ژانری برای فیلم نباشه، - نمایش داده میشه.

اگه مشکلتون حل نشد، کاری که کردید را بنویسید تا مشکل رو با هم حل کنیم.

موفق باشید.

راستی قصد دارم از زمینه دلخ.اه هم کنر این کد برای فیلم هایی که اطلاعات imdb ندارن استفادهکنم، مشکلی پیش نمیاد؟

ممنون امتحان یکنم حالا نمیشه کاری کرد که متن استایل display:none بگیره؟

ویرایش شده در توسط dark master
0

به اشتراک گذاری این پست


لینک به پست

مثال:


$genre = parsi_buffer_saver( 'imdbi', 'Genre' );
if ( $genre )
echo $genre;

در صورتی که ژانر نباشه، کلاً نوشته ای در کار نخواهد بود.

موفق باشید.

2

به اشتراک گذاری این پست


لینک به پست

مثال:


$genre = parsi_buffer_saver( 'imdbi', 'Genre' );
if ( $genre )
echo $genre;

در صورتی که ژانر نباشه، کلاً نوشته ای در کار نخواهد بود.

موفق باشید.

خیلی ممنون

فقط این کد رو کجا بزارم؟ به کدای قبلی احتیاج هست؟ بازم ممنون

0

به اشتراک گذاری این پست


لینک به پست

up

اقا میشه یه نمثال از نحوه گذاشتن کد دومی بدید؟ کد رو چطوری باید بزارم که اگه خالی بود ، متن قبلش نمایش داده نشه؟

0

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری