Replace the content of the file package.module.widget.php with this content than it should Work our u just create a new package.module.widget.php with Notepad and paste this content, the old _package.module.widget.php just rename it
<?php
/**
* Class C_Widget
* @mixin Mixin_Widget
* @implements I_Widget
*/
class C_Widget extends C_MVC_Controller
{
public static $_instances = array();
function define($context = FALSE)
{
parent::define($context);
$this->add_mixin('Mixin_Widget');
$this->implement('I_Widget');
}
/**
* @param bool|string $context
* @return C_Widget
*/
public static function get_instance($context = FALSE)
{
if (!isset(self::$_instances[$context])) {
self::$_instances[$context] = new C_Widget($context);
}
return self::$_instances[$context];
}
}
class Mixin_Widget extends Mixin
{
/**
* Function for templates without widget support
*
* @return C_Widget_Gallery
*/
function echo_widget_random($number, $width = '75', $height = '50', $exclude = 'all', $list = '', $show = 'thumbnail')
{
$options = array('title' => FALSE, 'items' => $number, 'show' => $show, 'type' => 'random', 'width' => $width, 'height' => $height, 'exclude' => $exclude, 'list' => $list, 'webslice' => FALSE);
$widget = new C_Widget_Gallery();
$widget->widget($args = array('widget_id' => 'sidebar_1'), $options);
return $widget;
}
/**
* Function for templates without widget support
*
* @return C_Widget_Gallery
*/
function echo_widget_recent($number, $width = '75', $height = '50', $exclude = 'all', $list = '', $show = 'thumbnail')
{
$options = array('title' => FALSE, 'items' => $number, 'show' => $show, 'type' => 'recent', 'width' => $width, 'height' => $height, 'exclude' => $exclude, 'list' => $list, 'webslice' => FALSE);
$widget = new C_Widget_Gallery();
$widget->widget($args = array('widget_id' => 'sidebar_1'), $options);
return $widget;
}
/**
* Function for templates without widget support
*
* @param integer $galleryID
* @param string $width
* @param string $height
* @return C_Widget_Slideshow
*/
function echo_widget_slideshow($galleryID, $width = '', $height = '')
{
$widget = new C_Widget_Slideshow();
$widget->render_slideshow($galleryID, $width, $height);
return $widget;
}
}
class C_Widget_Gallery extends WP_Widget
{
function __construct()
{
$widget_ops = array('classname' => 'ngg_images', 'description' => __('Add recent or random images from the galleries', 'nggallery'));
parent::__construct('ngg-images', __('NextGEN Widget', 'nggallery'), $widget_ops);
}
function form($instance)
{
// used for rendering utilities
$parent = C_Widget::get_instance();
// defaults
$instance = wp_parse_args((array) $instance, array('exclude' => 'all', 'height' => '75', 'items' => '4', 'list' => '', 'show' => 'thumbnail', 'title' => 'Gallery', 'type' => 'recent', 'webslice' => TRUE, 'width' => '100'));
return $parent->render_partial('photocrati-widget#form_gallery', array('self' => $this, 'instance' => $instance, 'title' => esc_attr($instance['title']), 'items' => intval($instance['items']), 'height' => esc_attr($instance['height']), 'width' => esc_attr($instance['width'])));
}
function update($new_instance, $old_instance)
{
$instance = $old_instance;
// do not allow 0 or less
if ((int) $new_instance['items'] <= 0) {
$new_instance['items'] = 4;
}
// for clarity: empty the list if we're showing every gallery anyway
if ($new_instance['exclude'] == 'all') {
$new_instance['list'] = '';
}
// remove gallery ids that do not exist
if (in_array($new_instance['exclude'], array('denied', 'allow'))) {
// do search
$mapper = C_Gallery_Mapper::get_instance();
$ids = explode(',', $new_instance['list']);
foreach ($ids as $ndx => $id) {
if (!$mapper->find($id)) {
unset($ids[$ndx]);
}
}
$new_instance['list'] = implode(',', $ids);
}
// reset to show all galleries IF there are no valid galleries in the list
if ($new_instance['exclude'] !== 'all' && empty($new_instance['list'])) {
$new_instance['exclude'] = 'all';
}
$instance['title'] = strip_tags($new_instance['title']);
$instance['items'] = (int) $new_instance['items'];
$instance['type'] = $new_instance['type'];
$instance['show'] = $new_instance['show'];
$instance['width'] = (int) $new_instance['width'];
$instance['height'] = (int) $new_instance['height'];
$instance['exclude'] = $new_instance['exclude'];
$instance['list'] = $new_instance['list'];
$instance['webslice'] = (bool) $new_instance['webslice'];
return $instance;
}
function widget($args, $instance)
{
$settings = C_NextGen_Settings::get_instance();
$router = C_Router::get_instance();
wp_enqueue_style('nextgen_widgets_style', $router->get_static_url('photocrati-widget#widgets.css'), array(), NGG_SCRIPT_VERSION);
wp_enqueue_style('nextgen_basic_thumbnails_style', $router->get_static_url('photocrati-nextgen_basic_gallery#thumbnails/nextgen_basic_thumbnails.css'), array(), NGG_SCRIPT_VERSION);
// these are handled by extract() but I want to silence my IDE warnings that these vars don't exist
$before_widget = NULL;
$before_title = NULL;
$after_widget = NULL;
$after_title = NULL;
$widget_id = NULL;
extract($args);
$title = apply_filters('widget_title', empty($instance['title']) ? ' ' : $instance['title'], $instance, $this->id_base);
$renderer = C_Displayed_Gallery_Renderer::get_instance();
$factory = C_Component_Factory::get_instance();
$view = $factory->create('mvc_view', '');
// IE8 webslice support if needed
if (!empty($instance['webslice'])) {
$before_widget .= '<div class="hslice" id="ngg-webslice">';
$before_title = str_replace('class="', 'class="entry-title ', $before_title);
$after_widget = '</div>' . $after_widget;
}
$source = $instance['type'] == 'random' ? 'random_images' : 'recent';
$template = !empty($instance['template']) ? $instance['template'] : $view->get_template_abspath('photocrati-widget#display_gallery');
$params = array('slug' => 'widget-' . $args['widget_id'], 'source' => $source, 'display_type' => NGG_BASIC_THUMBNAILS, 'images_per_page' => $instance['items'], 'maximum_entity_count' => $instance['items'], 'template' => $template, 'image_type' => $instance['show'] == 'original' ? 'full' : 'thumb', 'show_all_in_lightbox' => FALSE, 'show_slideshow_link' => FALSE, 'show_thumbnail_link' => FALSE, 'use_imagebrowser_effect' => FALSE, 'disable_pagination' => TRUE, 'image_width' => $instance['width'], 'image_height' => $instance['height'], 'ngg_triggers_display' => 'never', 'widget_setting_title' => $title, 'widget_setting_before_widget' => $before_widget, 'widget_setting_before_title' => $before_title, 'widget_setting_after_widget' => $after_widget, 'widget_setting_after_title' => $after_title, 'widget_setting_width' => $instance['width'], 'widget_setting_height' => $instance['height'], 'widget_setting_show_setting' => $instance['show'], 'widget_setting_widget_id' => $widget_id);
switch ($instance['exclude']) {
case 'all':
break;
case 'denied':
$mapper = C_Gallery_Mapper::get_instance();
$gallery_ids = array();
$list = explode(',', $instance['list']);
foreach ($mapper->find_all() as $gallery) {
if (!in_array($gallery->{$gallery->id_field}, $list)) {
$gallery_ids[] = $gallery->{$gallery->id_field};
}
}
$params['container_ids'] = implode(',', $gallery_ids);
break;
case 'allow':
$params['container_ids'] = $instance['list'];
break;
}
// "Random" galleries are a bit resource intensive when querying the database and widgets are generally
// going to be on every page a site may serve. Because the displayed gallery renderer does *NOT* cache the
// HTML of random galleries the following is a bit of a workaround: for random widgets we create a displayed
// gallery object and then cache the results of get_entities() so that, for at least as long as
// NGG_RENDERING_CACHE_TTL seconds, widgets will be temporarily cached
if (in_array($params['source'], array('random', 'random_images')) && (float) $settings->random_widget_cache_ttl > 0) {
$displayed_gallery = $renderer->params_to_displayed_gallery($params);
if (is_null($displayed_gallery->id())) {
$displayed_gallery->id(md5(json_encode($displayed_gallery->get_entity())));
}
$cache_group = 'random_widget_gallery_ids';
$cache_params = array($displayed_gallery->get_entity());
$transientM = C_Photocrati_Transient_Manager::get_instance();
$key = $transientM->generate_key($cache_group, $cache_params);
$ids = $transientM->get($key, FALSE);
if (!empty($ids)) {
$params['image_ids'] = $ids;
} else {
$ids = array();
foreach ($displayed_gallery->get_entities($instance['items'], FALSE, TRUE) as $item) {
$ids[] = $item->{$item->id_field};
}
$params['image_ids'] = implode(',', $ids);
$transientM->set($key, $params['image_ids'], (float) $settings->random_widget_cache_ttl * 60);
}
$params['source'] = 'images';
unset($params['container_ids']);
}
print $renderer->display_images($params);
}
}
class C_Widget_MediaRSS extends WP_Widget
{
var $options;
function __construct()
{
$widget_ops = array('classname' => 'ngg_mrssw', 'description' => __('Widget that displays Media RSS links for NextGEN Gallery.', 'nggallery'));
parent::__construct('ngg-mrssw', __('NextGEN Media RSS', 'nggallery'), $widget_ops);
}
function form($instance)
{
// used for rendering utilities
$parent = C_Widget::get_instance();
// defaults
$instance = wp_parse_args((array) $instance, array('mrss_text' => __('Media RSS', 'nggallery'), 'mrss_title' => __('Link to the main image feed', 'nggallery'), 'show_global_mrss' => TRUE, 'show_icon' => TRUE, 'title' => 'Media RSS'));
return $parent->render_partial('photocrati-widget#form_mediarss', array('self' => $this, 'instance' => $instance, 'title' => esc_attr($instance['title']), 'mrss_text' => esc_attr($instance['mrss_text']), 'mrss_title' => esc_attr($instance['mrss_title'])));
}
function update($new_instance, $old_instance)
{
$instance = $old_instance;
$instance['title'] = strip_tags($new_instance['title']);
$instance['show_global_mrss'] = $new_instance['show_global_mrss'];
$instance['show_icon'] = $new_instance['show_icon'];
$instance['mrss_text'] = $new_instance['mrss_text'];
$instance['mrss_title'] = $new_instance['mrss_title'];
return $instance;
}
function widget($args, $instance)
{
// these are handled by extract() but I want to silence my IDE warnings that these vars don't exist
$before_widget = NULL;
$before_title = NULL;
$after_widget = NULL;
$after_title = NULL;
$widget_id = NULL;
extract($args);
$settings = C_NextGen_Settings::get_instance();
$parent = C_Component_Registry::get_instance()->get_utility('I_Widget');
$title = apply_filters('widget_title', empty($instance['title']) ? ' ' : $instance['title'], $instance, $this->id_base);
$parent->render_partial('photocrati-widget#display_mediarss', array('self' => $this, 'instance' => $instance, 'title' => $title, 'settings' => $settings, 'before_widget' => $before_widget, 'before_title' => $before_title, 'after_widget' => $after_widget, 'after_title' => $after_title, 'widget_id' => $widget_id));
}
function get_mrss_link($mrss_url, $show_icon = TRUE, $title, $text)
{
$out = '';
if ($show_icon) {
$icon_url = NGGALLERY_URLPATH . 'images/mrss-icon.gif';
$out .= "<a href='{$mrss_url}' title='{$title}' class='ngg-media-rss-link'>";
$out .= "<img src='{$icon_url}' alt='MediaRSS Icon' title='" . $title . "' class='ngg-media-rss-icon' />";
$out .= "</a> ";
}
if ($text != '') {
$out .= "<a href='{$mrss_url}' title='{$title}' class='ngg-media-rss-link'>";
$out .= $text;
$out .= "</a>";
}
return $out;
}
}
class C_Widget_Slideshow extends WP_Widget
{
function __construct()
{
$widget_ops = array('classname' => 'widget_slideshow', 'description' => __('Show a NextGEN Gallery Slideshow', 'nggallery'));
parent::__construct('slideshow', __('NextGEN Slideshow', 'nggallery'), $widget_ops);
}
function form($instance)
{
global $wpdb;
// used for rendering utilities
$parent = C_Widget::get_instance();
// defaults
$instance = wp_parse_args((array) $instance, array('galleryid' => '0', 'height' => '120', 'title' => 'Slideshow', 'width' => '160', 'limit' => '10'));
return $parent->render_partial('photocrati-widget#form_slideshow', array('self' => $this, 'instance' => $instance, 'title' => esc_attr($instance['title']), 'height' => esc_attr($instance['height']), 'width' => esc_attr($instance['width']), 'limit' => esc_attr($instance['limit']), 'tables' => $wpdb->get_results("SELECT * FROM {$wpdb->nggallery} ORDER BY 'name' ASC")));
}
function update($new_instance, $old_instance)
{
$nh = $new_instance['height'];
$nw = $new_instance['width'];
if (empty($nh) || (int) $nh === 0) {
$new_instance['height'] = 120;
}
if (empty($nw) || (int) $nw === 0) {
$new_instance['width'] = 160;
}
if (empty($new_instance['limit'])) {
$new_instance['limit'] = 10;
}
$instance = $old_instance;
$instance['title'] = strip_tags($new_instance['title']);
$instance['galleryid'] = (int) $new_instance['galleryid'];
$instance['height'] = (int) $new_instance['height'];
$instance['width'] = (int) $new_instance['width'];
$instance['limit'] = (int) $new_instance['limit'];
return $instance;
}
function widget($args, $instance)
{
$router = C_Router::get_instance();
wp_enqueue_style('nextgen_widgets_style', $router->get_static_url('photocrati-widget#widgets.css'), array(), NGG_SCRIPT_VERSION);
wp_enqueue_style('nextgen_basic_slideshow_style', $router->get_static_url('photocrati-nextgen_basic_gallery#slideshow/ngg_basic_slideshow.css'), array(), NGG_SCRIPT_VERSION);
// these are handled by extract() but I want to silence my IDE warnings that these vars don't exist
$before_widget = NULL;
$before_title = NULL;
$after_widget = NULL;
$after_title = NULL;
$widget_id = NULL;
extract($args);
$parent = C_Component_Registry::get_instance()->get_utility('I_Widget');
$title = apply_filters('widget_title', empty($instance['title']) ? __('Slideshow', 'nggallery') : $instance['title'], $instance, $this->id_base);
if (empty($instance['limit'])) {
$instance['limit'] = 10;
}
$out = $this->render_slideshow($instance['galleryid'], $instance['width'], $instance['height'], $instance['limit'], $args);
$parent->render_partial('photocrati-widget#display_slideshow', array('self' => $this, 'instance' => $instance, 'title' => $title, 'out' => $out, 'before_widget' => $before_widget, 'before_title' => $before_title, 'after_widget' => $after_widget, 'after_title' => $after_title, 'widget_id' => $widget_id));
}
function render_slideshow($galleryID, $irWidth = '', $irHeight = '', $limit = 10, $args)
{
$registry = C_Component_Registry::get_instance();
$renderer = C_Displayed_Gallery_Renderer::get_instance();
$params = array(
'container_ids' => $galleryID,
'display_type' => 'photocrati-nextgen_basic_slideshow',
'gallery_width' => $irWidth,
'gallery_height' => $irHeight,
'source' => 'galleries',
'slug' => 'widget-' . $args['widget_id'],
'entity_types' => array('image'),
'show_thumbnail_link' => FALSE,
'show_slideshow_link' => FALSE,
'use_imagebrowser_effect' => FALSE,
// just to be safe
'ngg_triggers_display' => 'never',
);
if (0 === $galleryID) {
$params['source'] = 'random_images';
$params['maximum_entity_count'] = $limit;
unset($params['container_ids']);
}
$retval = $renderer->display_images($params, NULL);
$retval = apply_filters('ngg_show_slideshow_widget_content', $retval, $galleryID, $irWidth, $irHeight);
return $retval;
}
}