diff --git a/grandchild-functions.php b/grandchild-functions.php
new file mode 100644
index 0000000..732df2d
--- /dev/null
+++ b/grandchild-functions.php
@@ -0,0 +1,41 @@
+ __( 'Header - Image' ),
+ 'id' => 'header-image',
+ 'description' => __( 'Widgets in this area will be shown in the header.' ),
+ 'before_title' => '
',
+ 'after_title' => '
',
+ ) );
+*/
diff --git a/grandchild-scripts.js b/grandchild-scripts.js
new file mode 100644
index 0000000..a1f2680
--- /dev/null
+++ b/grandchild-scripts.js
@@ -0,0 +1,5 @@
+jQuery(document).ready(function() {
+
+ //alert('grandchild');
+
+});
diff --git a/grandchild-styles.css b/grandchild-styles.css
new file mode 100644
index 0000000..3493993
--- /dev/null
+++ b/grandchild-styles.css
@@ -0,0 +1,411 @@
+/* main background color */
+
+#content{
+ background-color:#EBEBEB;
+}
+
+/* main slider caption */
+.metaslider .caption{
+ width:1200px;
+ margin-left:auto;
+ margin-right:auto
+}
+
+/* main slider caption background color */
+.metaslider .caption-wrap{
+ background-color:rgba(19, 124, 201, .86)!important;
+ opacity:1!important
+}
+
+/* main slider space below */
+.home #content {
+ padding-top:0;
+ padding-bottom:0;
+}
+
+/* menu buttons */
+.navbar-default .navbar-nav > li > a{
+color:#2764A8
+}
+
+/* main tile images */
+body.home .panel-grid img{
+ border-top-left-radius:7px;
+ border-top-right-radius:7px;
+ width:100%;
+}
+
+/* main tile paragraphs */
+.home_p{
+ background-color:white;
+ border-radius:7px;
+ height:500px;
+ position:relative
+}
+
+ @media (min-width:767px) and (max-width: 991px) {
+ .home_p{ height:520px;
+ }
+ }
+
+/* padding around white boxes */
+.home_padding{
+padding:1em;
+}
+
+/* top bar shadows */
+.top_bar h3{
+background-color: #f1f1f1;
+ /* Fallback Color */
+ background-image: -webkit-gradient(linear, left top, left bottom, from(white), to(#f1f1f1)) !important;
+ /* Saf4+, Chrome */
+ background-image: -webkit-linear-gradient(top, white, #f1f1f1) !important;
+ /* Chrome 10+, Saf5.1+, iOS 5+ */
+ background-image: -moz-linear-gradient(top, white, #f1f1f1) !important;
+ /* FF3.6 */
+ background-image: -ms-linear-gradient(top, white, #f1f1f1) !important;
+ /* IE10 */
+ background-image: -o-linear-gradient(top, white, #f1f1f1) !important;
+ /* Opera 11.10+ */
+ background-image: linear-gradient(top, white, #f1f1f1) !important;
+ filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='white', EndColorStr='#f1f1f1') !important;
+ text-shadow: 0 1px 0 rgba(255, 255, 255, 0.8);
+}
+
+
+/* main buttons visit site */
+
+#page #content .widget .btn-default{
+ color:white!important;
+}
+
+#page #content .widget .btn-default:hover{
+ color:white!important;
+ border-color:white!important
+}
+
+.btn.btn-default.red{
+ background:#f8533b!important;
+}
+
+.btn.btn-default.green{
+ background:#5cb85c!important;
+}
+
+.btn.btn-default.darkblue{
+ background:#0e7ccc!important;
+}
+
+.btn.btn-default.lightblue{
+ background:#06b8be!important;
+}
+
+.btn.btn-default.yellow{
+ background:#f0ad4e!important;
+ border:1px solid #f0ad4e!important
+}
+
+.btn.btn-default.purple{
+ background:#9c1bc6!important;
+}
+
+.home_buttons .btn.btn-default{
+ position:absolute;
+ bottom:1.2em
+}
+
+.btn.btn-default{
+ text-shadow:0 0 0;
+}
+
+/* related resources + iss */
+#pg-6-3 .so-panel.widget.widget_nav_menu.panel-first-child.panel-last-child{
+ background-color: white;
+
+}
+
+/* home about iss */
+.so-panel.widget.widget_black-studio-tinymce.widget_black_studio_tinymce.panel-first-child.panel-last-child{
+ background-color:white
+}
+
+/* padding around boxes */
+/* related resources */
+.menu{
+ padding: 2em;
+}
+
+#pgc-6-4-0 .panel-grid-cell{ /* ---------------------- Try to avoid pgc-#-#-# because that's a dynamic page builder ID and could change if you rearrage things ---------------------*/
+ padding-top:2em;
+ padding-bottom:2em ;
+}
+
+/* background color of page */
+#content{
+ background-color:#F6F6F6
+}
+
+/* box around comments in contact form */
+.textarea.medium{
+ border:1px solid #CCCCCC
+}
+
+input[type="text"]{
+ border:1px solid #CCCCCC
+}
+
+.gfield_select{
+ border:1px solid #CCCCCC
+}
+
+/* submit button on contact form */
+#gform_submit_button_1.gform_button.button{
+ width: 150px!important;
+ border-radius: 5px;
+ color: white;
+ background-color: #3fa0f4;
+ border:1px solid #3fa0f4
+}
+
+.gform_button.button:hover{
+ background-color: #0d7ad9;
+ border:1px solid #0d7ad9
+}
+
+#gform_1{
+ border:1px solid #CCCCCC;
+ padding:2em;
+ border-radius:10px;
+ background-color: #f7f7f7;
+}
+
+/*padding on top of input form */
+#input_1_6.medium{
+ margin-top:2%;
+}
+
+h5{
+ font-size:16px;
+}
+
+/* media queries */
+
+@media screen and (max-width: 1199px) and (min-width: 990px){
+ .metaslider .caption{
+ width:970px;
+ }
+
+}
+
+@media screen and (max-width: 989px) and (min-width: 780px){
+ .metaslider .caption{
+ width:750px;
+ }
+
+}
+
+@media screen and (max-width: 779px){
+ .metaslider .caption{
+ width:655px;
+ }
+
+}
+
+/* staff images */
+
+@media (max-width: 500px){
+ .staff_image img{
+ display:block
+}
+
+
+/* =================================================== BRIAN ADDITIONS =================================================== */
+
+#content a {
+ color:#388ac3 !important;
+ text-decoration:none !important;
+}
+ #content a:hover {
+ text-decoration:underline !important;
+ }
+
+#content p {
+ line-height:1.54em!important;
+}
+
+#footers {
+ border-top:1px solid #ddd;
+}
+
+.dropdown-submenu > .dropdown-menu {
+ border-radius: 0 0 6px 6px !important;
+}
+
+body.home.page-template-page-blank h3.widget-title {
+ font-size: 13px !important;
+ text-shadow: 0 1px 0 rgba(255, 255, 255, 0.8);
+ padding:0.7em 15px;
+ border-bottom:1px solid #e5e5e5;
+}
+
+body.home #content .panel-grid .widget {
+ border:1px solid #e0e0e0;
+}
+
+body.home .widget.widget_black-studio-tinymce {
+ background-color:white !important;
+}
+
+body.home .widget.widget_rcpt {
+ background-color:white !important;
+ padding-bottom:10px !important;
+}
+
+body.home .rcpt_items {
+ padding-left: 15px;
+ padding-right: 15px;
+}
+
+body.home .textwidget {
+ padding-left:15px;
+ padding-right:15px;
+ padding-bottom:10px !important;
+}
+
+body.home .home_p .textwidget {
+ padding: 0 !important;
+}
+
+ @media (max-width:780px) {
+ body.home .home_p {
+ height:auto;
+ }
+ body.home .home_p .home_padding .btn.btn-default{
+ position:relative;
+ bottom:0;
+ }
+ }
+
+body.home .widget ul.menu {
+ padding-left: 15px!important;
+ padding-right: 15px!important;
+ padding-bottom:10px !important;
+}
+
+body.home #page #content .widget .btn-default {
+ text-shadow:none;
+ border-radius:5px !important;
+ box-shadow:none !important;
+}
+
+body.home #page #content .widget .btn-default.red {
+ border:1px solid #D83722 !important;
+}
+ body.home #page #content .widget .btn-default.red:hover {
+ background-color: #D83722 !important;
+ }
+
+body.home #page #content .widget .btn-default.green {
+ border:1px solid #42A342 !important;
+}
+ body.home #page #content .widget .btn-default.green:hover {
+ background-color: #42A342 !important;
+ }
+
+body.home #page #content .widget .btn-default.darkblue {
+ border:1px solid #0660A0 !important;
+}
+ body.home #page #content .widget .btn-default.darkblue:hover {
+ background-color: #0660A0 !important;
+ }
+
+body.home #page #content .widget .btn-default.lightblue {
+ border:1px solid #03A5A8 !important;
+}
+ body.home #page #content .widget .btn-default.lightblue:hover {
+ background-color: #03A5A8 !important;
+ }
+
+body.home #page #content .widget .btn-default.yellow {
+ border:1px solid #D39134 !important;
+}
+ body.home #page #content .widget .btn-default.yellow:hover {
+ background-color: #D39134 !important;
+ }
+
+body.home #page #content .widget .btn-default.purple {
+ border:1px solid #830FAA!important;
+}
+ body.home #page #content .widget .btn-default.purple:hover {
+ background-color: #830FAA!important;
+ }
+
+body.home .panel-grid:nth-child(1){
+ margin-bottom:0px!important;
+}
+ body.home .panel-grid:nth-child(1) .widget {
+ border-radius:0px !important;
+ }
+
+ body.home .panel-grid:nth-child(1) img {
+ border-radius:0px !important;
+ }
+
+body.home .panel-grid:nth-child(2){
+ margin-bottom:15px !important;
+}
+
+ body.home .panel-grid:nth-child(2) .widget {
+ border:none !important;
+ background-color:transparent !important;
+ }
+ body.home .panel-grid:nth-child(2) .widget-title {
+ margin-bottom:0px !important;
+ font-size:20px !important;
+ padding-left:0px !important;
+ border-bottom:none;
+ }
+ body.home .panel-grid:nth-child(2) .widget .textwidget {
+ display:none;
+ }
+
+
+body.home #content .panel-grid .widget {
+ background-color:white;
+}
+
+body.home .about-provost .btn {
+ margin-top:20px;
+}
+
+body.home .provost-office-text img {
+ float:left;
+ width:150px;
+ height:auto;
+ margin-right:13px;
+ margin-bottom:10px;
+
+}
+
+.body.home .youtube .textwidget {
+ padding:0 !important;
+ background-color:transparent !important;
+}
+
+ body.home .provost-office-text span {
+ line-height:1.75em;
+ }
+
+.home_padding strong {
+ font-size: 16px;
+}
+
+body.home .article-date {
+ font-size:11px;
+ margin-bottom:15px;
+}
+
+body.home .glyphicon-new-window {
+ display:none;
+}
+
\ No newline at end of file
diff --git a/img/.DS_Store b/img/.DS_Store
new file mode 100644
index 0000000..5008ddf
Binary files /dev/null and b/img/.DS_Store differ
diff --git a/template-class.php b/template-class.php
new file mode 100644
index 0000000..f64c1ce
--- /dev/null
+++ b/template-class.php
@@ -0,0 +1,221 @@
+templates = array();
+ $this->plugin_locale = 'pte';
+
+ // Grab the translations for the plugin
+ add_action( 'init', array( $this, 'load_plugin_textdomain' ) );
+
+ // Add a filter to the page attributes metabox to inject our template into the page template cache.
+ add_filter('page_attributes_dropdown_pages_args', array( $this, 'register_project_templates' ) );
+
+ // Add a filter to the save post in order to inject out template into the page cache
+ add_filter('wp_insert_post_data', array( $this, 'register_project_templates' ) );
+
+ // Add a filter to the template include in order to determine if the page has our template assigned and return it's path
+ add_filter('template_include', array( $this, 'view_project_template') );
+
+ // Register hooks that are fired when the plugin is activated, deactivated, and uninstalled, respectively.
+ register_deactivation_hook( __FILE__, array( $this, 'deactivate' ) );
+
+ // Add your templates to this array.
+ $this->templates = array(
+ 'page-sample.php' => __( 'Sample', $this->plugin_slug ),
+ //'page-sample2.php' => __( 'Sample2', $this->plugin_slug ),
+ //'page-sample3.php' => __( 'Sample3', $this->plugin_slug ),
+ );
+
+ // adding support for theme templates to be merged and shown in dropdown
+ $templates = wp_get_theme()->get_page_templates();
+ $templates = array_merge( $templates, $this->templates );
+
+ } // end constructor
+
+ /**
+ * Load the plugin text domain for translation.
+ *
+ * @since 1.0.0
+ */
+ public function load_plugin_textdomain() {
+
+ $domain = $this->plugin_slug;
+ $locale = apply_filters( 'plugin_locale', get_locale(), $domain );
+
+ load_textdomain( $domain, trailingslashit( WP_LANG_DIR ) . $domain . '/' . $domain . '-' . $locale . '.mo' );
+ load_plugin_textdomain( $domain, FALSE, basename( dirname( __FILE__ ) ) . '/languages/' );
+
+ } // end load_plugin_textdomain
+
+ /**
+ * Adds our template to the pages cache in order to trick WordPress
+ * into thinking the template file exists where it doens't really exist.
+ *
+ * @param array $atts The attributes for the page attributes dropdown
+ * @return array $atts The attributes for the page attributes dropdown
+ * @verison 1.0.0
+ * @since 1.0.0
+ */
+ public function register_project_templates( $atts ) {
+
+ // Create the key used for the themes cache
+ $cache_key = 'page_templates-' . md5( get_theme_root() . '/' . get_stylesheet() );
+
+ // Retrieve the cache list. If it doesn't exist, or it's empty prepare an array
+ $templates = wp_cache_get( $cache_key, 'themes' );
+ if ( empty( $templates ) ) {
+ $templates = array();
+ } // end if
+
+ // Since we've updated the cache, we need to delete the old cache
+ wp_cache_delete( $cache_key , 'themes');
+
+ // Now add our template to the list of templates by merging our templates
+ // with the existing templates array from the cache.
+ $templates = array_merge( $templates, $this->templates );
+
+ // Add the modified cache to allow WordPress to pick it up for listing
+ // available templates
+ wp_cache_add( $cache_key, $templates, 'themes', 1800 );
+
+ return $atts;
+
+ } // end register_project_templates
+
+ /**
+ * Checks if the template is assigned to the page
+ *
+ * @version 1.0.0
+ * @since 1.0.0
+ */
+ public function view_project_template( $template ) {
+
+ global $post;
+
+ // If no posts found, return to
+ // avoid "Trying to get property of non-object" error
+ if ( !isset( $post ) ) return $template;
+
+ if ( ! isset( $this->templates[ get_post_meta( $post->ID, '_wp_page_template', true ) ] ) ) {
+ return $template;
+ } // end if
+
+ $file = plugin_dir_path( __FILE__ ) . 'templates/' . get_post_meta( $post->ID, '_wp_page_template', true );
+
+ // Just to be safe, we check if the file exist first
+ if( file_exists( $file ) ) {
+ return $file;
+ } // end if
+
+ return $template;
+
+ } // end view_project_template
+
+ /*--------------------------------------------*
+ * deactivate the plugin
+ *---------------------------------------------*/
+ static function deactivate( $network_wide ) {
+ foreach($this as $value) {
+ page-template-example::delete_template( $value );
+ }
+
+ } // end deactivate
+
+ /*--------------------------------------------*
+ * Delete Templates from Theme
+ *---------------------------------------------*/
+ public function delete_template( $filename ){
+ $theme_path = get_template_directory();
+ $template_path = $theme_path . '/' . $filename;
+ if( file_exists( $template_path ) ) {
+ unlink( $template_path );
+ }
+
+ // we should probably delete the old cache
+ wp_cache_delete( $cache_key , 'themes');
+ }
+
+ /**
+ * Retrieves and returns the slug of this plugin. This function should be called on an instance
+ * of the plugin outside of this class.
+ *
+ * @return string The plugin's slug used in the locale.
+ * @version 1.0.0
+ * @since 1.0.0
+ */
+ public function get_locale() {
+ return $this->plugin_slug;
+ } // end get_locale
+
+} // end class