• اطلاعیه ها

    • Saeed Fard

      برگزاری چهارمین همایش Coder Conf و کد تخفیف برای کاربران وردپرس پارسی   20/04/97

      کدرکانف هر سال در آخرین پنجشنبه مرداد با بورد‌های مختلفی برگزار می‌گردد،امسال نیز کدرکانف در همین تاریخ با حضور برنامه نویسان مطرح کشور در بورد تخصصی جاوااسکریپت برگزار خواهد شد، یک گردهمایی متفاوت با طعم Javascript. Coderconf هر سال نسبت به سال‌های گذشته با حضور برنامه‌نویسان پر رنگتر می‌شود. ما سعی کردیم هر ساله به این کنفرانس مفهوم عمیق تری ببخشیم تا از آنچه در سال‌های گذشته عرضه شده به روزتر و مفیدتر واقع شویم. امسال فرصتی خواهد بود تا با نگرشی جدید و بهبود مطالب ارائه شده، عمیقتر به این موضوع نگاه کنیم تا بجای تکرار مباحث پیشین گامی هر چند کوچک در مسیر ارتقای دانش فنی برنامه‌نویسان ایرانی برداریم. ما در Coderconf ۴ با تمرکز بر روی Javascript نیت کرده‌ایم این فرصت را در اختیار برنامه نویسان قرار دهیم تا با ظرافت و استانداردهای روز دنیا کار خود را پیش ببرند. به نظر ما امسال زمان آن فرا رسیده‌است تا این زبان را به صورت تخصصی و از ابعاد مختلف به چالش بکشیم.   دبیر علمی همایش میلاد حیدری، کدرکانف ۴ را اینگونه توصیف کرده است :اشتراک گذاری دانش بهترین راه رسیدن به جاودانگی اطلاعات است. هر ساله همایش‌های زیادی برگزار میشه که افراد شرکت‌کننده می‌توانند با افراد مجرب شبکه سازی کنند. امسال در کدرکانف سعی کردیم علاوه بر بخش شبکه سازی بین افراد بیشتر روی انتقال دانش و کیفیت ارائه ها تمرکز داشته باشیم . به قصد یک گردهمایی بلند مدت بین برنامه‌نویسان جاوااسکریپت که با هم تبادل دانش و اطلاعات کنند گردهم آییم.
      بنده به عنوان عضو کوچکی از جامعه برنامه‌نویسان جاوااسکریپت ایران امیدوارم در کدرکانف امسال علاوه بر شبکه سازی، از اطلاعاتی که دوستان در این همایش در اختیارتان قرار می‌دهند استفاده کنید. در سایت همایش میتوانید سخنرانان و موضوع پنل همایش کدرکانف رو مشاهده کنید . علاقه‌مندان به حضور در این همایش می‌توانند با کد تخفیف wpparsi اقدام به ثبت نام در این گردهمایی کنند. سایت همایش :‌http://coderconf.org
      بلیط فروشی همایش :‌https://evand.com/events/coderconf4  
progpars

سوال / نوشتن افزونه

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


add_action('wp_head','link');
function link()
{
echo '<a href="http://www.progpars.com">salam</a>';
}

من به فرض کدی مینویسم برای پلاگین سپس تابع رو در قالبم فراخوانی میکنم :


<?php link(); ?>

اما سوال :

وقتی افزونه رو فعال میکنیم جایی که ما تابع رو فراخوندیم لینک Salam میاد ولی وقتی افزونه رو غیر فعال میکنیم به جای salam با پیغام خطا مواجه میشم میخوام بدونم چه دستوری باید بنویسم در صورت غیر فعال سازی افزونه اخطاری نشون نده یا جاش بنویسه افزونه غیر فعال ...

0

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


لینک به پست
if( function_exists('link') ){ link();}

6

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


لینک به پست

آقا مرتضی کد کلیش به این شکل : ؟


if( function_exists('link') )
{
link();
}
add_action('wp_head','link');
function link()
{
echo '<a href="http://www.progpars.com">salam</a>';
}

آیا قبل از شروع کد نویسی فانکشن شما رو مینویسیم که اگر افزونه غیر فعال بود die شه ...

بعد یه مورد دیگه تو function_exists پارامترش که نام تابعمونه که هیچی محتویات فانکشن چرا باید نام تابع باشه ؟

0

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


لینک به پست

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

4

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


لینک به پست

شما شرط رو نباید داخل افزونه بزارید.

باید وقتی در پوسته میخواد فراخوانی بشه شرط وجودی تابع رو بررسی کنید.

3

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


لینک به پست

بابا داش مرتضی ، وقتی اکشن رو اعمال کرده چه نیازی به فراخوانی اون تابع هست ؟ !

2

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


لینک به پست

درسته رضا جان اکشنش نیازی نداره.

من فقط یادآوری کردم که این تابع داخل خود افزونه کاربردی نداره.

2

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


لینک به پست

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

اگر من نخوام این شرط رو داخل قالب استفاده کنم چی ؟ و فقط <?php link(); ....

ویرایش شده در توسط progpars
0

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


لینک به پست

توی این کدی که دادید که اصلا نیازی به این مورد نیست.

ببینید وقتی در داخل پوسته استفاده نمیشه و افزونه فعال نیست پس اصلا نیازی به چک کردن ندارید.

شاید کد شما چیز دیگه ایی باشه. باید بیشتر توضیح بدید یا کدتون رو بزارید تا بشه بهتر کمک کرد.

0

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


لینک به پست

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

ببینید من فقط میخوام بدونم افزونه هایی مثل صفحه بندی که یک فانکشن میده که باید تو قالب گذاشته بشه . در صورتی که افزونه غیر فعال شد کدی که توی قالب گذاشتیم جاش اروری نده که شما دستور شرطی رو داید برام جا نیوفتاد !

ویرایش شده در توسط progpars
0

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


لینک به پست

بیایید بررسی کنیم وردپرس با افزونه ها در حالت های مختلف چه برخوردی میکنه .

در حالتیکه افزونه غیرفعال هست ، فایل افزونه بعنوان یک فایل متنی فقط برای گرفتن اطلاعات نویسنده و ... خونده میشه .

اما وقتی افزونه رو فعال میکنید یه سری کارها اتفاق می افته مثلاً یک اکشن انجام میشه و در فرآیند فعال بودن افزونه یک اکشن دیگه .

این دستور


add_action('wp_head','link');
function link()
{
echo '<a href="http://www.progpars.com">salam</a>';
}

دقیقاً مثل این میمونه که شما داخل تابع wp_header دستور


echo '<a href="http://www.progpars.com">salam</a>';

رو قرار بدید ، پس دیگه نیازی به فراخوانی تابع نیست توی پوسته یا هر جایی که فکر میکنید .

امیدوارم اینو متوجه شده باشید .

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

شما مثلاً توی افزونه بنویسید .


function sayHi()
{
echo 'Hi i am here !';
}

حالا هر جا خواستید میتونید از تابع sayHi استفاده کنید اما به شرطی که این تابع موجود باشه ، شما این تابع رو توی فایل یک افزونه نوشتید و شرط لازم اینه که برای درست کارکردن این تابع ، اون افزونه موجود و فعال باشه .

حالا اگر اون افزونه غیرفعال شد ، خطای پارسر نبود تابع رو میبینید برای حل این مشکل میبایست قبل از اینکه تابع رو استفاده کنید ، چک کنید آیا وجود داره یا خیر . (همانطور که آقا مرتضی گفتن)


if(function_exists('sayHi'))
{
sayHi();
}

4

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


لینک به پست

اقا رضا مرسی از توضیحاتتون متوجه شدم فقط یک چیز دیگه میخوام بدونم :

من یک فانکشن برای پلاگینم اضافه میکنم :


function name()
{
echo "mahdi";
}

این کد هم که برای پوسته :


<?php
if (function_exists('name')) {
name();
}
?>

حالا چیزی که من میخواستم این بود که این دستور شرطی رو در پوسته استفاده نکنم و به گونه ای یک همچین تابعی در خود پلاگین اجرا بشه و فقط توی پوسته تابع رو معرفی کنم :


<?php name();?>

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

به فرض اکشنی که بر روی تابع wp_header اعمال میشه یعنی:


add_action('wp_head','link');

اگر تابع wp_header در پوسته نباشه چیزی اعمال نمیشه . در کل ارتباطش رو باتوابع متوجه نشدم .

0

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


لینک به پست

ببینید در هر صورت شما دارید تابع رو در پوسته فراخوانی میکنید پس مجبورید همونجا وجودش رو بررسی کنید.

در مورد اکشن هم شما دارید روی یک تابع اصلی وردپرس اعمال می کنید. اینکه در وردپرس باشه یا خیر رو نمیتونید شما بررسی کنید و چون این تابع اصلی وردپرس هست بهرحال این اکشن اجرا میشه.

ارتباطش با افزونه در این هست که شما این کد رو استفاده کردید. میتونید استفاده نکنید. بستگش به کد شما داره.

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

1

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


لینک به پست

پس افزونه ای مثل wp-pagenavi که تابع رو توی پوسته به کار میبره اون به چه شکلی هست دستور شرطیی به کار نبرده در پوسته !

0

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


لینک به پست

منوظرتون این شکلی هست؟

<?php if(function_exists('wp_pagenavi')) { wp_pagenavi(); } ?>

استفاده میشه

2

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


لینک به پست

http://wp-persian.com/plugins/wp-pagenavi/#installation

و :


<?php wp_pagenavi(); ?>

حق باشماست تو این افزونه و راهتمای نصبشم پس باید این تابع رو بگه چون در صورت غیر فعال سازی افزونه خطای پارسر نبودن تابع رو میده

به هر تشکر من فک میکردم امکان این هست که همچین شرطی رو در خود کدهای افزونه به کار برد

0

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


لینک به پست

خب فکر کنم متوجه شدید دیگه که اونم چک میکنه .

اما اگه بخواید کد کوتاهتری بنویسید اینجوری بنویسید .


<?php ! function_exists('sayHi') or sayHi(); ?>

یا از کلک رشتی استفاده کن که البته پیشنهاد نمیکنم .


<?php @sayHi(); ?

2

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


لینک به پست

برای نوشتن کدهای جاوا اسکریپت در فایل افزونه به چه شکل هست ؟ کتابخانه جی کوئری که نیاز نیست پیوست بشه ؟


<script type="text/jscript">
$(document).ready(function(e) {
//dastorat
});
</script>

مثلاً واسه دیتالایف انجین :


echo <<< HTML
<script type="text/jscript">
$(document).ready(function(e) {
//dastorat
});
</script>
HTML;

0

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


لینک به پست

سوال دیگه ای هم که دارم وقتی کوئری میگیریم :


$wpdb->query("SELECT user_login FROM wp_users

تو پیشوند جداول مثلاً wp_jadval اینجا جای wp پیش فرض PREFIX نداره چون شاید پیشوند جداول عوض بشه و دیگه نشه سلکت کرد !

یک همچین چیزی :


$wpdb->query("SELECT user_login FROM ".PREFIX."_users

0

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


لینک به پست

در مورد کدهای جاوااسکریپت :

دوست عزیز وردپرس و دیتالایف جفتشون با php نوشته شدن پس سینتکس پی اچ پی برای جفتشون صادقه ً

برای کوئری ، بله ولی select ها رو با get_result میگیرن نه با query

2

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


لینک به پست

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

در مورد جاوا که تابعی رو پیدا کردم :


wp_enqueue_script(java.js);

در مورد پیشوند جداول هم خواستم بدونم که ثابتش کجا تعریف شده که ببینم با حروف کوچیک هست یا بزرگ !

در مورد کوئری ها هم خواستم بدونم برای مابقی دستورات دیتابیس inserto ,delete,update باید از چه تابعی استفاده کرد .

تشکر بابت راهنماییتون

ویرایش شده در توسط progpars
0

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


لینک به پست
در مورد پیشوند جداول هم خواستم بدونم که ثابتش کجا تعریف شده که ببینم با حروف کوچیک هست یا بزرگ !

$table_prefix

در مورد کوئری ها هم خواستم بدونم برای مابقی دستورات دیتابیس inserto ,delete,update باید از چه تابعی استفاده کرد .


$wpdb->query("UPDATE....
$wpdb->query("Delete from...
$wpdb->query("INSERT INTO....

1

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


لینک به پست

خوب تا به اینجا کد نویسی من به این شکل شد :


function lastuser()
{
global $wpdb;

$tabale = $wpdb->prefix ."users";

$queryuser = $wpdb->get_result("SELECT user_login FROM $tabale WHERE ORDER BY user_login DESC LIMIT 10");

while($row = $wpdb->get_row())
{
echo $row['user_login'];
}
}

تو کوئری فک نمیکنم مشکلی باشه مشکل تو حلقست فک کنم !

تابع get_row !

تو دیتالایف که ما اینجوری مینویسیم وردپرس رو نمیدونم تابعش رو !

مرسی - راهنمایی ؟

0

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


لینک به پست

به جای


while($row = $wpdb->get_row())
{
echo $row['user_login'];
}

بنویس


foreach($queryuser as $row)
{
echo $row->user_login;
}

توی کوئری هم where گذاشتی ، یا یه شرطی بذار یا برش دار .

یه کمی هم تر تمیز کوئری بنویس ;)



SELECT `user_login` FROM `{$table}` WHERE 1=1 ORDER BY `user_login` DESC LIMIT 10

بعدم اون tabale نیست و table :P

2

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


لینک به پست

رضا جان چرا {$table} رو داخل } گذاشتی ؟

0

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


لینک به پست

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

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

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

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


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

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

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


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