function id_projectGrid($attrs) { ob_start(); if (isset($attrs['columns'])) { $wide = $attrs['columns']; } else { $wide = 3; } $width = 90 / $wide; $margin = 10 / ($wide - 1); if (isset($attrs['max'])) { $max = $attrs['max']; } else { $max = null; } // project category if (isset($attrs['category'])) { $category = $attrs['category']; $args = array('post_type' => 'ignition_product', 'tax_query' => array(array('taxonomy' => 'project_category', 'field' => 'id', 'terms' => $category))); } else { // in case category isn't defined, query args must contain post type $args['post_type'] = 'ignition_product'; } if (isset($max)) { $args['posts_per_page'] = $max; } // --> Custom args - START // orderby possible values - days_left, percent_raised, funds_raised, rand, title, date (default) if (isset($attrs['orderby'])) { if ($attrs['orderby'] == 'days_left') { $args['orderby'] = 'meta_value_num'; $args['meta_key'] = 'ign_days_left'; } else { if ($attrs['orderby'] == 'percent_raised') { $args['orderby'] = 'meta_value_num'; $args['meta_key'] = 'ign_percent_raised'; } else { if ($attrs['orderby'] == 'funds_raised') { $args['orderby'] = 'meta_value_num'; $args['meta_key'] = 'ign_fund_raised'; } else { // reserved for later use $args['orderby'] = $attrs['orderby']; } } } } // order possible values = ASC, DESC (default) if (isset($attrs['order'])) { $args['order'] = $attrs['order']; } // author (single name) if (isset($attrs['author'])) { $args['author_name'] = $attrs['author']; } // --> Custom args - END // moved this block before the query call require 'languages/text_variables.php'; $custom = false; if (isset($attrs['deck'])) { $deck_id = $attrs['deck']; $settings = Deck::get_deck_attrs($deck_id); if (!empty($settings)) { $attrs = unserialize($settings->attributes); $custom = true; } } // start the actual query, which will also output decks $posts = get_posts($args); $project_ids = array(); echo '<div class="ignitiondeck"><div class="grid_wrap" data-wide="' . $wide . '">'; $i = 1; foreach ($posts as $post) { $post_id = $post->ID; $project_id = get_post_meta($post_id, 'ign_project_id', true); // no more "pass" checks are required, because the query gets all proper projects in proper order and settings $deck = new Deck($project_id); $mini_deck = $deck->mini_deck(); $post_id = $deck->get_project_postid(); $status = get_post_status($post_id); $custom = apply_filters('idcf_custom_deck', $custom, $post_id); $attrs = apply_filters('idcf_deck_attrs', isset($attrs) ? $attrs : null, $post_id); if (strtoupper($status) == 'PUBLISH') { $settings = getSettings(); echo '<div class="grid_item" style="float: left; margin: 0 ' . $margin . '% ' . $margin . '% 0; width: ' . $width . '%;">'; include 'templates/_miniWidget.php'; echo '</div>'; $i++; } } // end with query and continue with original code echo '</div></div>'; echo '<br style="clear: both"/>'; $grid = ob_get_contents(); ob_end_clean(); return $grid; }
function html($widget, $params, $sidebar) { global $post, $wpdb; $show_mini = false; $page_project_id = 0; $custom = false; // Condition to store the product_id, if the page currently being visited is the project page or some other if (isset($post)) { if ($post->post_type == 'ignition_product') { $post_id = $post->ID; $page_project_id = get_post_meta($post_id, 'ign_project_id', true); //$page_project_id = projectPageof($post->ID, $params['product_id']); } // We have three conditions now // 1. Show Mini widget only, on all pages // 2. Show Full widget on all pages // 3. Show Mini widget on all pages except the project page if (isset($params['widget_options'])) { if ($params['widget_options'] == "miniwidget") { $show_mini = true; } else { if ($params['widget_options'] == "fullwidget") { $show_mini = false; } else { if ($params['widget_options'] == "miniallpages" && $page_project_id > 0) { //2nd condition means it is a project page, containing some non-zero project_id $show_mini = false; } else { $show_mini = true; } } } } else { $show_mini = true; } if (isset($params['deck_id']) && $params['deck_id'] > 0) { $deck_id = $params['deck_id']; $settings = Deck::get_deck_attrs($deck_id); if (!empty($settings)) { $attrs = unserialize($settings->attributes); $custom = true; } } } // If it's a project page, use the post_id to get the product, else use the product_id in $params if ($page_project_id > 0) { $project_id = $page_project_id; } else { $project_id = $params['product_id']; } $deck = new Deck($project_id); if ($show_mini == true) { $mini_deck = $deck->mini_deck(); $post_id = $mini_deck->post_id; } else { $the_deck = $deck->the_deck(); $post_id = $deck->post_id; } $custom = apply_filters('idcf_custom_deck', $custom, $post_id); $attrs = apply_filters('idcf_deck_attrs', isset($attrs) ? $attrs : null, $post_id); $widget_before = ''; $widget_after = ''; $mini_widget_before = ''; $mini_widget_after = ''; // Calling the HTML code ob_start(); require ID_PATH . 'languages/text_variables.php'; include ID_PATH . 'templates/_igWidget.php'; $widget = ob_get_contents(); ob_end_clean(); if ($show_mini) { echo apply_filters('id_mini_widget', $widget); } else { echo apply_filters('id_widget', $widget); } }
function ide_creator_profile_display($content) { // we should really turn this into a template $content = ''; if (isset($_GET['creator_profile'])) { $profile = absint($_GET['creator_profile']); } $user = get_user_by('id', $profile); //$name = $user->user_firstname.' '.$user->user_lastname; $name = apply_filters('ide_profile_name', $user->display_name, $user); $twitter_link = apply_filters('ide_profile_twitter_url', get_user_meta($profile, 'twitter', true), $user); $fb_link = apply_filters('ide_profile_fb_url', get_user_meta($profile, 'facebook', true), $user); $google_link = apply_filters('ide_profile_google_url', get_user_meta($profile, 'google', true), $user); $website_link = apply_filters('ide_profile_website_url', $user->user_url, $user); ob_start(); do_action('ide_before_creator_profile'); $ob_before_cp = ob_get_contents(); ob_end_clean(); $content .= $ob_before_cp; ob_start(); do_action('ide_above_creator_info'); $ob_above_ci = ob_get_contents(); ob_end_clean(); $content .= $ob_above_ci; $content .= '<div class="ignitiondeck backer_profile">'; $content .= '<div class="backer_info">'; $content .= '<div class="backer_avatar">' . apply_filters('ide_profile_avatar', get_avatar($profile, 70)) . '</div>'; $content .= '<div class="backer_title"><h3>' . apply_filters('ide_creator_name', $name, $user) . '</h3>'; $content .= '<p>' . wpautop(apply_filters('ide_profile_description', $user->description, $user)) . '</p></div></div>'; ob_start(); do_action('ide_below_creator_info'); $ob_after_ci = ob_get_contents(); ob_end_clean(); $content .= $ob_after_ci; $creator_args = array('post_type' => 'ignition_product', 'post_status' => 'publish', 'author' => $profile, 'posts_per_page' => -1); $created_projects = apply_filters('id_creator_projects', get_posts(apply_filters('id_creator_args', $creator_args))); if (!empty($created_projects)) { $order_content = '<div class="cf"> </div><ul class="backer_projects">'; foreach ($created_projects as $created_project) { $project_id = get_post_meta($created_project->ID, 'ign_project_id', true); $project = new ID_Project($project_id); $the_project = $project->the_project(); if (!empty($the_project)) { $post_id = $created_project->ID; $deck = new Deck($project_id); $mini_deck = $deck->mini_deck(); $closed = $project->project_closed(); $successful = $mini_deck->successful; $url = get_permalink($post_id); $image = ID_Project::get_project_thumbnail($post_id, 'id_profile_image'); if (empty($image)) { $image = idcf_project_placeholder_image('thumb'); } ob_start(); do_action('ide_before_creator_item', $post_id); $ob_contenta = ob_get_contents(); ob_end_clean(); $order_content .= $ob_contenta; $order_content .= '<li class="backer_project_mini"><div class="backer_wrapper"><div class="inner_wrapper">'; ob_start(); do_action('ide_above_creator_item', $post_id); $ob_contentb = ob_get_contents(); ob_end_clean(); $order_content .= $ob_contentb; if (isset($image)) { $order_content .= '<a href="' . $url . '" class="backer_project_image" style="background-image: url(' . $image . ');"></a>'; } if ($mini_deck->end_type !== 'open') { $order_content .= '<div class="backers_days_left">' . (!$closed ? $mini_deck->days_left . ' ' . __('days to go', 'ignitiondeck') : ($successful ? __('Successful', 'ignitiondeck') : __('Ended', 'ignitiondeck'))) . '</div>'; } $order_content .= '<span class="backer_project_title"><a href="' . $url . '">' . get_the_title($post_id) . '</a></span>'; $order_content .= '<div class="backers_funded">' . $mini_deck->p_current_sale . ' ' . __('Raised', 'ignitiondeck') . '</div>'; $order_content .= '<a href="' . $url . '"><div class="backers_hover_content">'; $order_content .= '<span class="backer_project_text">' . stripslashes(html_entity_decode($project->short_description())) . '</span></div></a>'; ob_start(); do_action('ide_below_creator_item', $post_id); $ob_contentc = ob_get_contents(); ob_end_clean(); $order_content .= $ob_contentc; $order_content .= '</div></div></li>'; ob_start(); do_action('ide_after_creator_item', $post_id); $ob_contentd = ob_get_contents(); ob_end_clean(); $order_content .= $ob_contentd; } } $order_content .= '</ul>'; $order_count = count($created_projects); if (isset($order_count) && $order_count > 0) { $content .= '<div class="backer_data">'; ob_start(); do_action('ide_before_creator_data'); $before_creator_data = ob_get_contents(); ob_end_clean(); $content .= $before_creator_data; $content .= '<p class="backer_supported"><span class="order_count">' . $order_count . '</span> ' . __('Projects Created', 'ignitiondeck') . '</p>'; } else { $content .= '<div class="backer_data">'; } $content .= '<p class="backer_joined">' . __('Joined', 'ignitiondeck') . ' ' . date('n - j - Y', strtotime($user->user_registered)) . '</p>' . '<div class="id-backer-links">' . (!empty($website_link) ? '<a href="' . $website_link . '" class="website">' . __('Website', 'ignitiondeck') . '</a>' : '') . '' . (!empty($twitter_link) ? '<a href="' . $twitter_link . '" class="twitter">' . __('Twitter', 'ignitiondeck') . '</a>' : '') . (!empty($fb_link) ? '<a href="' . $fb_link . '" class="facebook">' . __('Facebook', 'ignitiondeck') . '</a>' : '') . (!empty($google_link) ? '<a href="' . $google_link . '" class="googleplus">' . __('Google Plus', 'ignitiondeck') . '</a>' : '') . '</div>'; ob_start(); do_action('ide_after_backer_data'); $after_backer_data = ob_get_contents(); ob_end_clean(); $content .= $after_backer_data; $content .= '</div>'; $content .= isset($order_content) ? $order_content : ''; $content .= '</div>'; } ob_start(); do_action('ide_after_creator_profile'); $ob_after_cp = ob_get_contents(); ob_end_clean(); $content .= $ob_after_cp; return $content; }