• اطلاعیه ها

    • Morteza

      باهم بسازیم: اطلس ووکامرس و وردپرس   14/07/96

      تاپیک ایجاد شده برای بحث در جهت ایجاد یک منبع، ویکی، صفحات توضیحی و یا بخش آموزشی جامع برای وردپرس و متعلقات مختلف آن است. لطفا جهت مشارکت در این بحث، ارائه پیشنهاد و یا انتقاد به تاپیک فوق مراجعه کنید. باهم بسازیم: اطلس ووکامرس و وردپرس
hcp90

انتخاب رنگ در ابزارک ها | پیشرفته

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

سلام دوستان

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

c4yc_unfghtitled-1.png

این هم کدش :

<div class="col-lg-3 col-md-3 col-sm-12 col-xs-12">
<li><div class="head head_yellow"><i class="fa fa-newspaper-o"></i><span>اجتماعی</span></div>
<img src="images/topfoter_25.png" />
<h5>اتاق خبر گزارش میدهد</h5>
<H3></H3>
<span class="date_cp">13 فروردین 1395</span><span class="comment_cp"><i class="fa fa-paper-plane"></i>7 دیدگاه</span><br />
<p></p>
</li>
</div>

من با یک کلاس head و یک کلاس head_color سربرگ این ابزار رو کدنویسی کردم. یعنی مثلا به head_yellow توی css یک بک گراند دادم و همینطور به همین صورت به رنگ های دیگر. حالا میخوام توی قسمت تنظیمات این ابزارک، یک تنظیماتی باشه که بشه رنگ رو انتخاب کرد و بر اساس اون رنگ، بک گراند مورد نظر انتخاب بشه.

مثلا من رنگ زرد رو در ابزارک انتخاب کردم. حالا باید بیاد و head_yellow رو بخونه. یا مثلا اگه آبی رو انتخاب کردم باید head_blue رو بخونه. من خودم خیلی در این زمینه ها حرفه ای نیستم . اگر میشه من رو راهنمایی کنید

ممنون

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

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


لینک به پست

سلام

ابزارک هست ؟! قالب رو از جایی گرفتین یا طراحی اختصاصی هست !؟

اگه اختصاصی هست بهتره به طراح قالب بدین این قسمت رو اضافه کنه .

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

0

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


لینک به پست
در 2 ساعت قبل، alitna گفته است :

سلام

ابزارک هست ؟! قالب رو از جایی گرفتین یا طراحی اختصاصی هست !؟

اگه اختصاصی هست بهتره به طراح قالب بدین این قسمت رو اضافه کنه .

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

سلام

این یک ابزارک هست و طراحی خودم هم هست

0

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


لینک به پست

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

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

مثلا اگه red وارد شد ، استایل head_red رو اجرا کنه .

0

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


لینک به پست
در 11 ساعت قبل، alitna گفته است :

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

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

مثلا اگه red وارد شد ، استایل head_red رو اجرا کنه .

فقط لطفا این کد رو نگاه کنید . ( ابزارک )

	<?php

// Creating the widget 
class catbox_widget extends WP_Widget {

    function __construct() {
        parent::__construct(
                // Base ID of your widget
                'catbox_widget',
                // Widget name will appear in UI
                __('ابزارک جعبه دسته ( بالای فوتر )', 'news'),
                // Widget description
                array('description' => __('', 'news'),)
        );
    }

    // Creating widget front-end
    // This is where the action happens
    public function widget($args, $instance) {

        $title = apply_filters('widget_title', $instance['title']);
        $color = apply_filters('color', $instance['color']);
        
        // before and after widget arguments are defined by themes
        echo $args['before_widget'];

?>

<div class="col-lg-3 col-md-3 col-sm-12 col-xs-12">
<li><div class="head head_<?php echo $color; ?>"><i class="fa fa-newspaper-o"></i><span>
            <?php
               if (!empty($title))
            echo $args['before_title'] . $title . $args['after_title'];
?> 
</span></div>
<?php the_post_thumbnail(''); ?>
<h5>اتاق خبر گزارش ميدهد</h5>
<H3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></H3>
<span class="date_cp">13 فروردين 1395</span><span class="comment_cp"><i class="fa fa-paper-plane"></i><?php comments_popup_link('بدون نظر', 'يك نظر', '% نظر'); ?></span><br />
<p></p>
</li>
</div>
			<?php
        echo $args['after_widget'];
    }

    // Widget Backend 
    public function form($instance) {

        if (isset($instance['title'])) {
            $title = $instance['title'];
        } else {
            $title = __('New title', 'wpb_widget_domain');
        }
        $color=isset($instance['color'])?intval($instance['color']):8;
        // Widget admin form
        ?>
        <p>
            <label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title:'); ?></label> 
            <input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo esc_attr($title); ?>" />
        </p>
        <p>
            <label for="<?php echo $this->get_field_id('color'); ?>"><?php _e('Color :'); ?></label> 
            <input class="widefat" id="<?php echo $this->get_field_id('color'); ?>" name="<?php echo $this->get_field_name('color'); ?>" type="text" value="<?php echo esc_attr($color); ?>" />
        </p>

        <?php
    }

    // Updating widget replacing old instances with new
    public function update($new_instance, $old_instance) {
        $instance = array();
        $instance['title'] = (!empty($new_instance['title']) ) ? strip_tags($new_instance['title']) : '';
        $instance['color'] = (!empty($new_instance['color']) ) ? strip_tags($new_instance['color']) : '';
                
        return $instance;
    }

}

// Class wpb_widget ends here
// Register and load the widget
function catbox_widget_widget() {

    register_widget('catbox_widget');
}

add_action('widgets_init', 'catbox_widget_widget');

من وقتی ابزارک رو ذخیره میکنم، اون مقدار color، صفر میشه ولی اعمال میشه. یعنی اگر صفحه رو ریست کنم باز همون مقداری که وارد کردم نمایش داده میشه. اگر اون مقدار رو سیو کنم در ظاهر توی اون input، صفر میشه ولی اگر صفحه رو ریست کنم همون مقدار قبلی میاد. حالا چرا 0 میشه. شما اشکالی توی این کد میبینید

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

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


لینک به پست

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

توی خط 71 که دستور ذخیره کردن فیلد ها هست ، یعنی این :

    // Updating widget replacing old instances with new
    public function update($new_instance, $old_instance) {
        $instance = array();
        $instance['title'] = (!empty($new_instance['title']) ) ? strip_tags($new_instance['title']) : '';
        $instance['color'] = (!empty($new_instance['color']) ) ? strip_tags($new_instance['color']) : '';
                
        return $instance;
    }

باید قبل از اینپوت ها باشه .

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

0

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


لینک به پست
در 52 دقیقه قبل، alitna گفته است :

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

توی خط 71 که دستور ذخیره کردن فیلد ها هست ، یعنی این :


    // Updating widget replacing old instances with new
    public function update($new_instance, $old_instance) {
        $instance = array();
        $instance['title'] = (!empty($new_instance['title']) ) ? strip_tags($new_instance['title']) : '';
        $instance['color'] = (!empty($new_instance['color']) ) ? strip_tags($new_instance['color']) : '';
                
        return $instance;
    }

باید قبل از اینپوت ها باشه .

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

من مقادیر رو وارد میکنم ولی وقتی ذخیره میکنم، اعمال میشه ولی برای دفعه بعد توی تنظیمات مقادیر 0 میشند. یعنی شما میگید کل این کد رو ببرم بالا مثله این :

	<?php

// Creating the widget 
class catbox_widget extends WP_Widget {

    function __construct() {
        parent::__construct(
                // Base ID of your widget
                'catbox_widget',
                // Widget name will appear in UI
                __('ابزارک جعبه دسته ( بالای فوتر )', 'news'),
                // Widget description
                array('description' => __('', 'news'),)
        );
    }

    // Creating widget front-end
    // This is where the action happens
    public function widget($args, $instance) {

        $title = apply_filters('widget_title', $instance['title']);
        $color = apply_filters('color', $instance['color']);
        
        // before and after widget arguments are defined by themes
        echo $args['before_widget'];

?>
<?php
$cat_tfooter = $instance['cat_tfooter'];
$my_query = new WP_Query('showposts=1&category_name='.$cat_tfooter.'');
while ($my_query->have_posts()):
$my_query->the_post();
$do_not_duplicate = $post->ID;?>
<div class="col-lg-3 col-md-3 col-sm-12 col-xs-12">
<li><div class="head head_<?php echo $color; ?>"><i class="fa fa-newspaper-o"></i><span>
            <?php
               if (!empty($title))
            echo $args['before_title'] . $title . $args['after_title'];
?> 
</span></div>
<?php the_post_thumbnail(''); ?>
<h5><?php echo get_post_meta(get_the_ID(), 'bf', true); ?></h5>
<H3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></H3>
<span class="date_cp">13 فروردين 1395</span><span class="comment_cp"><i class="fa fa-paper-plane"></i><?php comments_popup_link('بدون نظر', 'يك نظر', '% نظر'); ?></span><br />
<p></p>
</li>
</div>
<?php endwhile; ?>
			<?php
        echo $args['after_widget'];
    }
    
    // Updating widget replacing old instances with new
    public function update($new_instance, $old_instance) {
        $instance = array();
        $instance['title'] = (!empty($new_instance['title']) ) ? strip_tags($new_instance['title']) : '';
        $instance['color'] = (!empty($new_instance['color']) ) ? strip_tags($new_instance['color']) : '';
                
        return $instance;
    }
    
    // Widget Backend 
    public function form($instance) {

        if (isset($instance['title'])) {
            $title = $instance['title'];
        } else {
            $title = __('New title', 'wpb_widget_domain');
        }
$color=isset($instance['color'])?intval($instance['color']):0;

        $cat_tfooter=isset($instance['cat_tfooter'])?intval($instance['cat_tfooter']):0;
        // Widget admin form
        
        ?>

        <p>
            <label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title:'); ?></label> 
            <input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo esc_attr($title); ?>" />
        </p>
        <p>
            <label for="<?php echo $this->get_field_id('color'); ?>"><?php _e('Color :'); ?></label> 
            <input class="widefat" id="<?php echo $this->get_field_id('color'); ?>" name="<?php echo $this->get_field_name('color'); ?>" type="text" value="<?php echo esc_attr($color); ?>" />
        </p>
        <p>
            <label for="<?php echo $this->get_field_id('$cat_tfooter'); ?>"><?php _e('دسته مورد نظر'); ?></label> 
<?php wp_dropdown_categories(array(
'show_option_all' => 'همه',
'id'=>$this->get_field_id('cat_tfooter'),
'name' => $this->get_field_name( 'cat_tfooter' ),
'selected' => isset($instance['cat_tfooter']) ? $instance['cat_tfooter'] : '',
"orderby"=>'count',
'order'=>'desc',
));

    }



}

// Class wpb_widget ends here
// Register and load the widget
function catbox_widget_widget() {

    register_widget('catbox_widget');
}

add_action('widgets_init', 'catbox_widget_widget');

؟

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

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


لینک به پست

متوجه شدم ..

این رو تست کنین ببینین درست میشه ؟!

من تست کردم ، کاملا درست بود و بعد از وارد کردن مقدار ، دیگه اینپوت 0 نمیشه :

<?php

// Creating the widget 
class catbox_widget extends WP_Widget {

    function __construct() {
        parent::__construct(
                // Base ID of your widget
                'catbox_widget',
                // Widget name will appear in UI
                __('ابزارک جعبه دسته ( بالای فوتر )', 'news'),
                // Widget description
                array('description' => __('', 'news'),)
        );
    }

    // Creating widget front-end
    // This is where the action happens
    public function widget($args, $instance) {

        $title = apply_filters('widget_title', $instance['title']);
        $color = apply_filters('color', $instance['color']);
        
        // before and after widget arguments are defined by themes
        echo $args['before_widget'];

?>

<div class="col-lg-3 col-md-3 col-sm-12 col-xs-12">
<li><div class="head head_<?php echo $color; ?>"><i class="fa fa-newspaper-o"></i><span>
            <?php
               if (!empty($title))
            echo $args['before_title'] . $title . $args['after_title'];
?> 
</span></div>
<?php the_post_thumbnail(''); ?>
<h5>اتاق خبر گزارش ميدهد</h5>
<H3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></H3>
<span class="date_cp">13 فروردين 1395</span><span class="comment_cp"><i class="fa fa-paper-plane"></i><?php comments_popup_link('بدون نظر', 'يك نظر', '% نظر'); ?></span><br />
<p></p>
</li>
</div>
			<?php
        echo $args['after_widget'];
    }

    // Widget Backend 
    public function form($instance) {

        if (isset($instance['title'])) {
            $title = $instance['title'];
        } else {
            $title = __('New title', 'wpb_widget_domain');
        }
        $color=isset($instance['color'])?intval($instance['color']):8;
        // Widget admin form
        ?>
        <p>
            <label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title:'); ?></label> 
            <input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo $instance['title']; ?>" />
        </p>
        <p>
            <label for="<?php echo $this->get_field_id('color'); ?>"><?php _e('Color :'); ?></label> 
            <input class="widefat" id="<?php echo $this->get_field_id('color'); ?>" name="<?php echo $this->get_field_name('color'); ?>" type="text" value="<?php echo $instance['color']; ?>" />
        </p>

        <?php
    }

    // Updating widget replacing old instances with new
    public function update($new_instance, $old_instance) {
        $instance = array();
        $instance['title'] = (!empty($new_instance['title']) ) ? strip_tags($new_instance['title']) : '';
        $instance['color'] = (!empty($new_instance['color']) ) ? strip_tags($new_instance['color']) : '';
                
        return $instance;
    }

}

// Class wpb_widget ends here
// Register and load the widget
function catbox_widget_widget() {

    register_widget('catbox_widget');
}

add_action('widgets_init', 'catbox_widget_widget');

 

0

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


لینک به پست
در 1 ساعت قبل، alitna گفته است :

متوجه شدم ..

این رو تست کنین ببینین درست میشه ؟!

من تست کردم ، کاملا درست بود و بعد از وارد کردن مقدار ، دیگه اینپوت 0 نمیشه :


<?php

// Creating the widget 
class catbox_widget extends WP_Widget {

    function __construct() {
        parent::__construct(
                // Base ID of your widget
                'catbox_widget',
                // Widget name will appear in UI
                __('ابزارک جعبه دسته ( بالای فوتر )', 'news'),
                // Widget description
                array('description' => __('', 'news'),)
        );
    }

    // Creating widget front-end
    // This is where the action happens
    public function widget($args, $instance) {

        $title = apply_filters('widget_title', $instance['title']);
        $color = apply_filters('color', $instance['color']);
        
        // before and after widget arguments are defined by themes
        echo $args['before_widget'];

?>

<div class="col-lg-3 col-md-3 col-sm-12 col-xs-12">
<li><div class="head head_<?php echo $color; ?>"><i class="fa fa-newspaper-o"></i><span>
            <?php
               if (!empty($title))
            echo $args['before_title'] . $title . $args['after_title'];
?> 
</span></div>
<?php the_post_thumbnail(''); ?>
<h5>اتاق خبر گزارش ميدهد</h5>
<H3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></H3>
<span class="date_cp">13 فروردين 1395</span><span class="comment_cp"><i class="fa fa-paper-plane"></i><?php comments_popup_link('بدون نظر', 'يك نظر', '% نظر'); ?></span><br />
<p></p>
</li>
</div>
			<?php
        echo $args['after_widget'];
    }

    // Widget Backend 
    public function form($instance) {

        if (isset($instance['title'])) {
            $title = $instance['title'];
        } else {
            $title = __('New title', 'wpb_widget_domain');
        }
        $color=isset($instance['color'])?intval($instance['color']):8;
        // Widget admin form
        ?>
        <p>
            <label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title:'); ?></label> 
            <input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo $instance['title']; ?>" />
        </p>
        <p>
            <label for="<?php echo $this->get_field_id('color'); ?>"><?php _e('Color :'); ?></label> 
            <input class="widefat" id="<?php echo $this->get_field_id('color'); ?>" name="<?php echo $this->get_field_name('color'); ?>" type="text" value="<?php echo $instance['color']; ?>" />
        </p>

        <?php
    }

    // Updating widget replacing old instances with new
    public function update($new_instance, $old_instance) {
        $instance = array();
        $instance['title'] = (!empty($new_instance['title']) ) ? strip_tags($new_instance['title']) : '';
        $instance['color'] = (!empty($new_instance['color']) ) ? strip_tags($new_instance['color']) : '';
                
        return $instance;
    }

}

// Class wpb_widget ends here
// Register and load the widget
function catbox_widget_widget() {

    register_widget('catbox_widget');
}

add_action('widgets_init', 'catbox_widget_widget');

 

آهان یعنی به جای <?php echo esc_attr($title); ?> این رو گذاشتید ؟ <?php echo $instance['title']; ?>

الان با عوض کردن این 2 تا درست . ایندو چه فرقی با هم میکنند ؟ یعنی در واقع اون esc_attr چی هست ؟

0

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


لینک به پست

الان درست نشد ؟!

تگ esc_attr برای این هست که خود مقدار رو چاپ میکنه و اگه به صورت امتحانی یک تگ html بذارین برای چاپ ، به صورت کاراکتری چاپ میکنه ( نه نتیجه کد Html رو )

توی پروژه های قبلی خودم که دیدم ، به همون صورت خود مقدار رو با instance چاپ کردم و دقیقا خودمم موندم که چرا وقتی با esc_attr چاپ میشه یه مقدار رو نشون میده ولی تغییرات ذخیره میشه . که برای فهمیدنش باید وقت بیشتری گذاشت :)

 

همین الان متوجه شدم . وقتی شما نام color رو وارد میکنین وسط esc_attr ، خود متن رو چاپ میکنه .. و در اصل نام رو باید به متغیر instance داد .

esc_attr یه فانکشن خروجی هست و ورودیش رو چاپ میکنه ، نه یه آرایه از متغیر instance

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

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


لینک به پست
در در ۱۳۹۵/۶/۱۶ ه‍.ش. at 15:26، alitna گفته است :

الان درست نشد ؟!

تگ esc_attr برای این هست که خود مقدار رو چاپ میکنه و اگه به صورت امتحانی یک تگ html بذارین برای چاپ ، به صورت کاراکتری چاپ میکنه ( نه نتیجه کد Html رو )

توی پروژه های قبلی خودم که دیدم ، به همون صورت خود مقدار رو با instance چاپ کردم و دقیقا خودمم موندم که چرا وقتی با esc_attr چاپ میشه یه مقدار رو نشون میده ولی تغییرات ذخیره میشه . که برای فهمیدنش باید وقت بیشتری گذاشت :)

 

همین الان متوجه شدم . وقتی شما نام color رو وارد میکنین وسط esc_attr ، خود متن رو چاپ میکنه .. و در اصل نام رو باید به متغیر instance داد .

esc_attr یه فانکشن خروجی هست و ورودیش رو چاپ میکنه ، نه یه آرایه از متغیر instance

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

1

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


لینک به پست

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

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

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

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


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

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

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


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