Ned Zimmerman
7 years ago
6 changed files with 47 additions and 115 deletions
@ -1,106 +0,0 @@ |
|||||||
<?php |
|
||||||
|
|
||||||
namespace Aldine; |
|
||||||
|
|
||||||
class LatestBooks extends \WP_Widget |
|
||||||
{ |
|
||||||
/** |
|
||||||
* Constructor. |
|
||||||
* |
|
||||||
* @see WP_Widget::__construct() |
|
||||||
* |
|
||||||
*/ |
|
||||||
public function __construct() |
|
||||||
{ |
|
||||||
parent::__construct('latestbooks', __('Latest Books', 'aldine'), [ |
|
||||||
'description' => esc_html__('Your network’s latest books.', 'aldine') |
|
||||||
]); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* Front-end display of widget. |
|
||||||
* |
|
||||||
* @see WP_Widget::widget() |
|
||||||
* |
|
||||||
* @param array $args Widget arguments. |
|
||||||
* @param array $instance Saved values from database. |
|
||||||
*/ |
|
||||||
public function widget($args, $instance) |
|
||||||
{ |
|
||||||
$number = (! empty($instance['number'])) ? absint($instance['number']) : 3; |
|
||||||
if (!$number) { |
|
||||||
$number = 3; |
|
||||||
} |
|
||||||
if (empty($instance['title'])) { |
|
||||||
$instance['title'] = __('Latest Books', 'aldine'); |
|
||||||
} |
|
||||||
echo $args['before_widget']; |
|
||||||
echo $args['before_title'] . apply_filters('widget_title', $instance['title']) . $args['after_title']; |
|
||||||
$books = wp_remote_get(home_url('/wp-json/pressbooks/v2/books')); |
|
||||||
$books = json_decode($books['body'], true); |
|
||||||
echo '<div class="books">'; |
|
||||||
for ($i = 0; $i < $number; $i++) { |
|
||||||
printf( |
|
||||||
'<div class="book"> |
|
||||||
<a class="subject" href="">TK</a> |
|
||||||
<a class="title" href="%1$s">%2$s</a> |
|
||||||
<a class="read-more" href="%1$s">%3$s</a> |
|
||||||
</div>', |
|
||||||
$books[$i]['link'], |
|
||||||
$books[$i]['metadata']['name'], |
|
||||||
__('About this book →', 'aldine') |
|
||||||
); |
|
||||||
} |
|
||||||
echo '</div>'; |
|
||||||
echo $args['after_widget']; |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* Back-end widget form. |
|
||||||
* |
|
||||||
* @see WP_Widget::form() |
|
||||||
* |
|
||||||
* @param array $instance Previously saved values from database. |
|
||||||
*/ |
|
||||||
public function form($instance) |
|
||||||
{ |
|
||||||
$title = ! empty($instance['title']) ? $instance['title'] : ''; |
|
||||||
$number = ! empty($instance['number']) ? absint($instance['number']) : 3; ?> |
|
||||||
<p><label for="<?= $this->get_field_id('title'); ?>"><?php _e('Title:'); ?></label>
|
|
||||||
<input |
|
||||||
class="widefat" |
|
||||||
id="<?= $this->get_field_id('title'); ?>"
|
|
||||||
name="<?= $this->get_field_name('title'); ?>"
|
|
||||||
type="text" |
|
||||||
value="<?= $title; ?>" /></p>
|
|
||||||
<p><label for="<?= $this->get_field_id('number'); ?>"><?php _e('Number of books to show:'); ?></label>
|
|
||||||
<input |
|
||||||
class="tiny-text" |
|
||||||
id="<?= $this->get_field_id('number'); ?>"
|
|
||||||
name="<?= $this->get_field_name('number'); ?>"
|
|
||||||
type="number" |
|
||||||
step="1" |
|
||||||
min="1" |
|
||||||
value="<?= $number; ?>"
|
|
||||||
size="3" /></p> |
|
||||||
<?php |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* Sanitize widget form values as they are saved. |
|
||||||
* |
|
||||||
* @see WP_Widget::update() |
|
||||||
* |
|
||||||
* @param array $new_instance Values just sent to be saved. |
|
||||||
* @param array $old_instance Previously saved values from database. |
|
||||||
* |
|
||||||
* @return array Updated safe values to be saved. |
|
||||||
*/ |
|
||||||
public function update($new_instance, $old_instance) |
|
||||||
{ |
|
||||||
$instance = []; |
|
||||||
$instance['title'] = ( ! empty($new_instance['title']) ) ? strip_tags($new_instance['title']) : ''; |
|
||||||
$instance['number'] = (int) $new_instance['number']; |
|
||||||
return $instance; |
|
||||||
} |
|
||||||
} |
|
Loading…
Reference in new issue