/** * Get Set * * Displays details for the sets specified. * More than one set can be specified by seperating set numbers by a comma. * e.g. 1380,10240 * * @author Nate Jacobs * @date 2/15/13 * @since 1.0 * * @param array */ public function get_set($atts) { extract(shortcode_atts(array('number' => ''), $atts, 'bs_set')); $brickset = parent::get_by_number($number); if (is_wp_error($brickset)) { return $brickset->get_error_message(); } else { global $brickset_api_utilities; $settings = $brickset_api_utilities->get_settings_rules(); $number = ''; $numberVariant = ''; if (true === $settings['bricklink']) { $bricklink = '<strong>' . __('BrickLink', 'bs_api') . ': </strong><a href=http://www.bricklink.com/catalogItem.asp?S=' . $number . '-' . $numberVariant . '>BrickLink</a><br><hr>'; } elseif (false === $settings['bricklink']) { $bricklink = ''; } $return = ''; foreach ($brickset as $result) { $number = sanitize_text_field($result->number); $numberVariant = sanitize_text_field($result->numberVariant); if (empty($result->{$settings}['currency_key']) && 'unk' === $settings['currency_unknown']) { $result->{$settings}['currency_key'] = __(' Unknown', 'bs_api'); } if (empty($result->{$settings}['currency_key']) && 'us' === $settings['currency_unknown']) { $settings['currency'] = 'US'; $settings['currency_key'] = 'USRetailPrice'; $settings['currency_symbol'] = '$'; } $return .= '<img src="' . $result->imageURL . '"><br>'; $return .= '<strong>' . __('Set Name', 'bs_api') . ': </strong>' . sanitize_text_field($result->setName) . '<br>'; $return .= '<strong>' . __('Set Number', 'bs_api') . ': </strong>' . $number . '-' . $numberVariant . '<br>'; $return .= '<strong>' . __('Year', 'bs_api') . ': </strong>' . sanitize_text_field($result->year) . '<br>'; $return .= '<strong>' . __('Theme', 'bs_api') . ': </strong>' . sanitize_text_field($result->theme) . '<br>'; $return .= '<strong>' . __('Subtheme', 'bs_api') . ': </strong>' . sanitize_text_field($result->subtheme) . '<br>'; $return .= '<strong>' . sprintf(__('%s Retail Price', 'bs_api'), $settings['currency']) . ': </strong>' . $settings['currency_symbol'] . sanitize_text_field($result->{$settings}['currency_key']) . '<br>'; $return .= '<strong>' . __('Pieces', 'bs_api') . ': </strong>' . sanitize_text_field($result->pieces) . '<br>'; $return .= '<strong>' . __('Minifigs', 'bs_api') . ': </strong>' . sanitize_text_field($result->minifigs) . '<br>'; $return .= '<strong>' . __('Set Guide', 'bs_api') . ': </strong><a href=' . esc_url($result->bricksetURL) . '>Brickset</a><br>'; $return .= $bricklink; } return $return; } }
/** * Generates the widget that displays the set details. * * @author Nate Jacobs * @date 6/9/13 * @since 1.0 * * @param array * @param array */ public function widget($args, $instance) { extract($args); $title = apply_filters('widget_title', $instance['set_number']); echo $before_widget; if ($title) { echo $before_title . 'Set Number: ' . $title . $after_title; } //call functions class and use get method to retrieve list of themes $brickset = new BricksetAPISearch(); $set = $brickset->get_by_number($instance['set_number']); // check for errors if (is_wp_error($brickset)) { echo $brickset->get_error_message(); } else { global $brickset_api_utilities; $settings = $brickset_api_utilities->get_settings_rules(); $number = ''; $numberVariant = ''; foreach ($set as $result) { $number = sanitize_text_field($result->number); $numberVariant = sanitize_text_field($result->numberVariant); if (true === $settings['bricklink']) { $bricklink = '<strong>' . __('BrickLink', 'bs_api') . ': </strong><a href=http://www.bricklink.com/catalogItem.asp?S=' . $number . '-' . $numberVariant . '>BrickLink</a><br><hr>'; } elseif (false === $settings['bricklink']) { $bricklink = ''; } if (empty($result->{$settings}['currency_key']) && 'unk' === $settings['currency_unknown']) { $result->{$settings}['currency_key'] = __(' Unknown', 'bs_api'); } if (empty($result->{$settings}['currency_key']) && 'us' === $settings['currency_unknown']) { $settings['currency'] = 'US'; $settings['currency_key'] = 'USRetailPrice'; $settings['currency_symbol'] = '$'; } echo '<img src="' . $result->imageURL . '"><br>'; echo '<strong>' . __('Set Name', 'bs_api') . ': </strong>' . sanitize_text_field($result->setName) . '<br>'; echo '<strong>' . __('Set Number', 'bs_api') . ': </strong>' . $number . '-' . $numberVariant . '<br>'; echo '<strong>' . __('Year', 'bs_api') . ': </strong>' . sanitize_text_field($result->year) . '<br>'; echo '<strong>' . __('Theme', 'bs_api') . ': </strong>' . sanitize_text_field($result->theme) . '<br>'; echo '<strong>' . __('Subtheme', 'bs_api') . ': </strong>' . sanitize_text_field($result->subtheme) . '<br>'; echo '<strong>' . sprintf(__('%s Retail Price', 'bs_api'), $settings['currency']) . ': </strong>' . $settings['currency_symbol'] . sanitize_text_field($result->{$settings}['currency_key']) . '<br>'; echo '<strong>' . __('Pieces', 'bs_api') . ': </strong>' . sanitize_text_field($result->pieces) . '<br>'; echo '<strong>' . __('Minifigs', 'bs_api') . ': </strong>' . sanitize_text_field($result->minifigs) . '<br>'; echo '<strong>' . __('Set Guide', 'bs_api') . ': </strong><a href=' . esc_url($result->bricksetURL) . '>Brickset</a><br>'; echo $bricklink; } echo $after_widget; } }
/** * Takes a set number from the Brickset URL and displays information about the set * * @author Nate Jacobs * @date 3/10/13 * @since 1.0 * * @param string the set number to display information about */ public function oembed_set($set_number) { // Call the API function $brickset = parent::get_by_number($set_number); // Build the Oembed class $response = new stdClass(); $response->type = 'rich'; $response->width = '10'; $response->height = '10'; $response->version = '1.0'; $response->title = $brickset->setData->setName; $response->html = '<div class="brickset-oembed-set">'; // Check for errors if (is_wp_error($brickset)) { $response->html .= '<p>' . $brickset->get_error_message() . '</p>'; } else { global $brickset_api_utilities; $settings = $brickset_api_utilities->get_settings_rules(); $number = ''; $numberVariant = ''; if (true === $settings['bricklink']) { $bricklink = '<strong>' . __('BrickLink', 'bs_api') . ': </strong><a href=http://www.bricklink.com/catalogItem.asp?S=' . $number . '-' . $numberVariant . '>BrickLink</a><br><hr>'; } elseif (false === $settings['bricklink']) { $bricklink = ''; } // Loop through and display the set information foreach ($brickset as $result) { $number = sanitize_text_field($result->number); $numberVariant = sanitize_text_field($result->numberVariant); if (empty($result->{$settings}['currency_key']) && 'unk' === $settings['currency_unknown']) { $result->{$settings}['currency_key'] = __(' Unknown', 'bs_api'); } if (empty($result->{$settings}['currency_key']) && 'us' === $settings['currency_unknown']) { $settings['currency'] = 'US'; $settings['currency_key'] = 'USRetailPrice'; $settings['currency_symbol'] = '$'; } $response->html .= '<img src="' . $result->imageURL . '"><br>'; $response->html .= '<strong>' . __('Set Name', 'bs_api') . ': </strong>' . sanitize_text_field($result->setName) . '<br>'; $response->html .= '<strong>' . __('Set Number', 'bs_api') . ': </strong>' . $number . '-' . $numberVariant . '<br>'; $response->html .= '<strong>' . __('Year', 'bs_api') . ': </strong>' . sanitize_text_field($result->year) . '<br>'; $response->html .= '<strong>' . __('Theme', 'bs_api') . ': </strong>' . sanitize_text_field($result->theme) . '<br>'; $response->html .= '<strong>' . __('Subtheme', 'bs_api') . ': </strong>' . sanitize_text_field($result->subtheme) . '<br>'; $response->html .= '<strong>' . sprintf(__('%s Retail Price', 'bs_api'), $settings['currency']) . ': </strong>' . $settings['currency_symbol'] . sanitize_text_field($result->{$settings}['currency_key']) . '<br>'; $response->html .= '<strong>' . __('Pieces', 'bs_api') . ': </strong>' . sanitize_text_field($result->pieces) . '<br>'; $response->html .= '<strong>' . __('Minifigs', 'bs_api') . ': </strong>' . sanitize_text_field($result->minifigs) . '<br>'; $response->html .= '<strong>' . __('Set Guide', 'bs_api') . ': </strong><a href=' . esc_url($result->bricksetURL) . '>Brickset</a><br>'; $response->html .= $bricklink; } } $response->html .= '</div>'; header('Content-Type: application/json'); echo json_encode($response); die; }