Whoops \ Exception \ ErrorException (E_NOTICE)
Undefined property: App\Author::$linkUrl Whoops\Exception\ErrorException thrown with message "Undefined property: App\Author::$linkUrl" Stacktrace: #8 Whoops\Exception\ErrorException in /home/forge/ikeepsafe.org/public/content/themes/ikeepsafe/views/blog/post-author.php:13 #7 Whoops\Run:handleError in /home/forge/ikeepsafe.org/public/content/themes/ikeepsafe/views/blog/post-author.php:13 #6 include in /home/forge/ikeepsafe.org/vendor/flypress/scaffold/src/Support/BasePost.php:182 #5 Flypress\Support\BasePost:view in /home/forge/ikeepsafe.org/public/content/themes/ikeepsafe/views/blog/post.php:36 #4 include in /home/forge/ikeepsafe.org/vendor/flypress/scaffold/src/Support/BasePost.php:182 #3 Flypress\Support\BasePost:view in /home/forge/ikeepsafe.org/public/content/themes/ikeepsafe/single.php:19 #2 include in /home/forge/ikeepsafe.org/public/wp/wp-includes/template-loader.php:106 #1 require_once in /home/forge/ikeepsafe.org/public/wp/wp-blog-header.php:19 #0 require in /home/forge/ikeepsafe.org/public/index.php:7
Stack frames (9)
8
Whoops\Exception\ErrorException
/public/content/themes/ikeepsafe/views/blog/post-author.php13
7
Whoops\Run handleError
/public/content/themes/ikeepsafe/views/blog/post-author.php13
6
include
/vendor/flypress/scaffold/src/Support/BasePost.php182
5
Flypress\Support\BasePost view
/public/content/themes/ikeepsafe/views/blog/post.php36
4
include
/vendor/flypress/scaffold/src/Support/BasePost.php182
3
Flypress\Support\BasePost view
/public/content/themes/ikeepsafe/single.php19
2
include
/public/wp/wp-includes/template-loader.php106
1
require_once
/public/wp/wp-blog-header.php19
0
require
/public/index.php7
/home/forge/ikeepsafe.org/public/content/themes/ikeepsafe/views/blog/post-author.php
<?php if( $model->author->bio ) : ?>
    <div class="post-author <?= $model->author->photo->classes ?>">
        <h4>About the Author :: <?= $model->author->name ?></h4>
 
        <div class="post-author-content">
            <?php if( $model->author->photo->image ) : ?>
                <div class="post-author-image">
                    <img src="<?= $model->author->photo->image ?>" alt="<?= $model->author->name ?>">
                </div>
            <?php endif ?>
 
            <div class="post-author-meta">
                <?php if( $model->author->linkUrl ) : ?>
                    <a href="<?= $model->author->linkUrl ?>" target="_blank"><?= $model->author->linkUrl ?></a>
                <?php endif ?>
 
                <div class="post-author-bio">
                    <?= $model->author->bio ?>
                </div>
            </div>
        </div>
    </div>
<?php endif ?>
 
Arguments
  1. "Undefined property: App\Author::$linkUrl"
    
/home/forge/ikeepsafe.org/public/content/themes/ikeepsafe/views/blog/post-author.php
<?php if( $model->author->bio ) : ?>
    <div class="post-author <?= $model->author->photo->classes ?>">
        <h4>About the Author :: <?= $model->author->name ?></h4>
 
        <div class="post-author-content">
            <?php if( $model->author->photo->image ) : ?>
                <div class="post-author-image">
                    <img src="<?= $model->author->photo->image ?>" alt="<?= $model->author->name ?>">
                </div>
            <?php endif ?>
 
            <div class="post-author-meta">
                <?php if( $model->author->linkUrl ) : ?>
                    <a href="<?= $model->author->linkUrl ?>" target="_blank"><?= $model->author->linkUrl ?></a>
                <?php endif ?>
 
                <div class="post-author-bio">
                    <?= $model->author->bio ?>
                </div>
            </div>
        </div>
    </div>
<?php endif ?>
 
/home/forge/ikeepsafe.org/vendor/flypress/scaffold/src/Support/BasePost.php
    public function setAttribute($name, $value = null)
    {
        $this->attributes[$name] = $value;
 
        return $this;
    }
 
    public function meta($key, $default = null)
    {
        return get_post_meta($this->id, $key, true) ?: $default;
    }
 
    public function view($path, $args = [])
    {
        $model = $this;
        $path = str_replace(['.php', '.'], ['', '/'], $path);
 
        if($args) extract($args);
 
        include locate_template("views/{$path}.php");
    }
 
    /**
     * Get all of the current attributes on the model.
     *
     * Adapted from Laravel's Eloquent model
     *
     * @copyright Taylor Otwell
     * @link https://github.com/laravel/framework/blob/v7.17.2/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php#L1147-L1157
     *
     * @return array
     */
    public function getAttributes()
    {
        return $this->attributes;
    }
 
    /**
     * Convert the model's attributes to an array.
     *
Arguments
  1. "/home/forge/ikeepsafe.org/public/content/themes/ikeepsafe/views/blog/post-author.php"
    
/home/forge/ikeepsafe.org/public/content/themes/ikeepsafe/views/blog/post.php
            <a class="a2a_button_facebook post-sharing-item post-sharing-facebook"><i class="fa fa-facebook"></i></a>
            <a class="a2a_button_twitter post-sharing-item post-sharing-twitter"><i class="fa fa-twitter"></i></a>
            <a class="a2a_button_linkedin post-sharing-item post-sharing-linkedin"><i class="fa fa-linkedin"></i></a>
        </div>
 
        <hr class="standard">
 
        <div class="post-content">
            <?= apply_filters('the_content', $model->content) ?>
 
            <div class="post-footer">
                <div class="a2a_kit a2a_kit_size_32 a2a_default_style post-sharing" data-a2a-url="<?= $model->url ?>" data-a2a-title="<?= $model->title ?>">
                    <span class="post-sharing-label">Share:</span>
                    <a class="a2a_button_facebook post-sharing-item post-sharing-facebook"><i class="fa fa-facebook"></i></a>
                    <a class="a2a_button_twitter post-sharing-item post-sharing-twitter"><i class="fa fa-twitter"></i></a>
                    <a class="a2a_button_linkedin post-sharing-item post-sharing-linkedin"><i class="fa fa-linkedin"></i></a>
                </div>
            </div>
 
            <?php $model->view('blog.post-author'); ?>
        </div>
    </div>
 
    <?php wp_list_comments() ?>
</article>
 
<script async src="https://static.addtoany.com/menu/page.js"></script>
 
/home/forge/ikeepsafe.org/vendor/flypress/scaffold/src/Support/BasePost.php
    public function setAttribute($name, $value = null)
    {
        $this->attributes[$name] = $value;
 
        return $this;
    }
 
    public function meta($key, $default = null)
    {
        return get_post_meta($this->id, $key, true) ?: $default;
    }
 
    public function view($path, $args = [])
    {
        $model = $this;
        $path = str_replace(['.php', '.'], ['', '/'], $path);
 
        if($args) extract($args);
 
        include locate_template("views/{$path}.php");
    }
 
    /**
     * Get all of the current attributes on the model.
     *
     * Adapted from Laravel's Eloquent model
     *
     * @copyright Taylor Otwell
     * @link https://github.com/laravel/framework/blob/v7.17.2/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php#L1147-L1157
     *
     * @return array
     */
    public function getAttributes()
    {
        return $this->attributes;
    }
 
    /**
     * Convert the model's attributes to an array.
     *
Arguments
  1. "/home/forge/ikeepsafe.org/public/content/themes/ikeepsafe/views/blog/post.php"
    
/home/forge/ikeepsafe.org/public/content/themes/ikeepsafe/single.php
<?php
/**
 * Single blog post template
 */
 
$model = new App\Page(get_option('page_for_posts'));
 
get_header();
 
$model->view('page.hero');
$model->view('page.bump');
?>
 
<div id="blog-wrapper" class="wrapper">
    <div id="blog-list">
        <?php while( have_posts() ) : the_post() ?>
            <?php
            $article = new \App\Post($post->ID);
            $article->view('blog.post');
            ?>
        <?php endwhile ?>
 
        <div class="blog-pagination">
            <?= paginate_links() ?>
        </div>
    </div>
 
    <?php get_sidebar() ?>
</div>
 
<?php get_footer() ?>
 
/home/forge/ikeepsafe.org/public/wp/wp-includes/template-loader.php
            }
 
            break;
        }
    }
 
    if ( ! $template ) {
        $template = get_index_template();
    }
 
    /**
     * Filters the path of the current template before including it.
     *
     * @since 3.0.0
     *
     * @param string $template The path of the template to include.
     */
    $template = apply_filters( 'template_include', $template );
    if ( $template ) {
        include $template;
    } elseif ( current_user_can( 'switch_themes' ) ) {
        $theme = wp_get_theme();
        if ( $theme->errors() ) {
            wp_die( $theme->errors() );
        }
    }
    return;
}
 
Arguments
  1. "/home/forge/ikeepsafe.org/public/content/themes/ikeepsafe/single.php"
    
/home/forge/ikeepsafe.org/public/wp/wp-blog-header.php
<?php
/**
 * Loads the WordPress environment and template.
 *
 * @package WordPress
 */
 
if ( ! isset( $wp_did_header ) ) {
 
    $wp_did_header = true;
 
    // Load the WordPress library.
    require_once __DIR__ . '/wp-load.php';
 
    // Set up the WordPress query.
    wp();
 
    // Load the theme template.
    require_once ABSPATH . WPINC . '/template-loader.php';
 
}
 
Arguments
  1. "/home/forge/ikeepsafe.org/public/wp/wp-includes/template-loader.php"
    
/home/forge/ikeepsafe.org/public/index.php
<?php
/**
 * WordPress entrypoint
 */
 
define('WP_USE_THEMES', true);
require __DIR__ . '/wp/wp-blog-header.php';
 
Arguments
  1. "/home/forge/ikeepsafe.org/public/wp/wp-blog-header.php"
    

Environment & details:

Key Value
query_vars
array:2 [
  "page" => ""
  "name" => "protecting-kids-privacy-in-the-classroom-and-beyond"
]
query_string
"name=protecting-kids-privacy-in-the-classroom-and-beyond"
request
"protecting-kids-privacy-in-the-classroom-and-beyond"
matched_rule
"([^/]+)(?:/([0-9]+))?/?$"
matched_query
"name=protecting-kids-privacy-in-the-classroom-and-beyond&page="
did_permalink
true
Key Value
query
array:2 [
  "page" => ""
  "name" => "protecting-kids-privacy-in-the-classroom-and-beyond"
]
query_vars
array:64 [
  "page" => 0
  "name" => "protecting-kids-privacy-in-the-classroom-and-beyond"
  "error" => ""
  "m" => ""
  "p" => 0
  "post_parent" => ""
  "subpost" => ""
  "subpost_id" => ""
  "attachment" => ""
  "attachment_id" => 0
  "pagename" => ""
  "page_id" => 0
  "second" => ""
  "minute" => ""
  "hour" => ""
  "day" => 0
  "monthnum" => 0
  "year" => 0
  "w" => 0
  "category_name" => ""
  "tag" => ""
  "cat" => ""
  "tag_id" => ""
  "author" => ""
  "author_name" => ""
  "feed" => ""
  "tb" => ""
  "paged" => 0
  "meta_key" => ""
  "meta_value" => ""
  "preview" => ""
  "s" => ""
  "sentence" => ""
  "title" => ""
  "fields" => ""
  "menu_order" => ""
  "embed" => ""
  "category__in" => []
  "category__not_in" => []
  "category__and" => []
  "post__in" => []
  "post__not_in" => []
  "post_name__in" => []
  "tag__in" => []
  "tag__not_in" => []
  "tag__and" => []
  "tag_slug__in" => []
  "tag_slug__and" => []
  "post_parent__in" => []
  "post_parent__not_in" => []
  "author__in" => []
  "author__not_in" => []
  "post_type" => array:3 [
    0 => "post"
    1 => "page"
    2 => "landing_page"
  ]
  "ignore_sticky_posts" => false
  "suppress_filters" => false
  "cache_results" => true
  "update_post_term_cache" => true
  "lazy_load_term_meta" => true
  "update_post_meta_cache" => true
  "posts_per_page" => 10
  "nopaging" => false
  "comments_per_page" => "50"
  "no_found_rows" => false
  "order" => "DESC"
]
meta_query
WP_Meta_Query {#6657}
queried_object
WP_Post {#6650}
queried_object_id
17847
request
"SELECT   fwwp_posts.* FROM fwwp_posts  WHERE 1=1  AND fwwp_posts.post_name = 'protecting-kids-privacy-in-the-classroom-and-beyond' AND fwwp_posts.post_type IN ('post', 'page', 'landing_page')  ORDER BY fwwp_posts.post_date DESC "
post_count
1
in_the_loop
true
current_comment
-1
found_posts
1
is_single
true
is_singular
true
Key Value
ID
17847
post_author
"10"
post_date
"2020-05-20 00:41:00"
post_date_gmt
"2020-05-20 00:41:00"
post_content
"""
Educational technologies are always changing and this poses a great challenge to parents and educators as our main interest is to keep children safe but encourage the technology we think shall best support our young learners. The effective and cautious use of data can improve student’s’ school experience. It can ensure that each student is receiving the personalized instruction they rightly deserve.\n
\n
But there are challenges in maintaining a safe environment for children when using educational software. It is imperative that parents are informed and involved in the decisions to allow their children to have accounts at educational websites. Reading Terms of Service, while tedious and uninspiring, is important. Bill Fitzgerald has a great primer on how to <a href="http://funnymonkey.com/blog/triaging-privacy-policies-and-terms-service" target="_blank" rel="noopener noreferrer">“triage” Terms of Service and Privacy policies.</a> We must continually work at improving best practices and helping parents, educators and school districts understand their rights as digital citizens. We need a system that encourages and supports parents and students to be advocates for their privacy. For in their educational careers students will trip, fall and get up – and they must know that no one will punish them for this. We must build bridges of trust between parents, educators and ed-tech companies. We all need to be smart and read terms of service and privacy policies and decide whether they make sense, comply with <a href="https://www.youtube.com/watch?v=cODKB9fApXk" target="_blank" rel="noopener noreferrer">COPPA</a> and work for our children.\n
\n
So what works for our children? Recently, a class of 5th graders wrote persuasive essays and one of the lines (amongst the many brilliant ones) was “Kids have brains.” The topic – “Should 10 – 11 year old kids have a Facebook account?” I was fortunate to be invited to their class to talk about Facebook, online safety and what they thought of their privacy. Kids can be more perceptive than we give them credit for, and in this conversation I learned that they are very much aware of how their information can be used.\n
\n
Most kids did not think it was ok for them to have a Facebook account. Some worried about how safe it was while others didn’t want their information out “there” forever. Some said they should be allowed to have an account but had strong feelings about their parents helping them navigate the online world. Certainly eye opening. Others didn’t think adults cared about their privacy. They were surprised to know of the laws passed and debates taking place around the country. But the majority agreed that it is important for the right people to know information about them as students. As one student said “it’s useful if my teacher next year knows about me and how I learn because then they can help me.” Kids get it but they want a voice in the decision making process.\n
\n
Protecting student data and privacy is a challenge. Let’s be smart and work together; we have an opportunity to shift the conversation with students at the center of the discussion. It is the only way to protect kids. We can’t afford not to do so.
"""
post_title
"Protecting kids' privacy in the classroom and beyond"
post_excerpt
""
post_status
"publish"
comment_status
"open"
ping_status
"open"
post_password
""
post_name
"protecting-kids-privacy-in-the-classroom-and-beyond"
to_ping
""
pinged
""
post_modified
"2020-05-20 16:15:29"
post_modified_gmt
"2020-05-20 16:15:29"
post_content_filtered
""
post_parent
0
guid
"http://archive.ikeepsafe.org/?p=17847"
menu_order
0
post_type
"post"
post_mime_type
""
comment_count
"0"
filter
"raw"
empty
empty
empty
empty
empty
Key Value
SERVER_SOFTWARE
"nginx/1.11.5"
REQUEST_URI
"/protecting-kids-privacy-in-the-classroom-and-beyond/"
USER
"forge"
HOME
"/home/forge"
HTTP_CONNECTION
"Keep-Alive"
HTTP_HOST
"ikeepsafe.org"
HTTP_ACCEPT_ENCODING
"br,gzip"
HTTP_IF_MODIFIED_SINCE
"Wed, 05 Aug 2020 18:43:04 GMT"
HTTP_ACCEPT_LANGUAGE
"en-US,en;q=0.5"
HTTP_ACCEPT
"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
HTTP_USER_AGENT
"CCBot/2.0 (https://commoncrawl.org/faq/)"
REDIRECT_STATUS
"200"
HTTPS
"on"
SERVER_NAME
"ikeepsafe.org"
SERVER_PORT
"443"
SERVER_ADDR
"192.241.208.186"
REMOTE_PORT
"40452"
REMOTE_ADDR
"3.238.62.144"
GATEWAY_INTERFACE
"CGI/1.1"
SERVER_PROTOCOL
"HTTP/1.1"
DOCUMENT_ROOT
"/home/forge/ikeepsafe.org/public"
DOCUMENT_URI
"/index.php"
SCRIPT_NAME
"/index.php"
SCRIPT_FILENAME
"/home/forge/ikeepsafe.org/public/index.php"
CONTENT_LENGTH
""
CONTENT_TYPE
""
REQUEST_METHOD
"GET"
QUERY_STRING
""
FCGI_ROLE
"RESPONDER"
PHP_SELF
"/index.php"
REQUEST_TIME_FLOAT
1603283957.3991
REQUEST_TIME
1603283957
ENV
"production"
WP_DIR
"core"
CONTENT_DIR
"content"
DB_USER
"*****"
DB_HOST
"localhost"
DB_CHARSET
"utf8"
DB_TABLE_PREFIX
"fwwp_"
WP_ENV
"development"
DB_PASSWORD
"**************"
WP_HOME
"https://ikeepsafe.org"
DISALLOW_FILE_MODS
"false"
Key Value
ENV
"production"
WP_DIR
"core"
CONTENT_DIR
"content"
DB_USER
"*****"
DB_HOST
"localhost"
DB_CHARSET
"utf8"
DB_TABLE_PREFIX
"fwwp_"
WP_ENV
"development"
DB_PASSWORD
"**************"
WP_HOME
"https://ikeepsafe.org"
DISALLOW_FILE_MODS
"false"
0. Flypress\Exceptions\Handler\PrettyPageHandler