diff --git a/wp-content/themes/currentorg/css/current-ltw-projects.css b/wp-content/themes/currentorg/css/current-ltw-projects.css
index 74bb7f7..96f3ff6 100644
--- a/wp-content/themes/currentorg/css/current-ltw-projects.css
+++ b/wp-content/themes/currentorg/css/current-ltw-projects.css
@@ -20,7 +20,7 @@
.current-ltw-shortcode .projects-list {
grid-area: list;
}
- .current-ltw-shortcode .projects-single-holder {
+ .current-ltw-shortcode .projects-single-layout {
grid-area: single;
}
}
@@ -39,8 +39,22 @@
.projects-list-item + .projects-list-item {
margin-top: 0.75rem;
}
-.projects-single-holder {
+.projects-single-layout {
border: 1px solid #343434;
padding: 0.75rem;
}
+.projects-single-layout .projects-single-holder .entry-content iframe,
+.projects-single-layout .projects-single-holder .entry-content img {
+ max-width: 100%;
+}
+.projects-single-layout .projects-single-holder .entry-content .project-tags {
+ margin-left: 0;
+}
+.projects-single-layout .projects-single-holder .entry-content label {
+ font-weight: bold;
+ display: inline;
+}
+.projects-single-layout .projects-single-holder .entry-content .project-specific-link {
+ display: block;
+}
/*# sourceMappingURL=css/current-ltw-projects.css.map */
\ No newline at end of file
diff --git a/wp-content/themes/currentorg/css/current-ltw-projects.css.map b/wp-content/themes/currentorg/css/current-ltw-projects.css.map
index 598e77c..b925236 100644
--- a/wp-content/themes/currentorg/css/current-ltw-projects.css.map
+++ b/wp-content/themes/currentorg/css/current-ltw-projects.css.map
@@ -1 +1 @@
-{"version":3,"sources":["less/current-ltw-projects.less"],"names":[],"mappings":";;;AAKA;EACC,gBAAA;;AAEA;EACC,QAA4B;IAA5B;MACC,aAAA;MACA,8BAAA;MACA,qBACC,gBACA,aAFD;MAIA,gBAAA;MACA,WAAA;;;EATF,sBAWC;IACC,iBAAA;;EAZF,sBAcC;IACC,eAAA;;EAfF,sBAiBC;IACC,iBAAA;;;AAKH;EACC,iBAAA;EACA,gCAAA;;AAED;EACC,yBAAA;EACA,gBAAA;;AAED;EACC,yBAAA;EACA,gBAAA;;AACA,mBAAE;EACD,mBAAA;;AAGF;EACC,yBAAA;EACA,gBAAA","sourcesContent":["@import \"vars.less\";\n\n// this sets common values for a lot of padding and margins in this file\n@common-whitespace: 1.5rem;\n\n.current-ltw-shortcode {\n\tmargin: @common-whitespace 0;\n\n\t@supports( display: grid ) {\n\t\t@media ( min-width: 771px ) {\n\t\t\tdisplay: grid;\n\t\t\tgrid-template-columns: 5fr 7fr;\n\t\t\tgrid-template-areas:\n\t\t\t\t\"search search\"\n\t\t\t\t\"list single\"\n\t\t\t;\n\t\t\tgrid-gap: @common-whitespace;\n\t\t\tgap: @common-whitespace;\n\t\t}\n\t\t.projects-search-form {\n\t\t\tgrid-area: search;\n\t\t}\n\t\t.projects-list {\n\t\t\tgrid-area: list;\n\t\t}\n\t\t.projects-single-holder {\n\t\t\tgrid-area: single;\n\t\t}\n\t}\n}\n\n.projects-search-form {\n\tpadding: @common-whitespace 0;\n\tborder-bottom: 1px solid @grey-d;\n}\n.projects-list {\n\tborder: 1px solid @grey-d;\n\tpadding: @common-whitespace * 0.5;\n}\n.projects-list-item {\n\tborder: 1px solid @grey-d;\n\tpadding: @common-whitespace * 0.5;\n\t& + .projects-list-item {\n\t\tmargin-top: @common-whitespace * 0.5;\n\t}\n}\n.projects-single-holder {\n\tborder: 1px solid @grey-d;\n\tpadding: @common-whitespace * 0.5;\n}\n"]}
\ No newline at end of file
+{"version":3,"sources":["less/current-ltw-projects.less"],"names":[],"mappings":";;;AAKA;EACC,gBAAA;;AAEA;EACC,QAA4B;IAA5B;MACC,aAAA;MACA,8BAAA;MACA,qBACC,gBACA,aAFD;MAIA,gBAAA;MACA,WAAA;;;EATF,sBAWC;IACC,iBAAA;;EAZF,sBAcC;IACC,eAAA;;EAfF,sBAiBC;IACC,iBAAA;;;AAKH;EACC,iBAAA;EACA,gCAAA;;AAED;EACC,yBAAA;EACA,gBAAA;;AAED;EACC,yBAAA;EACA,gBAAA;;AACA,mBAAE;EACD,mBAAA;;AAGF;EACC,yBAAA;EACA,gBAAA;;AAFD,uBAGC,wBACC,eACC;AALH,uBAGC,wBACC,eAEC;EACC,eAAA;;AAPJ,uBAGC,wBACC,eAKC;EACC,cAAA;;AAVJ,uBAGC,wBACC,eAQC;EACC,iBAAA;EACA,eAAA;;AAdJ,uBAGC,wBACC,eAYC;EACC,cAAA","sourcesContent":["@import \"vars.less\";\n\n// this sets common values for a lot of padding and margins in this file\n@common-whitespace: 1.5rem;\n\n.current-ltw-shortcode {\n\tmargin: @common-whitespace 0;\n\n\t@supports( display: grid ) {\n\t\t@media ( min-width: 771px ) {\n\t\t\tdisplay: grid;\n\t\t\tgrid-template-columns: 5fr 7fr;\n\t\t\tgrid-template-areas:\n\t\t\t\t\"search search\"\n\t\t\t\t\"list single\"\n\t\t\t;\n\t\t\tgrid-gap: @common-whitespace;\n\t\t\tgap: @common-whitespace;\n\t\t}\n\t\t.projects-search-form {\n\t\t\tgrid-area: search;\n\t\t}\n\t\t.projects-list {\n\t\t\tgrid-area: list;\n\t\t}\n\t\t.projects-single-layout {\n\t\t\tgrid-area: single;\n\t\t}\n\t}\n}\n\n.projects-search-form {\n\tpadding: @common-whitespace 0;\n\tborder-bottom: 1px solid @grey-d;\n}\n.projects-list {\n\tborder: 1px solid @grey-d;\n\tpadding: @common-whitespace * 0.5;\n}\n.projects-list-item {\n\tborder: 1px solid @grey-d;\n\tpadding: @common-whitespace * 0.5;\n\t& + .projects-list-item {\n\t\tmargin-top: @common-whitespace * 0.5;\n\t}\n}\n.projects-single-layout {\n\tborder: 1px solid @grey-d;\n\tpadding: @common-whitespace * 0.5;\n\t.projects-single-holder {\n\t\t.entry-content {\n\t\t\tiframe,\n\t\t\timg {\n\t\t\t\tmax-width: 100%;\n\t\t\t}\n\t\t\t.project-tags {\n\t\t\t\tmargin-left: 0;\n\t\t\t}\n\t\t\tlabel {\n\t\t\t\tfont-weight: bold;\n\t\t\t\tdisplay: inline;\n\t\t\t}\n\t\t\t.project-specific-link {\n\t\t\t\tdisplay: block;\n\t\t\t}\n\t\t}\n\t}\n}\n"]}
\ No newline at end of file
diff --git a/wp-content/themes/currentorg/css/current-ltw-projects.min.css b/wp-content/themes/currentorg/css/current-ltw-projects.min.css
index 5ceefa4..9b1bfa1 100644
--- a/wp-content/themes/currentorg/css/current-ltw-projects.min.css
+++ b/wp-content/themes/currentorg/css/current-ltw-projects.min.css
@@ -1 +1 @@
-.current-ltw-shortcode{margin:1.5rem 0}@supports (display:grid){@media (min-width:771px){.current-ltw-shortcode{display:grid;grid-template-columns:5fr 7fr;grid-template-areas:"search search" "list single";grid-gap:1.5rem;gap:1.5rem}}.current-ltw-shortcode .projects-search-form{grid-area:search}.current-ltw-shortcode .projects-list{grid-area:list}.current-ltw-shortcode .projects-single-holder{grid-area:single}}.projects-search-form{padding:1.5rem 0;border-bottom:1px solid #343434}.projects-list{border:1px solid #343434;padding:.75rem}.projects-list-item{border:1px solid #343434;padding:.75rem}.projects-list-item+.projects-list-item{margin-top:.75rem}.projects-single-holder{border:1px solid #343434;padding:.75rem}
\ No newline at end of file
+.current-ltw-shortcode{margin:1.5rem 0}@supports (display:grid){@media (min-width:771px){.current-ltw-shortcode{display:grid;grid-template-columns:5fr 7fr;grid-template-areas:"search search" "list single";grid-gap:1.5rem;gap:1.5rem}}.current-ltw-shortcode .projects-search-form{grid-area:search}.current-ltw-shortcode .projects-list{grid-area:list}.current-ltw-shortcode .projects-single-layout{grid-area:single}}.projects-search-form{padding:1.5rem 0;border-bottom:1px solid #343434}.projects-list{border:1px solid #343434;padding:.75rem}.projects-list-item{border:1px solid #343434;padding:.75rem}.projects-list-item+.projects-list-item{margin-top:.75rem}.projects-single-layout{border:1px solid #343434;padding:.75rem}.projects-single-layout .projects-single-holder .entry-content iframe,.projects-single-layout .projects-single-holder .entry-content img{max-width:100%}.projects-single-layout .projects-single-holder .entry-content .project-tags{margin-left:0}.projects-single-layout .projects-single-holder .entry-content label{font-weight:700;display:inline}.projects-single-layout .projects-single-holder .entry-content .project-specific-link{display:block}
\ No newline at end of file
diff --git a/wp-content/themes/currentorg/functions.php b/wp-content/themes/currentorg/functions.php
index a3268bf..a5d22c6 100644
--- a/wp-content/themes/currentorg/functions.php
+++ b/wp-content/themes/currentorg/functions.php
@@ -409,4 +409,4 @@ function largo_excerpt( $the_post = null, $sentence_count = 5, $use_more = null,
return $output;
}
-}
+}
\ No newline at end of file
diff --git a/wp-content/themes/currentorg/inc/shortcode-current-ltw-projects.php b/wp-content/themes/currentorg/inc/shortcode-current-ltw-projects.php
index 1826ec4..a1a5dc4 100644
--- a/wp-content/themes/currentorg/inc/shortcode-current-ltw-projects.php
+++ b/wp-content/themes/currentorg/inc/shortcode-current-ltw-projects.php
@@ -86,13 +86,58 @@ function current_ltw_projects_assets() {
wp_register_script(
'current-ltw-script',
get_stylesheet_directory_uri() . '/js/current-ltw-projects.js',
- array(),
+ array( 'jquery' ),
filemtime( get_stylesheet_directory() . '/js/current-ltw-projects.js' ),
true
);
+ wp_localize_script(
+ 'current-ltw-script',
+ 'ajax_object',
+ array( 'ajax_url' => admin_url( 'admin-ajax.php' ) )
+ );
}
add_action( 'wp_enqueue_scripts', 'current_ltw_projects_assets' );
+/**
+ * Load a single project when it is selected from the project list
+ */
+function current_ltw_projects_load_single_project_callback() {
+
+ // make sure post id is set and actually a valid post
+ if( isset( $_GET['post_id'] ) && get_post_status( $_GET['post_id'] ) ) {
+
+ $post_id = $_GET["post_id"];
+
+ // set up basic args for our query to grab the post
+ $single_project_args = array(
+ 'post_type' => 'projects',
+ 'p' => abs( intval( $post_id ) )
+ );
+
+ $single_project_query = new WP_Query( $single_project_args );
+
+ if( $single_project_query->have_posts() ){
+
+ while ( $single_project_query->have_posts() ) : $single_project_query->the_post();
+
+ // show singular project with the project single template partial
+ get_template_part( 'partials/projects', 'single-held' );
+
+ endwhile;
+
+ }
+
+ } else {
+
+ echo '
The project could not be found.
';
+
+ }
+
+ wp_die();
+
+}
+add_action( 'wp_ajax_load_more_post', 'current_ltw_projects_load_single_project_callback' );
+add_action( 'wp_ajax_nopriv_load_more_post', 'current_ltw_projects_load_single_project_callback' );
/**
* Filter queries for the projects post type
*/
diff --git a/wp-content/themes/currentorg/js/current-ltw-projects.js b/wp-content/themes/currentorg/js/current-ltw-projects.js
index 8b13789..3d07d6a 100644
--- a/wp-content/themes/currentorg/js/current-ltw-projects.js
+++ b/wp-content/themes/currentorg/js/current-ltw-projects.js
@@ -1 +1,54 @@
+var $ = jQuery;
+$(document).ready(function(){
+ current_ltw_projects_load_param_project_if_exists();
+
+ $( ".projects-list article .entry-title a" ).click(function(e){
+ e.preventDefault();
+ var post_id = $(this).data("post-id");
+ current_ltw_projects_load_single_project(post_id);
+ });
+
+});
+
+/**
+ * Function to load the single project partial for whatever project
+ * is provided.
+ *
+ * @param int post_id The id of the project we want to load
+ */
+function current_ltw_projects_load_single_project( post_id ) {
+
+ // give a reassuring "loading" notice
+ $(".projects-single-holder").html("Loading project...");
+
+ // actually load the single project
+ $(".projects-single-holder").load(ajax_object.ajax_url+"?action=load_more_post&post_id="+post_id);
+
+ // return and let's be happy
+ return;
+
+}
+
+/**
+ * Fires on page load to check if a post_id query param is set
+ * If it is set, attemps to load the specified project by the ID given
+ */
+function current_ltw_projects_load_param_project_if_exists() {
+
+ // find all current query params
+ var get_url_params = new URLSearchParams(window.location.search);
+
+ // if the post id query param exists, let's use it
+ if(get_url_params.get('project_id') || Number.isInteger(get_url_params.get('project_id'))) {
+
+ var post_id = get_url_params.get('project_id');
+
+ // actually try and load the project
+ current_ltw_projects_load_single_project( post_id );
+
+ return;
+
+ }
+
+}
\ No newline at end of file
diff --git a/wp-content/themes/currentorg/less/current-ltw-projects.less b/wp-content/themes/currentorg/less/current-ltw-projects.less
index bd37ac3..88f9799 100644
--- a/wp-content/themes/currentorg/less/current-ltw-projects.less
+++ b/wp-content/themes/currentorg/less/current-ltw-projects.less
@@ -23,7 +23,7 @@
.projects-list {
grid-area: list;
}
- .projects-single-holder {
+ .projects-single-layout {
grid-area: single;
}
}
@@ -44,7 +44,25 @@
margin-top: @common-whitespace * 0.5;
}
}
-.projects-single-holder {
+.projects-single-layout {
border: 1px solid @grey-d;
padding: @common-whitespace * 0.5;
+ .projects-single-holder {
+ .entry-content {
+ iframe,
+ img {
+ max-width: 100%;
+ }
+ .project-tags {
+ margin-left: 0;
+ }
+ label {
+ font-weight: bold;
+ display: inline;
+ }
+ .project-specific-link {
+ display: block;
+ }
+ }
+ }
}
diff --git a/wp-content/themes/currentorg/partials/content-projects-list-item.php b/wp-content/themes/currentorg/partials/content-projects-list-item.php
index 16fb237..7fcfc4f 100644
--- a/wp-content/themes/currentorg/partials/content-projects-list-item.php
+++ b/wp-content/themes/currentorg/partials/content-projects-list-item.php
@@ -31,6 +31,7 @@
>
';
if ( largo_has_categories_or_tags() ) {
@@ -43,7 +44,7 @@
?>
-
+
$post->ID,
+ 'hero_class' => largo_hero_class( $post->ID, FALSE ),
+
+ // only used to determine the existence of a youtube_url
+ 'values' => get_post_custom( $post->ID ),
+
+ // this should be filtered in the event of a term-specific archive
+ 'featured' => false,
+
+ // $show_thumbnail does not control whether or not the thumbnail is displayed;
+ // it controls whether or not the thumbnail is displayed normally.
+ 'show_thumbnail' => TRUE,
+ 'show_excerpt' => TRUE,
+);
+
+$args = apply_filters( 'largo_content_partial_arguments', $args, get_queried_object() );
+
+extract( $args );
+
+$entry_classes = 'entry-content';
+
+$show_top_tag = largo_has_categories_or_tags();
+
+$custom = get_post_custom();
+
+if ( $featured ) {
+ $entry_classes .= ' span10 with-hero';
+ $show_thumbnail = FALSE;
+}
+if( ! empty ( $custom['project-video'][0] ) ) {
+ $show_youtube = TRUE;
+ $show_thumbnail = FALSE;
+}
+
+?>
+
+
+
+ ';
+
+ // we may need to redo these links as search query params instead
+ $status = get_the_terms( get_the_ID(), 'project-status' );
+ $categories = get_the_terms( get_the_ID(), 'project-category' );
+ // @todo this throws errors when no terms are found for this type of post
+ if ( is_array( $status ) && is_array( $categories ) ) {
+ $terms = array_merge( $status, $categories );
+ } else if ( is_array( $status ) ) {
+ $terms = $status;
+ } else if ( is_array( $categories ) ) {
+ $terms = $categories;
+ } else {
+ $terms = array();
+ }
+
+ if ( ! empty( $terms ) ) {
+ echo '';
+ }
+
+ // thumbnail or video
+ if ( $show_thumbnail ) {
+ echo '';
+ } else if( $show_youtube && wp_oembed_get( $custom['project-video'][0] ) ) {
+ echo wp_oembed_get( $custom['project-video'][0] );
+ }
+
+ // organization
+ if ( ! empty( $custom['project-organization'][0] ) ) {
+ printf(
+ '
+ %2$s
',
+ __( 'Organization', 'current-ltw-projects' ),
+ esc_html( $custom['project-organization'][0] )
+ );
+ }
+
+ // year submitted
+ printf(
+ '
+ %2$s
',
+ __( 'Year Submitted', 'current-ltw-projects' ),
+ get_the_date( 'Y' )
+ );
+
+ // type of org
+ $org_types = get_the_terms( get_the_ID(), 'project-org-type' );
+ if ( ! empty( $org_types ) ) {
+ $delimiter = ', ';
+ $org_types_count = count( $org_types );
+ $org_type_index = 0;
+ _e( '', 'current-ltw-projects' );
+ foreach ( $org_types as $org_type ) {
+ $org_type_index++;
+ printf(
+ '
%4$s',
+ esc_attr( $org_type->taxonomy ),
+ esc_attr( $org_type->slug ),
+ // @todo: make this be a link that triggers the search filter for this term
+ get_term_link( $org_type ),
+ esc_html( $org_type->name )
+ );
+ if( $org_type_index != $org_types_count ){
+ echo '
' . $delimiter . '';
+ }
+ }
+ echo '
';
+ }
+
+ // contact name and email
+ if ( ! empty( $custom['project-contact-name'][0] ) || ! empty( $custom['project-contact-email'] ) ) {
+ printf(
+ '',
+ __( 'Contact', 'current-ltw-projects' ),
+ );
+ }
+
+ if ( ! empty( $custom['project-contact-name'][0] ) ) {
+ printf(
+ '%1$s
',
+ esc_html( $custom['project-contact-name'][0] )
+ );
+ }
+
+ if ( ! empty( $custom['project-contact-email'][0] ) ) {
+ printf(
+ '%1$s',
+ esc_html( $custom['project-contact-email'][0] )
+ );
+ }
+
+ // tell your story / main content
+ the_content();
+
+ // project revenue
+ if ( ! empty( $custom['project-revenue'][0] ) ) {
+ printf(
+ '%1$s
',
+ esc_html( $custom['project-revenue'][0] )
+ );
+ }
+
+ // specific impact
+ if ( ! empty( $custom['project-impact'][0] ) ) {
+ printf(
+ '%1$s
',
+ esc_html( $custom['project-impact'][0] )
+ );
+ }
+
+ // primary url
+ if ( ! empty( $custom['project-link'][0] ) ) {
+ printf(
+ '
+ %2$s',
+ __( 'Project Specific Link', 'current-ltw-projects' ),
+ esc_html( $custom['project-link'][0] )
+ );
+ }
+
+ ?>
+
+
\ No newline at end of file
diff --git a/wp-content/themes/currentorg/partials/projects-single-holder.php b/wp-content/themes/currentorg/partials/projects-single-holder.php
index d212c15..c864f09 100644
--- a/wp-content/themes/currentorg/partials/projects-single-holder.php
+++ b/wp-content/themes/currentorg/partials/projects-single-holder.php
@@ -1,3 +1,6 @@
-
-
Single project goes here.
+