مهمان عزیز خوش آمدید. ورود ثبت نام



امتیاز موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5

[-]
کلمات کلیدی
قالب سراسری

قالب سراسری
سلام
من یک قالب سراسری با یک پلاگین ساختم که اسمش MY-BB گذاشتم
حالا میخوام اطلاعات این قالب داخل header با یک متغییر قرار بگیره.
چطوری قالب داخل متغییر قرار بدم و بهش بگم داخل header اون متغییر کپی بشه؟


wildbuzz میگه:
مثلا میخوام این کدم
کد:
<div style="width:100%;height:150px;border:1px #CCC solid;position:fixed;background-color:#black;top:0;">asdsax</div>

داخل
کد:
{$rand}

قرار بگیره.
کد من اینجوریه:
کد:
$rand='<div style="width:100%;height:150px;border:1px #CCC solid;position:fixed;background-color:#black;top:0;">asdsax</div>';

اشتباهه؟؟؟
چون با کد find_replace_templatesets فقط متن داخل $rand کپی میشه. انگار که mybb براش این متغییر تعریف نمیشه فقط داخل php هست. در ضمن نمیدونم چرا الکی
کد:
< و >

آخر کد میندازهHuh
 


Tofighi میگه:
(۲۷ دى ۱۳۹۲، ۰۹:۱۳ ب.ظ)wildbuzz نوشته:  مثلا میخوام این کدم
کد:
<div style="width:100%;height:150px;border:1px #CCC solid;position:fixed;background-color:#black;top:0;">asdsax</div>

داخل
کد:
{$rand}

قرار بگیره.
کد من اینجوریه:
کد:
$rand='<div style="width:100%;height:150px;border:1px #CCC solid;position:fixed;background-color:#black;top:0;">asdsax</div>';

اشتباهه؟؟؟
چون با کد find_replace_templatesets فقط متن داخل $rand کپی میشه. انگار که mybb براش این متغییر تعریف نمیشه فقط داخل php هست. در ضمن نمیدونم چرا الکی
کد:
< و >

آخر کد میندازهHuh
 
وقتی متغیر rand رو تعریف کردی قبلش این رو بزار:
کد:
global $rand;

همچنین کد پلاگین ات رو بزار ببینم تا بتونم بهتر راهنمایی کنم.


دعای خیر برای اعضای گروه مای بی‌بی فارسی را فراموش نکنید!تصویر: http://www.cdn.my-bb.ir/images/smilies-v6/lightbulb.gif

HeartHeart خیلی التماس دعا دارم... دعام کنید لطفا HeartHeart

اگر از گروه مای بی‌بی فارسی راضی هستید، پس لطفا آنرا حمایت کنید: حمایت می‌کنم
wildbuzz میگه:
 
کد پی‌اچ‌پی:
<?php
if( ! defined('IN_MYBB') )
{
    exit(
'MYBB-IR: Direct access is denied.');
}

function 
mybb-ir_info()
{
    return array(
        
'name' => 'پلاگین',
        
'description' => 'یک پلاگین',
        
'version' => '1.0',
        
'compatibility' => '16*',
    );
}

function 
mybb-ir_activate()
{

 require 
MYBB_ROOT."/inc/adminfunctions_templates.php";
    
$rand '<div style="width:100%;height:150px;border:1px #CCC solid;position:fixed;background-color:#black;top:0;">asdsax</div>';

//Template
 
$templatearray = array(
        
'title' => "MAMALI",
        
'template' => $rand,
        
'sid' => "-1"
        
);
    
$db->insert_query("templates"$templatearray);
//******************************
}

function 
mybb-ir_deactivate()
{
    global 
$db;
    
$db->query("DELETE FROM ".TABLE_PREFIX."templates WHERE title='MAMALI'");


سلام
این پلاگین زمانی که فعال میشه یک قالب با اسم MAMALI میسازه و وقتی میخواد غیرفعال بشه اون قالب رو حذف میکنه
میخوام که قالبی که در داخل MAMALI ساخته میشه توسط
کد:
{$rand}

در قالب header قابل دستیابی باشه و وقتی قالب MAMALI تغییر کرد مسلما این فراخوانی هم تغییر کنه. با global هم مشکل حل نشد...
ممنون میشم کمکم کنید.
 
 


Tofighi میگه:
کد پی‌اچ‌پی:
<?php
if( ! defined('IN_MYBB') )
{
    exit(
'MYBB-IR: Direct access is denied.');
}

function 
mybb-ir_info()
{
    return array(
        
'name' => 'پلاگین',
        
'description' => 'یک پلاگین',
        
'version' => '1.0',
        
'compatibility' => '16*',
    );
}

function 
mybb-ir_activate()

    require 
MYBB_ROOT."/inc/adminfunctions_templates.php";
    
$rand '<div style="width:100%;height:150px;border:1px #CCC solid;position:fixed;background-color:#black;top:0;">asdsax</div>';

    
//Template
    
$templatearray = array(
        
'title' => "MAMALI",
        
'template' => $rand,
        
'sid' => "-1"
    
);
    
$db->insert_query("templates"$templatearray);
//******************************
    
find_replace_templatesets("header""#".preg_quote('{$pm_notice}')."#i"'{$pm_notice}{$rand}');
}

function 
mybb-ir_deactivate()
{
    global 
$db;
    
$db->query("DELETE FROM ".TABLE_PREFIX."templates WHERE title='MAMALI'");
    require 
MYBB_ROOT."/inc/adminfunctions_templates.php";
    
find_replace_templatesets("header""#".preg_quote('{$rand}')."#i"''0);
}

$plugins->add_hook("global_start","mybbir_global");

function 
mybbir_global(){
    global 
$mybb$db$templates$rand;
    eval(
"\$rand = \"".$templates->get("MAMALI")."\";");
}

?>
 


دعای خیر برای اعضای گروه مای بی‌بی فارسی را فراموش نکنید!تصویر: http://www.cdn.my-bb.ir/images/smilies-v6/lightbulb.gif

HeartHeart خیلی التماس دعا دارم... دعام کنید لطفا HeartHeart

اگر از گروه مای بی‌بی فارسی راضی هستید، پس لطفا آنرا حمایت کنید: حمایت می‌کنم
wildbuzz میگه:
ممنونHeart
میتونید در این رابطه
کد:
find_replace_templatesets("header", "#".preg_quote('{$pm_notice}')."#i", '{$pm_notice}{$rand}');

توضیح بدید. اون #i چکار میکنه؟
کد:
function mybbir_global(){ global $mybb, $db, $templates, $rand; eval("\$rand = \"".$templates->get("MAMALI")."\";"); }

و همچنین کد بالا...


Tofighi میگه:
(۲۸ دى ۱۳۹۲، ۰۷:۵۴ ب.ظ)wildbuzz نوشته:  ممنونHeart
میتونید در این رابطه
کد:
find_replace_templatesets("header", "#".preg_quote('{$pm_notice}')."#i", '{$pm_notice}{$rand}');

توضیح بدید. اون #i چکار میکنه؟
کد:
function mybbir_global(){ global $mybb, $db, $templates, $rand; eval("\$rand = \"".$templates->get("MAMALI")."\";"); }

و همچنین کد بالا...
کل اول که کلا کارش جایگزینی توی قالب هست.
خوب عملکردش تقریبا اینجوری هست که تک تک قالب‌ها رو کدشون رو باز می کنه و با تابع preg_replace جایگزینی رو توش انجام می ده و توی پایگاه داده بروزرسانی می‌کنه.
خوب اول اگه درباره تابع preg_replace نمی‌دونی یه سرچی بزن توی نت درباره‌اش بخون.
بعد این تابع pattern اش مثلا اگه ali رو باید تبدیل کنه به reza داخل / / , # #i , # #si و ... هست این هم مثل بقیه اونها هست! (خوب بیشتر چیزی می خوای بدونی سرچ کن)

خوب مورد دوم مای‌بی‌بی یه چیزی داره که توی فرایند پلاگین نویسی به کار میاد به نام هوک (hook). خوب این هوک ها در کدهای مای‌بی‌بی در جاهای مختلفی اجرا شدند....
شما می‌خوای یه متغیر تعریف کنی که بتونی توی هدر ازش استفاده کنی دیگه؟
خوب متغیر $header در فایل global.php تعریف شده پس باید دنبال یه هوک قبل از اون یعنی global_start باشی تا از اون استفاده کنی.
خوب هوک ها توی پلاگین اینجوری استفاده می‌شن.
شما اول هوک و بعد تابعی که اجرا بشه رو می‌نویسی، یعنی وقتی توی کدهای مای‌بی‌بی اون هوک اجرا شد این تابع رو اجرا کنه!
خوب من تابع mybbir_global رو تعریف کردم و اون کدها رو توش گذاشتم.
در global متغیرهایی که نیاز دارم استفاده کنم رو می‌زارم و کد بعدیش از تابع eval استفاده شده که کار اصلی تابع این هست که متن داخلش رو اجرا می‌کنه، دلیل استفاده ازش توی اینجا برای این هست که ممکنه در قالب متغیرهایی وجود داشته باشه (قالب با $templates->get('ghaleb') فراخوانی می‌شه) که اون متغیر ها هم تبدیل بشن به مقدارشون. (بیشتر بخوام توضیح بدم گیج تر می‌شی!)


دعای خیر برای اعضای گروه مای بی‌بی فارسی را فراموش نکنید!تصویر: http://www.cdn.my-bb.ir/images/smilies-v6/lightbulb.gif

HeartHeart خیلی التماس دعا دارم... دعام کنید لطفا HeartHeart

اگر از گروه مای بی‌بی فارسی راضی هستید، پس لطفا آنرا حمایت کنید: حمایت می‌کنم


موضوعات مشابه ...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  مشکل در قالب sohrab_mj 6 590 ۲۳ اردیبهشت ۱۳۹۴، ۰۱:۵۳ ب.ظ
آخرین ارسال: sohrab_mj
  افزودن قالب و استفاده از آن با متغیر navids_mh 1 446 ۲۱ فروردین ۱۳۹۴، ۱۰:۱۵ ب.ظ
آخرین ارسال: Tofighi
  مشکل با پلاگین محدود کردن مدیران در قالب مولتی کالر vahid800 6 852 ۱۰ اسفند ۱۳۹۳، ۰۵:۵۰ ب.ظ
آخرین ارسال: vahid800
  قالب متفاوت پست ها amhf 4 888 ۲۲ بهمن ۱۳۹۳، ۰۶:۱۷ ب.ظ
آخرین ارسال: amhf
  راهنمایی برای ویرایش قالب senator_mmd 6 544 ۱۱ بهمن ۱۳۹۳، ۰۴:۱۲ ب.ظ
آخرین ارسال: ERFAN-DESIGN
  مشکل هدر در قالب مهمان reza.t.gh 1 535 ۱۱ شهریور ۱۳۹۳، ۰۲:۴۱ ب.ظ
آخرین ارسال: reza.t.gh
  چندین سوال در رابطه با قالب iman 13 3 742 ۰۸ مرداد ۱۳۹۳، ۱۱:۵۹ ب.ظ
آخرین ارسال: Tofighi
  فوری درمورد وسط چین شدن قالب و پست بیت محمدحسین 2 691 ۰۳ مرداد ۱۳۹۳، ۱۲:۴۷ ب.ظ
آخرین ارسال: محمدحسین
  اسم این قالب؟؟؟ p2m 5 650 ۲۶ تير ۱۳۹۳، ۰۸:۴۷ ب.ظ
آخرین ارسال: Amir-Me
  کادر قالب برای راهنمای آیکون های سایت Masoud_MI 9 1,147 ۲۷ خرداد ۱۳۹۳، ۰۷:۰۷ ب.ظ
آخرین ارسال: arman

پرش به انجمن:


کاربران در حال بازدید این موضوع:

1 مهمان


درباره‌ی ما

گروه پشتیبانی فارسی مای بی بی My-BB.Ir در واپسین روزهای پاییز 1391 کار خود را در زمینه مای بی بی آغاز کرد. این گروه با توکل بر خدای منان و دانش فنی خود در تلاش است فعالیتی هرچند ناچیز در زمینه ارتقا و پشتیبانی مای بی بی انجام دهد.
تمامی حقوق برای وب‌سایت پشتیبانی فارسی مای بی‌بی (My-BB.Ir) محفوظ می‌باشد و هرگونه کپی‌برداری از آن شرعا حرام و قانونا غیرمجاز می‌باشد.
قدرت گرفته از مای بی‌بی - فارسی‌ساز: My-BB.Ir و IORA.Ir