رفتن به مطلب

تغییر قالب سایت توسط کاربران


MOEIN

ارسال های توصیه شده

سلام خسته نباشید.

 

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

 

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

 

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

 

امکان چنین کاری هست اصلا یا نه ؟

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

درود.

 

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

<a href="#" data-clicklaunch="changeSkin" data-skinid="ID" style="z-index: 10000;"></a>

پاینده باشید.

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

  • مدیر کل بازنشسته سایت

علاوه بر روشی که @ ذکر کردند که جوابگوی کارتون هست

 

در صورتیکه بخواید لینک بدید و از هرجایی پوسته مورد نظر لود بشه : (چه تو سایتتون چه تو سایت های دیگه)

 

تو روت انجمن یه فایل php ایجاد کنید و کد زیر رو درونش قرار بدید: مثلا اسمشو بذارید themes که در کل میشه themes.php

<?php

define( 'IPS_PUBLIC_SCRIPT', 'index.php' );
define( 'IPB_THIS_SCRIPT', 'public' );
require_once( './initdata.php' );/*noLibHook*/

require_once( IPS_ROOT_PATH . 'sources/base/ipsRegistry.php' );/*noLibHook*/
require_once( IPS_ROOT_PATH . 'sources/base/ipsController.php' );/*noLibHook*/

$reg = ipsRegistry::instance();
$reg->init();

if ( $_GET['id'] )
{
	@header("Location: " . ipsRegistry::$settings['base_url'] . '&settingNewSkin=' . intval( $_GET['id'] ) . '&k=' . $reg->member()->form_hash );
}
else
{
	die("LOL!");
}

exit();

سپس بدین صورت لینک بدید که پوسته ی مور نظر لود میشه: 

http://yoursite.com/themes.php?id=skinid

skinid میشه آی دی پوسته ها.inspect element مروگر رو باز کنی و پوسته ها رو از پایین انجمن انتخاب کنی و کد html شون رو ببینی  id هر پوسته رو بهت نشون میده.
 

موفق باشی

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

شرمنده اقای نظری ولی من یک مشکلی دارم با این کد شما!

 

شما در لاین 13 و 15 از این تابع استفاده کردید

 

if ( $_GET['id'] )

 

ایا این باعث ایجاد باگ rfi نشه احتمالا؟

 
چون منو به شک انداخت!
لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • مدیر کل بازنشسته سایت

سلام.نه مشکلی نداره. این کد مال خود IPS هست. :wink:

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

. intval( $_GET['id'] )

 

ولی فکر کنم باگ باشه این

 

برای پتچ میشه از این تابع استفاده کنیم؟

function intval($input) { 
$input = strip_tags($input); 
$input = htmlspecialchars($input); 
return($input); 

}

 

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

  • مدیر کل بازنشسته سایت

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

باید تست کنم ببینم مشکل امنیتی داره یا خیر.

 

ویرایش: نه باگی که ذکر کردی نداره.

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

  • بنیان گذار IPSFarsi

با سلام :)

 

شما در لاین 13 و 15 از این تابع استفاده کردید

if ( $_GET['id'] )

ایا این باعث ایجاد باگ rfi نشه احتمالا؟

چون منو به شک انداخت!

 

خیر ایجاد نمی کند. اون id کد شناسایی قالب هست که توسط خود سیستم Generate شده. اگر نام فایلی رو به عنوان پارامتر ورودی گرفته بود RFI می شد  !

 

برای اثبات حرفم هم می تونید روی لوکال تست کنید.

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

بایگانی شده

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

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...

اطلاعات مهم

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