'',
'showimages' => 1,
'flipflop' => 1,
'startingside' => 'odd',
'limitsites' => 0,
'maxsites' => '10',
'limitchars' => 0,
'maxchars' => '250',
'excerptsonly' => 1,
'morelink' => 1,
'morelinktext' => 'Mehr',
'randomize' => 0,
'sort_column'=>'menu_order',
'sort_order'=>'asc',
'is_custom_order' => 0,
'custom_order'=>'',
'parentpage' => 'actual',
'ignoreempty' => 1,
'exclude'=> '',
'customimageclass' => ''
);
function A_Sub_Site_Teaser_Widget() {
$options = array(
'classname' => 'a_sub_site_teaser_widget',
'description' => 'Unterseiten geteasert anzeigen','dynamic-subpages'
);
$this->WP_Widget('A_Sub_Site_Teaser_Widget', 'A Sub Site Teaser', $options);
add_filter( 'plugin_action_links', array($this, 'plugin_action_links'), 10, 2 );
}
private function getAllPagesAsList()
{
// prepare list of pages
$pages_array = get_pages( array(
'hierarchical' => 0,
'post_status' => 'publish'
));
// make blank first option
$page_select_list = array( '' => '' );
foreach( $pages_array as $page ){
$page_select_list[$page->ID] = esc_attr( $page->post_title );
}
return $page_select_list;
}
public function form($instance)
{
$instance = wp_parse_args( (array) $instance, $this->defaults);
$title = $instance['title'];
$showimages = $instance['showimages'];
$flipflop = $instance['flipflop'];
$startingside = $instance['startingside'];
$limitsites = $instance['limitsites'];
$maxsites = $instance['maxsites'];
$limitchars = $instance['limitchars'];
$maxchars = $instance['maxchars'];
$excerptsonly = $instance['excerptsonly'];
$morelink = $instance['morelink'];
$morelinktext = $instance['morelinktext'];
$randomize = $instance['randomize'];
$parentpage = $instance['parentpage'];
$ignoreempty = $instance['ignoreempty'];
$customimageclass = $instance['customimageclass'];
$sort_column = $instance['sort_column'];
$sort_order = $instance['sort_order'];
$exclude = $instance['exclude'];
$custom_order = $instance['custom_order'];
$is_custom_order = $instance['is_custom_order'];
$pagesList = $this->getAllPagesAsList();
?>
|
|
|
>
>
|
|
|
>
>
|
>
>
|
|
|
|
|
|
|
>
>
|
|
|
|
|
|
>
>
|
|
|
>
>
|
|
|
>
>
|
|
|
>
>
|
|
|
|
>
>
|
|
|
|
>
>
|
|
>
>
|
|
'page',
'child_of' => $parentid,
'sort_column' => $sort_column,
'sort_order' => $sort_order
);
$children_array = get_pages($parameterArray);
if($limitsites == 0 || $maxsites > count($children_array))
{
$maxsites = count($children_array);
}
if($randomize == 1)
{
shuffle($children_array);
}
if($is_custom_order == 1 && count($custom_order_array) > 0)
{
$tmpArray = array();
foreach($custom_order_array as $ele)
{
foreach($children_array as $chil)
{
if($chil->ID == $ele)
{
array_push($tmpArray,$chil);
}
}
}
$children_array = $tmpArray;
}
echo "";
echo "
";
if($instance['startingside'] == 'odd')
{
$even = false;
$evenoddclass = "asst-odd";
}
else{
$even = true;
$evenoddclass = "asst-even";
}
$pagecount = 0;
foreach($children_array as $currPage)
{
if(in_array($currPage->ID,$excludeArray))
{
continue;
}
$pagecount++;
if($pagecount > $maxsites)
{
break;
}
$empty = $this->printOutput($currPage, $even, $evenoddclass, $instance);
if($empty == "empty")
{
$pagecount--;
}
else{
if($instance['flipflop'] == 1)
{
if($even)
{
$evenoddclass = "asst-odd";
$even = false;
}
else
{
$evenoddclass = "asst-even";
$even = true;
}
}
}
}
echo "
";
echo "
";
echo $args['after_widget'];
}
function printOutput($currentPage, $even, $evenoddclass, $instance)
{
$displaytext = ($instance['excerptsonly'] == 1 ? $currentPage->post_excerpt : $currentPage->post_content);
$displaytext = trim($displaytext);
if($instance['limitchars'] == 1 && $instance['maxchars'] < strlen($displaytext))
{
$displaytext = substr($displaytext, 0, $instance['maxchars']) . "...";
}
$tidy = new tidy();
$options = array("show-body-only" => true);
$tidy = tidy_parse_string($displaytext, $options, 'utf8');
tidy_clean_repair($tidy);
$displaytext = $tidy;
$displaytext = trim($displaytext);
if($instance['ignoreempty'] == 1 && strlen($displaytext) == 0 )
{
return "empty";
}
echo '';
if($instance['showimages'] == 1)
{
echo ' '. get_the_post_thumbnail($currentPage->ID, 'a-sub-site-teaser-widget-image', array('class' => $instance['customimageclass'] )) .'';
}
echo ''.
'';
return "ok";
}
function plugin_action_links( $links, $file ) {
static $this_plugin;
if( empty($this_plugin) )
$this_plugin = plugin_basename(__FILE__);
if ( $file == $this_plugin )
$links[] = 'Widgets';
return $links;
}
}
add_action('widgets_init', create_function('', 'return register_widget("A_Sub_Site_Teaser_Widget");'));
add_action('widgets_init', create_function('', 'return add_image_size("a-sub-site-teaser-widget-image", 200, 200);'));
add_action('init', 'load_languages_init');
add_action('wp_enqueue_scripts', 'A_Sub_Site_Teaser_Scripts');
function A_Sub_Site_Teaser_Scripts() {
//import css
if(@file_exists(TEMPLATEPATH.'/a-sub-site-teaser-widget.css')) {
wp_enqueue_style('a-sub-site-teaser-widget', get_stylesheet_directory_uri().'/a-sub-site-teaser-widget.css', false, '0.50', 'all');
} else {
wp_enqueue_style('a-sub-site-teaser-widget', plugins_url('a-sub-site-teaser-widget/a-sub-site-teaser-widget.css'), false, '0.50', 'all');
}
}
?>