el_beth
1

Ошибка в виджете :(

24.10.2013, 18:19. Показов 917. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Виджет-кнопка (Call-to-action button). Мой первый виджет))

Код : http://pastebin.com/qfHWjsXV

Ошибка в последней функции :

//Displays the widget on the page
public function widget


на всякий случай привожу весь код, так как я все-таки новичек

Все работает чудесно, кроме ссылки, при ее нажатии вылетает ошибка : 500 Internal Server Error

НО!

Когда вместо : $text_link .= '<a class="button" href="<?php echo $ad_link; ?>"> Read More </a>';
забиваю : $text_link .= '<a class="button" href="https://www.google.com.ua/"> Read More </a>';
все работает отлично..

Если кому лень переходить по ссылкам и удобно читать здесь :

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
<?php
/**
*Custom Widget for call to action button 105x35px
*/
 
 
 add_action( 'widgets_init', 'button_widget' );
 
 
function button_widget() {
        register_widget( 'Button_Widget' );
}
 
class Button_Widget extends WP_Widget {
 
function Button_Widget() {
                $widget_ops = array( 'classname' => 'main-banner-button', 'description' => __('Displays widget for call to action button', 'button') );
               
                $control_ops = array( 'width' => 105, 'height' => 35, 'id_base' => 'button-widget' );
               
                $this->Button_Widget( 'button-widget', __('Button Widget', 'main-banner-button'), $widget_ops, $control_ops );
        }
    // Widget init
  public function __construct() {
     parent::__construct(
        'button_widget',
        'Custom Widget: Button Widget',
            array('description' => __('Button Widget','Displays widget for call to action button'), )
         );
  }
   
 
  // Output the Widget options in the back-end
  public function form($instance) {
    $defaults = array(
            'title' => __('Button Widget'),
                'ad_link' => 'http://wp.tutsplus.com',
                'ad_img' => '/bg-btn.gif'
                );
               
        $instance = wp_parse_args((array) $instance, $defaults);
       
?>
 
<!-- The Title -->
 
        <p>
            <label for="<?php echo $this->get_field_id('title') ?>"><?php _e('Title'); ?></label>
                <input type="text" id="<?php echo $this->get_field_id('title') ?>" name="<?php echo $this->get_field_name('title') ?>" class="widefat" value="<?php echo esc_attr($instance['title']); ?>" />
        </p>
       
       
<!-- The Ad Link -->
       
        <p>
            <label for="<?php echo $this->get_field_id('ad_link'); ?>"><?php _e('Ad Link'); ?></label>
                <input type="text" id="<?php echo $this->get_field_id('ad_link'); ?>" name="<?php echo $this->get_field_name('ad_link'); ?>" class="widefat" value="<?php echo esc_attr($instance['ad_link']); ?>" />
        </p>
       
       
<!-- The Ad Image -->
       
        <p>
            <label for="<?php echo $this->get_field_id('ad_img') ?>"><?php _e('Ad Image'); ?></label>
                <input type="text" id="<?php echo $this->get_field_id('ad_img') ?>" name="<?php echo $this->get_field_name('ad_img') ?>" class="widefat" value="<?php echo esc_attr($instance['ad_img']); ?>" />
        </p>
       
<?php
       
  }
  // Process widget options for saving
  public function update($new_instance, $old_instance) {
    $instance = $old_instance;
       
        // Title
        $instance['title'] = strip_tags($new_instance['title']);
       
        // The Link
        $instance['ad_link'] = $new_instance['ad_link'];
       
        // The Image
        $instance['ad_img'] = $new_instance['ad_img'];
       
        return $instance;
       
  }
  [COLOR="red"][B]//Displays the widget on the page[/B][/COLOR]
  public function widget($args, $instance) {
    extract($args);
       
        $title = apply_filters('widget-title', $instance['title']);
       
        $ad_img = $instance['ad_img'];
        $ad_link = $instance['ad_link'];
       
        echo $before_widget;
       
        if (isset($title)) {
            echo $before_title . $title . $after_title;        
        }
 
    $text_link = '<a class="button">';
       
    if ($ad_img) {
       
        $text_link .= '<a class="button" href="<?php echo $ad_link; ?>"> Read More </a>';
       
        }
       
        $text_link .= '</a>';
       
        echo $text_link;
       
       
        echo $after_widget;
  }
}
?>
Помогите пожалуйста новичку
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.10.2013, 18:19
Ответы с готовыми решениями:

Текст в виджете
Здравствуйте господа форумчане!)Подскажите пожалуйста новичку... Как добавить текст в TextView на...

Виджет на виджете
Доброго времени суток. Никак не могу мысль реализовать. Есть виджет, на котором есть...

Рисование на виджете
Сразу прошу прощение, если где-то с терминалогией напутал... Разбираюсь с созданием собственного...

Рисовать на виджете
Добрый день. Нужно создать клиент-серверное приложение. В Клиенте выбирают хост и при подключении...

2
16 / 16 / 1
Регистрация: 31.03.2011
Сообщений: 81
31.10.2013, 01:12 2
Я конечно дико извиняюсь, сам виджеты как то не писал, но откуда переменные
$befire_widget; & $after_widget; ?
0
Coding is art
Эксперт JS
536 / 420 / 153
Регистрация: 04.09.2013
Сообщений: 1,056
01.11.2013, 07:21 3
Цитата Сообщение от vex31 Посмотреть сообщение
Я конечно дико извиняюсь, сам виджеты как то не писал, но откуда переменные
$befire_widget; & $after_widget; ?
она извлекается из $args, в документации можешь почитать о параметрах входящих в $args, а extract() - в документации php..

по делу:

у тебя ошибка в коде..
Цитата Сообщение от el_beth Посмотреть сообщение
$text_link .= '<a class="button" href="<?php echo $ad_link; ?>"> Read More </a>';
ты уже и так в php зачем внутри него объявляешь его же.. да ещё и в выводе текстовом...
нужно так:
$text_link .= '<a class="button" href="' . $ad_link . '"> Read More </a>';
0
01.11.2013, 07:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.11.2013, 07:21
Помогаю со студенческими работами здесь

Координаты на виджете
Добрый день. Строю снеговика на виджете. Вот кое-как подобрал круги по координатам. Хочу сделать...

Проблема с js в виджете
Добрый день. Такая проблема. Создаю виджет текст в wp с таким содержимым: &lt;script...

Виджет на виджете
Есть некоторый QGLWidget и есть QWidget с несколькими QLabel. Мне необходимо,что бы QWidget...

лестание фото в виджете
Подскажите как заставить виджет листать фото вот он на фото нужно что бы он листал альбомы с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru