JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
fix loads of unset variable/index notices
authorJason Woofenden <jason@jasonwoof.com>
Tue, 26 May 2015 17:11:22 +0000 (13:11 -0400)
committerJason Woofenden <jason@jasonwoof.com>
Tue, 26 May 2015 17:11:22 +0000 (13:11 -0400)
encode.php
main.php
template.php

index e8d3d35..ab16a84 100644 (file)
@@ -379,10 +379,10 @@ function encode_options($selected, $options) {
 
        $out = '';
        foreach($options as $option) {
-               list($value, $display, $arg3) = $option;
+               list($value, $display) = $option;
                $out .= '<option';
 
-               if($arg3 == 'disabled') {
+               if(isset($option[2]) && $option[2] == 'disabled') {
                        $out .= ' disabled';
                } elseif(in_array($value, $selected)) {
                        $out .= ' selected';
index f5be944..3d4a751 100644 (file)
--- a/main.php
+++ b/main.php
@@ -121,12 +121,12 @@ function wfpl_main($dest = false) {
        }
 
        # Check for $GLOBALS['wfpl_template'] because it might have been set (or unset) by the php script.
-       if($GLOBALS['wfpl_template'] || $GLOBALS['wfpl_main_template']) {
-               if($GLOBALS['wfpl_main_template']) {
+       if(isset($GLOBALS['wfpl_template']) || isset($GLOBALS['wfpl_main_template'])) {
+               if(isset($GLOBALS['wfpl_main_template'])) {
                        # if there was a template for that page, and one for the whole
                        # site, copy all template sections that have been show()n to the
                        # site-wide template
-                       if($GLOBALS['wfpl_template']) {
+                       if(isset($GLOBALS['wfpl_template'])) {
                                $GLOBALS['wfpl_main_template']->merge($GLOBALS['wfpl_template']);
                        }
 
index 06d02f5..7539a19 100644 (file)
@@ -73,14 +73,14 @@ function &parse_template($string) {
                        if(count($args) == 1 and $args[0] == '}') $name = '';
                        else $name = array_shift($args);
 
-                       if(last($args) == '{') {  # open block
+                       if(count($args) && $args[count($args)-1] == '{') {  # open block
                                array_pop($args);  # drop '{'
                                $tem =& tem_push($tem);              # create a new sub-template
                                $tem['parent']['pieces'][] =& $tem;  # as a piece of the parent
                                $tem['name'] = $name;
                                $tem['pieces'] = array();
                                $tem['args'] = $args;
-                       } elseif(last($args) == '}') {  # close block
+                       } elseif(count($args) && $args[count($args)-1] == '}') {  # close block
                                array_pop($args);  # drop '}'
                                $cur = $tem['name'];
                                if($name && $name != $cur) {
@@ -100,10 +100,11 @@ function &parse_template($string) {
 function fill_template($template, &$data, &$context = NULL) {
        $context =& tem_push($context);
        $context['data'] =& $data;
+       $output = '';
 
        foreach($template['pieces'] as $tem) {
                if(is_string($tem)) $output .= $tem;
-               elseif($tem['pieces']) {  # sub-template
+               elseif(isset($tem['pieces'])) {  # sub-template
                        $rows =& tem_row_data($tem, $context);
                        $context['rows'] =& $rows;
                        foreach($rows as $key => &$row) {
@@ -185,19 +186,19 @@ function tem_data_scope($key, $context) {
                if(array_key_exists($key, $scope['data'])) {
                        return $scope;
                }
-       } while($scope = $scope['parent']);
+       } while($scope = isset($scope['parent']) ? $scope['parent'] : null);
 
        # not found; return empty scope.
        $refs[] = array();
        $ret = array();
        $ret['parent'] =& $context;
-       $ret['data'] =& last($refs);
+       $ret['data'] =& $refs[count($refs) - 1];
        return $ret;
 }
 
 function tem_get_data($key, $context) {
        $scope = tem_data_scope($key, $context);
-       if($scope) return $scope['data'][$key];
+       if($scope) return isset($scope['data'][$key]) ? $scope['data'][$key] : null;
 }
 
 # Return the value for a tag as a set of rows to fill a sub-template.
@@ -206,6 +207,7 @@ function &tem_row_data($tem, $context)
 {
        $key = $tem['name'];
        $scope = tem_data_scope($key, $context);
+       $auto_func = false;
 
        if(count($tem['args'])) {
                $auto_func = "tem_auto_" . $tem['args'][0];
@@ -214,13 +216,15 @@ function &tem_row_data($tem, $context)
                }
                # NAMESPACIFY $auto_func
        }
+       $value = isset($scope['data'][$key]) ? $scope['data'][$key] : null;
        if ($auto_func) {
-               $value = $auto_func($scope['data'][$key], $key, $scope, $tem['args']);
+               $value = $auto_func($value, $key, $scope, $tem['args']);
        }
-       else $value = $scope['data'][$key];
 
        $rows = tem_data_as_rows($value, $key);
-       if(is_array($value)) $scope['data'][$key] = $rows;
+       if(is_array($value)) {
+               $scope['data'][$key] = $rows;
+       }
 
        return $rows;
 }
@@ -267,20 +271,20 @@ function top_sub_templates($tem, $is_sub = 'is_sub_template') {
 function merge_sub_templates(&$main, &$subs) {
        foreach($main['pieces'] as &$piece) {
                if(is_array($piece)) { # not just text
-                       if($piece['pieces']) {
+                       if(isset($piece['pieces']) && $piece['pieces']) {
                                # a sub-template in main
                                merge_sub_templates($piece, $subs);
                        } else {
                                # a value-slot in main
-                               $sub = $subs[$piece['name']];
-                               if($sub and $sub['args'][0] != 'hide') {
+                               $sub = isset($subs[$piece['name']]) ? $subs[$piece['name']] : null;
+                               $arg0 = isset($sub['args'][0]) ? $sub['args'][0] : null;
+                               if($sub && $arg0 != 'hide') {
                                        $piece = $subs[$piece['name']];
                                        $piece['parent'] =& $main;
                                }
                        }
                }
        }
-       return $out;
 }
 
 # Replace values in $main with top-level templates from $tem.
@@ -398,7 +402,7 @@ function tem_auto_once_else(&$value) {
 # ----------------------
 
 function is_shown($piece) {
-       return $piece['args'][0] == 'hide';
+       return isset($piece['args'][0]) && $piece['args'][0] == 'hide';
 }
 
 function is_shown_sub_template($piece) {
@@ -622,7 +626,7 @@ function tem_top_sub_names() {
 }
 
 function tem_load_new($filename) {
-       $old = $GLOBALS['wfpl_template'];
+       $old = isset($GLOBALS['wfpl_template']) ? $GLOBALS['wfpl_template'] : null;
        $GLOBALS['wfpl_template'] = new tem();
        $GLOBALS['wfpl_template']->load($filename);
        return $old;