title: Silverstripe ImageField not found
body: <p>I'm trying to extend Member class and add a number of fields to it.  At the same time I am making this DataObject behave as a page so that I can go to www.mysite.com/member/show/1 and see that user's profile.  I have not yet gotten to the point of created member page.  Right now I have all the fields working with the exception to ImageField.  I get the following error:</p>
  
  <pre><code>PHP Fatal error:  Class 'ImageField' not found in ../mysite/code/Secure/Objects/MemberDecorator.php on line 66
  </code></pre>
  
  <p>The code is:</p>
  
  <pre><code>&lt;?php
  class MemberDecorator extends DataExtension {
      private static $db = array(
          "Alias" =&gt; 'Varchar',
          "About" =&gt; 'Text',
          "Birthday" =&gt; 'Date',
          "FavoriteGames" =&gt; 'Varchar',
          "Facebook" =&gt; 'Varchar',
          "Twitter" =&gt; 'Varchar',
          "Instagram" =&gt; 'Varchar',
          "Twitch" =&gt; 'Varchar',
          "Youtube" =&gt; 'Varchar',
          "SecretQuestionOne" =&gt; "Varchar",
          "SecretAnswerOne" =&gt; "Varchar",
          "SecretQuestionTwo" =&gt; "Varchar",
          "SecretAnswerTwo" =&gt; "Varchar",
          "SecretQuestionThree" =&gt; "Varchar",
          "SecretAnswerThree" =&gt; "Varchar"
      );
      private static $has_one = array(
          'Photo' =&gt; 'Image'
      );
  
      //Fields to show in the DOM table
      static $summary_fields = array(
          'Thumb' =&gt; 'Photo',
          "Alias" =&gt; 'Alias',
          "About" =&gt; 'About',
          "Birthday" =&gt; 'Birthday',
          "FavoriteGames" =&gt; 'FavoriteGames',
          "Facebook" =&gt; 'Facebook',
          "Twitter" =&gt; 'Twitter',
          "Instagram" =&gt; 'Instagram',
          "Twitch" =&gt; 'Twitch',
          "Youtube" =&gt; 'Youtube',
          "SecretQuestionOne" =&gt; "SecretQuestionOne",
          "SecretAnswerOne" =&gt; "SecretAnswerOne",
          "SecretQuestionTwo" =&gt; "SecretQuestionTwo",
          "SecretAnswerTwo" =&gt; "SecretAnswerTwo",
          "SecretQuestionThree" =&gt; "SecretQuestionThree",
          "SecretAnswerThree" =&gt; "SecretAnswerThree"
      );
  
      function getCMSFields() {
          $fields = parent::getCMSFields();
          $this-&gt;extend('updateCMSFields', $fields);
          return $fields;
      } 
  
      function updateCMSFields(FieldList $fields) { 
          $fields-&gt;push(new TextField("Alias", "Alias"), 'Members');
          $fields-&gt;push(new TextAreaField("About", "About"), 'Members');
          $fields-&gt;push(new DateField("Birthday", "Birthday"), 'Members');
          $fields-&gt;push(new TextField("FavoriteGames", "Favorite Games"), 'Members');
          $fields-&gt;push(new TextField("Facebook", "Facebook"), 'Members');
          $fields-&gt;push(new TextField("Twitter", "Twitter"), 'Members');
          $fields-&gt;push(new TextField("Instagram", "Instagram"), 'Members');
          $fields-&gt;push(new TextField("Twitch", "Twitch"), 'Members');
          $fields-&gt;push(new TextField("Youtube", "Youtube"), 'Members');
          $fields-&gt;push(new TextField("SecretQuestionOne", "Secret Question One"), 'Members');
          $fields-&gt;push(new TextField("SecretAnswerOne", "Secret Answer One"), 'Members');
          $fields-&gt;push(new TextField("SecretQuestionTwo", "Secret Question Two"), 'Members');
          $fields-&gt;push(new TextField("SecretAnswerTwo", "Secret Answer Two"), 'Members');
          $fields-&gt;push(new TextField("SecretQuestionThree", "Secret Question Three"), 'Members');
          $fields-&gt;push(new TextField("SecretAnswerThree", "Secret Answer Three"), 'Members');
          $fields-&gt;push(new ImageField('Photo', 'Photo', Null, Null, Null, 'Uploads/member-photos/'), 'Members');
      }
  
      function Link() { 
          return Director::absoluteBaseURL() . SSViewer::topLevel()-&gt;URLSegment . "/member/" . $this-&gt;ID; 
      }
  
      //Generate our thumbnail for the DOM
      public function getThumb()
      {
          if($this-&gt;PhotoID)
              return $this-&gt;Photo()-&gt;CMSThumbnail();
          else   
              return '(No Image)';
      }
  }
  </code></pre>
  
  <p>According to every example out there I found and documentation, ImageField seems to be a valid field.  Last bit of detail is that I am following this guide: <a href="http://www.ssbits.com/tutorials/2010/dataobjects-as-pages-part-1-keeping-it-simple/" rel="nofollow">http://www.ssbits.com/tutorials/2010/dataobjects-as-pages-part-1-keeping-it-simple/</a></p>