Jump to:

5554 Posts in 1742 Topics by 1227 members

Customising the CMS

SilverStripe Forums » Customising the CMS » Module which worked in 2.3.7 does not work in 2.4, 2.4.1

Moderators: martimiz, Sean, biapar, Willr, Ingo, swaiba, simon_w

Page: 1
Go to End
Author Topic: 670 Views
  • Victor
    Avatar
    Community Member
    128 Posts

    Module which worked in 2.3.7 does not work in 2.4, 2.4.1 Link to this post

    There are two relevant php pages: in Module People

    MathPublicPeoplePage.php

    <?php

    class MathPublicPeoplePage extends Page {
    static $db = array(
    'lastname' => 'Text',
    'position' => 'Text',
    'position_senior'=> 'Text',
    'position_junior'=> 'Text',
    'position_pdf' => 'Text'
    //'Classes' => 'Text'
    );

    static $has_many = array(
    'CourseSections' => 'CourseSection'
    );

    function getCMSFields() {
    $fields = parent::getCMSFields();
    $fields->addFieldToTab('Root.Content.Main', new TextField('lastname'), 'Content');
    $fields->addFieldToTab('Root.Content.Main', new TextField('position'), 'Content');
    $fields->addFieldToTab('Root.Content.Main', new TextField('position_senior'), 'Content');
    $fields->addFieldToTab('Root.Content.Main', new TextField('position_junior'), 'Content');
    $fields->addFieldToTab('Root.Content.Main', new TextField('position_pdf'), 'Content');
    return $fields;
    }

    }

    class MathPublicPeoplePage_Controller extends Page_Controller {

    }
    ?>

    and in Module Courses

    CourseSection.php

    <?php

    class CourseSection extends Page {
    static $db = array(
    'CourseSection' => 'Text',
    'DayTimeLocation1' => 'Text',
    'DayTimeLocation2' => 'Text',
    'DayTimeLocation3' => 'Text',
    'DayTimeLocationOH1' => 'Text',
    'DayTimeLocationOH2' => 'Text',
    'DayTimeLocationOH3' => 'Text',
    'SectionURL' => 'Text',
    'Spring' => 'Text',
    'Fall' => 'Text',
    'Year' => 'Text'
    );
    static $has_one = array(
    'MyInstructor' => 'MathPublicPeoplePage'
    );

    function getCMSFields() {
    $fields = parent::getCMSFields();

    $tablefield = new HasOneComplexTableField(
    $this,
    'MyInstructor',
    'MathPublicPeoplePage',
    array(
    'lastname' => 'Family Name'
    ),

    'getCMSFields_forPopup'
    );
    // $tablefield->setParentClass('CourseSection');
    $fields->addFieldToTab('Root.Content.Main', new TextField('CourseSection'), 'Content');
    $fields->addFieldToTab('Root.Content.Main', new TextField('Fall'), 'Content');
    $fields->addFieldToTab('Root.Content.Main', new TextField('Spring'), 'Content');
    $fields->addFieldToTab('Root.Content.Main', new TextField('Year'), 'Content');

    $fields->addFieldToTab( 'Root.Content.Instructor', $tablefield );
    $fields->addFieldToTab('Root.Content.Main', new TextField('SectionURL'), 'Content');
    $fields->addFieldToTab('Root.Content.Main', new TextField('DayTimeLocation1'), 'Content');
    $fields->addFieldToTab('Root.Content.Main', new TextField('DayTimeLocation2'), 'Content');
    $fields->addFieldToTab('Root.Content.Main', new TextField('DayTimeLocation3'), 'Content');
    $fields->addFieldToTab('Root.Content.Main', new TextField('DayTimeLocationOH1'), 'Content');
    $fields->addFieldToTab('Root.Content.Main', new TextField('DayTimeLocationOH2'), 'Content');
    $fields->addFieldToTab('Root.Content.Main', new TextField('DayTimeLocationOH3'), 'Content');

    return $fields;
    }
    }

    class CourseSection_Controller extends Page_Controller {

    }
    ?>

    Everything worked in 2.3.7 but if I activate the second module in 2.4.0 or 2.4.1 dev/build works but any attempt to access website returns

    User Error] Couldn't run query: SELECT "SiteTree_Live"."ClassName", "SiteTree_Live"."Created", "SiteTree_Live"."LastEdited", "SiteTree_Live"."URLSegment", "SiteTree_Live"."Title", "SiteTree_Live"."MenuTitle", "SiteTree_Live"."Content", "SiteTree_Live"."MetaTitle", "SiteTree_Live"."MetaDescription", "SiteTree_Live"."MetaKeywords", "SiteTree_Live"."ExtraMeta", "SiteTree_Live"."ShowInMenus", "SiteTree_Live"."ShowInSearch", "SiteTree_Live"."HomepageForDomain", "SiteTree_Live"."ProvideComments", "SiteTree_Live"."Sort", "SiteTree_Live"."HasBrokenFile", "SiteTree_Live"."HasBrokenLink", "SiteTree_Live"."Status", "SiteTree_Live"."ReportClass", "SiteTree_Live"."CanViewType", "SiteTree_Live"."CanEditType", "SiteTree_Live"."ToDo", "SiteTree_Live"."Version", "SiteTree_Live"."Priority", "SiteTree_Live"."ParentID", "CourseSection_Live"."CourseSection_Live", "CourseSection_Live"."DayTimeLocation1", "CourseSection_Live"."DayTimeLocation2", "CourseSection_Live"."DayTimeLocation3", "CourseSection_Live"."DayTimeLocationOH1", "CourseSection_Live"."DayTimeLocationOH2", "CourseSection_Live"."DayTimeLocationOH3", "CourseSection_Live"."SectionURL", "CourseSection_Live"."Spring", "CourseSection_Live"."Fall", "CourseSection_Live"."Year", "CourseSection_Live"."MyInstructorID", "MathPublicPeoplePage_Live"."lastname", "MathPublicPeoplePage_Live"."position", "MathPublicPeoplePage_Live"."position_senior", "MathPublicPeoplePage_Live"."position_junior", "MathPublicPeoplePage_Live"."position_pdf", "ErrorPage_Live"."ErrorCode", "RedirectorPage_Live"."RedirectionType", "RedirectorPage_Live"."ExternalURL", "RedirectorPage_Live"."LinkToID", "VirtualPage_Live"."VersionID", "VirtualPage_Live"."CopyContentFromID", "SiteTree_Live"."ID", CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName" ELSE 'SiteTree' END AS "RecordClassName" FROM "SiteTree_Live" LEFT JOIN "CourseSection_Live" ON "CourseSection_Live"."ID" = "SiteTree_Live"."ID" LEFT JOIN "MathPublicPeoplePage_Live" ON "MathPublicPeoplePage_Live"."ID" = "SiteTree_Live"."ID" LEFT JOIN "ErrorPage_Live" ON "ErrorPage_Live"."ID" = "SiteTree_Live"."ID" LEFT JOIN "RedirectorPage_Live" ON "RedirectorPage_Live"."ID" = "SiteTree_Live"."ID" LEFT JOIN "VirtualPage_Live" ON "VirtualPage_Live"."ID" = "SiteTree_Live"."ID" WHERE ("URLSegment" = 'home' AND "ParentID" = 0) ORDER BY "Sort" LIMIT 1 Unknown column 'CourseSection_Live.CourseSection_Live' in 'field list'
    GET /department/

    Line 536 in /Applications/MAMP/htdocs/department/sapphire/core/model/MySQLDatabase.php

    Source

    527    }
    528    
    529    function databaseError($msg, $errorLevel = E_USER_ERROR) {
    530       // try to extract and format query
    531       if(preg_match('/Couldn\'t run query: ([^\|]*)\|\s*(.*)/', $msg, $matches)) {
    532          $formatter = new SQLFormatter();
    533          $msg = "Couldn't run query: \n" . $formatter->formatPlain($matches[1]) . "\n\n" . $matches[2];
    534       }
    535       
    536       user_error($msg, $errorLevel);
    537    }
    538    
    539    /**
    540     * Return a boolean type-formatted string
    541     *
    542     * @param array $values Contains a tokenised list of info about this data type
    Trace

    Couldn't run query: SELECT "SiteTree_Live"."ClassName", "SiteTree_Live"."Created", "SiteTree_Live"."LastEdited", "SiteTree_Live"."URLSegment", "SiteTree_Live"."Title", "SiteTree_Live"."MenuTitle", "SiteTree_Live"."Content", "SiteTree_Live"."MetaTitle", "SiteTree_Live"."MetaDescription", "SiteTree_Live"."MetaKeywords", "SiteTree_Live"."ExtraMeta", "SiteTree_Live"."ShowInMenus", "SiteTree_Live"."ShowInSearch", "SiteTree_Live"."HomepageForDomain", "SiteTree_Live"."ProvideComments", "SiteTree_Live"."Sort", "SiteTree_Live"."HasBrokenFile", "SiteTree_Live"."HasBrokenLink", "SiteTree_Live"."Status", "SiteTree_Live"."ReportClass", "SiteTree_Live"."CanViewType", "SiteTree_Live"."CanEditType", "SiteTree_Live"."ToDo", "SiteTree_Live"."Version", "SiteTree_Live"."Priority", "SiteTree_Live"."ParentID", "CourseSection_Live"."CourseSection_Live", "CourseSection_Live"."DayTimeLocation1", "CourseSection_Live"."DayTimeLocation2", "CourseSection_Live"."DayTimeLocation3", "CourseSection_Live"."DayTimeLocationOH1", "CourseSection_Live"."DayTimeLocationOH2", "CourseSection_Live"."DayTimeLocationOH3", "CourseSection_Live"."SectionURL", "CourseSection_Live"."Spring", "CourseSection_Live"."Fall", "CourseSection_Live"."Year", "CourseSection_Live"."MyInstructorID", "MathPublicPeoplePage_Live"."lastname", "MathPublicPeoplePage_Live"."position", "MathPublicPeoplePage_Live"."position_senior", "MathPublicPeoplePage_Live"."position_junior", "MathPublicPeoplePage_Live"."position_pdf", "ErrorPage_Live"."ErrorCode", "RedirectorPage_Live"."RedirectionType", "RedirectorPage_Live"."ExternalURL", "RedirectorPage_Live"."LinkToID", "VirtualPage_Live"."VersionID", "VirtualPage_Live"."CopyContentFromID", "SiteTree_Live"."ID", CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName" ELSE 'SiteTree' END AS "RecordClassName" FROM "SiteTree_Live" LEFT JOIN "CourseSection_Live" ON "CourseSection_Live"."ID" = "SiteTree_Live"."ID" LEFT JOIN "MathPublicPeoplePage_Live" ON "MathPublicPeoplePage_Live"."ID" = "SiteTree_Live"."ID" LEFT JOIN "ErrorPage_Live" ON "ErrorPage_Live"."ID" = "SiteTree_Live"."ID" LEFT JOIN "RedirectorPage_Live" ON "RedirectorPage_Live"."ID" = "SiteTree_Live"."ID" LEFT JOIN "VirtualPage_Live" ON "VirtualPage_Live"."ID" = "SiteTree_Live"."ID" WHERE ("URLSegment" = 'home' AND "ParentID" = 0) ORDER BY "Sort" LIMIT 1 Unknown column 'CourseSection_Live.CourseSection_Live' in 'field list'
    Line 536 of MySQLDatabase.php
    MySQLDatabase->databaseError(Couldn't run query: SELECT "SiteTree_Live"."ClassName", "SiteTree_Live"."Created", "SiteTree_Live"."LastEdited", "SiteTree_Live"."URLSegment", "SiteTree_Live"."Title", "SiteTree_Live"."MenuTitle", "SiteTree_Live"."Content", "SiteTree_Live"."MetaTitle", "SiteTree_Live"."MetaDescription", "SiteTree_Live"."MetaKeywords", "SiteTree_Live"."ExtraMeta", "SiteTree_Live"."ShowInMenus", "SiteTree_Live"."ShowInSearch", "SiteTree_Live"."HomepageForDomain", "SiteTree_Live"."ProvideComments", "SiteTree_Live"."Sort", "SiteTree_Live"."HasBrokenFile", "SiteTree_Live"."HasBrokenLink", "SiteTree_Live"."Status", "SiteTree_Live"."ReportClass", "SiteTree_Live"."CanViewType", "SiteTree_Live"."CanEditType", "SiteTree_Live"."ToDo", "SiteTree_Live"."Version", "SiteTree_Live"."Priority", "SiteTree_Live"."ParentID", "CourseSection_Live"."CourseSection_Live", "CourseSection_Live"."DayTimeLocation1", "CourseSection_Live"."DayTimeLocation2", "CourseSection_Live"."DayTimeLocation3", "CourseSection_Live"."DayTimeLocationOH1", "CourseSection_Live"."DayTimeLocationOH2", "CourseSection_Live"."DayTimeLocationOH3", "CourseSection_Live"."SectionURL", "CourseSection_Live"."Spring", "CourseSection_Live"."Fall", "CourseSection_Live"."Year", "CourseSection_Live"."MyInstructorID", "MathPublicPeoplePage_Live"."lastname", "MathPublicPeoplePage_Live"."position", "MathPublicPeoplePage_Live"."position_senior", "MathPublicPeoplePage_Live"."position_junior", "MathPublicPeoplePage_Live"."position_pdf", "ErrorPage_Live"."ErrorCode", "RedirectorPage_Live"."RedirectionType", "RedirectorPage_Live"."ExternalURL", "RedirectorPage_Live"."LinkToID", "VirtualPage_Live"."VersionID", "VirtualPage_Live"."CopyContentFromID", "SiteTree_Live"."ID", CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName" ELSE 'SiteTree' END AS "RecordClassName" FROM "SiteTree_Live" LEFT JOIN "CourseSection_Live" ON "CourseSection_Live"."ID" = "SiteTree_Live"."ID" LEFT JOIN "MathPublicPeoplePage_Live" ON "MathPublicPeoplePage_Live"."ID" = "SiteTree_Live"."ID" LEFT JOIN "ErrorPage_Live" ON "ErrorPage_Live"."ID" = "SiteTree_Live"."ID" LEFT JOIN "RedirectorPage_Live" ON "RedirectorPage_Live"."ID" = "SiteTree_Live"."ID" LEFT JOIN "VirtualPage_Live" ON "VirtualPage_Live"."ID" = "SiteTree_Live"."ID" WHERE ("URLSegment" = 'home' AND "ParentID" = 0) ORDER BY "Sort" LIMIT 1 | Unknown column 'CourseSection_Live.CourseSection_Live' in 'field list',256)
    Line 134 of MySQLDatabase.php
    MySQLDatabase->query(SELECT "SiteTree_Live"."ClassName", "SiteTree_Live"."Created", "SiteTree_Live"."LastEdited", "SiteTree_Live"."URLSegment", "SiteTree_Live"."Title", "SiteTree_Live"."MenuTitle", "SiteTree_Live"."Content", "SiteTree_Live"."MetaTitle", "SiteTree_Live"."MetaDescription", "SiteTree_Live"."MetaKeywords", "SiteTree_Live"."ExtraMeta", "SiteTree_Live"."ShowInMenus", "SiteTree_Live"."ShowInSearch", "SiteTree_Live"."HomepageForDomain", "SiteTree_Live"."ProvideComments", "SiteTree_Live"."Sort", "SiteTree_Live"."HasBrokenFile", "SiteTree_Live"."HasBrokenLink", "SiteTree_Live"."Status", "SiteTree_Live"."ReportClass", "SiteTree_Live"."CanViewType", "SiteTree_Live"."CanEditType", "SiteTree_Live"."ToDo", "SiteTree_Live"."Version", "SiteTree_Live"."Priority", "SiteTree_Live"."ParentID", "CourseSection_Live"."CourseSection_Live", "CourseSection_Live"."DayTimeLocation1", "CourseSection_Live"."DayTimeLocation2", "CourseSection_Live"."DayTimeLocation3", "CourseSection_Live"."DayTimeLocationOH1", "CourseSection_Live"."DayTimeLocationOH2", "CourseSection_Live"."DayTimeLocationOH3", "CourseSection_Live"."SectionURL", "CourseSection_Live"."Spring", "CourseSection_Live"."Fall", "CourseSection_Live"."Year", "CourseSection_Live"."MyInstructorID", "MathPublicPeoplePage_Live"."lastname", "MathPublicPeoplePage_Live"."position", "MathPublicPeoplePage_Live"."position_senior", "MathPublicPeoplePage_Live"."position_junior", "MathPublicPeoplePage_Live"."position_pdf", "ErrorPage_Live"."ErrorCode", "RedirectorPage_Live"."RedirectionType", "RedirectorPage_Live"."ExternalURL", "RedirectorPage_Live"."LinkToID", "VirtualPage_Live"."VersionID", "VirtualPage_Live"."CopyContentFromID", "SiteTree_Live"."ID", CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName" ELSE 'SiteTree' END AS "RecordClassName" FROM "SiteTree_Live" LEFT JOIN "CourseSection_Live" ON "CourseSection_Live"."ID" = "SiteTree_Live"."ID" LEFT JOIN "MathPublicPeoplePage_Live" ON "MathPublicPeoplePage_Live"."ID" = "SiteTree_Live"."ID" LEFT JOIN "ErrorPage_Live" ON "ErrorPage_Live"."ID" = "SiteTree_Live"."ID" LEFT JOIN "RedirectorPage_Live" ON "RedirectorPage_Live"."ID" = "SiteTree_Live"."ID" LEFT JOIN "VirtualPage_Live" ON "VirtualPage_Live"."ID" = "SiteTree_Live"."ID" WHERE ("URLSegment" = 'home' AND "ParentID" = 0) ORDER BY "Sort" LIMIT 1,256)
    Line 127 of DB.php
    DB::query(SELECT "SiteTree_Live"."ClassName", "SiteTree_Live"."Created", "SiteTree_Live"."LastEdited", "SiteTree_Live"."URLSegment", "SiteTree_Live"."Title", "SiteTree_Live"."MenuTitle", "SiteTree_Live"."Content", "SiteTree_Live"."MetaTitle", "SiteTree_Live"."MetaDescription", "SiteTree_Live"."MetaKeywords", "SiteTree_Live"."ExtraMeta", "SiteTree_Live"."ShowInMenus", "SiteTree_Live"."ShowInSearch", "SiteTree_Live"."HomepageForDomain", "SiteTree_Live"."ProvideComments", "SiteTree_Live"."Sort", "SiteTree_Live"."HasBrokenFile", "SiteTree_Live"."HasBrokenLink", "SiteTree_Live"."Status", "SiteTree_Live"."ReportClass", "SiteTree_Live"."CanViewType", "SiteTree_Live"."CanEditType", "SiteTree_Live"."ToDo", "SiteTree_Live"."Version", "SiteTree_Live"."Priority", "SiteTree_Live"."ParentID", "CourseSection_Live"."CourseSection_Live", "CourseSection_Live"."DayTimeLocation1", "CourseSection_Live"."DayTimeLocation2", "CourseSection_Live"."DayTimeLocation3", "CourseSection_Live"."DayTimeLocationOH1", "CourseSection_Live"."DayTimeLocationOH2", "CourseSection_Live"."DayTimeLocationOH3", "CourseSection_Live"."SectionURL", "CourseSection_Live"."Spring", "CourseSection_Live"."Fall", "CourseSection_Live"."Year", "CourseSection_Live"."MyInstructorID", "MathPublicPeoplePage_Live"."lastname", "MathPublicPeoplePage_Live"."position", "MathPublicPeoplePage_Live"."position_senior", "MathPublicPeoplePage_Live"."position_junior", "MathPublicPeoplePage_Live"."position_pdf", "ErrorPage_Live"."ErrorCode", "RedirectorPage_Live"."RedirectionType", "RedirectorPage_Live"."ExternalURL", "RedirectorPage_Live"."LinkToID", "VirtualPage_Live"."VersionID", "VirtualPage_Live"."CopyContentFromID", "SiteTree_Live"."ID", CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName" ELSE 'SiteTree' END AS "RecordClassName" FROM "SiteTree_Live" LEFT JOIN "CourseSection_Live" ON "CourseSection_Live"."ID" = "SiteTree_Live"."ID" LEFT JOIN "MathPublicPeoplePage_Live" ON "MathPublicPeoplePage_Live"."ID" = "SiteTree_Live"."ID" LEFT JOIN "ErrorPage_Live" ON "ErrorPage_Live"."ID" = "SiteTree_Live"."ID" LEFT JOIN "RedirectorPage_Live" ON "RedirectorPage_Live"."ID" = "SiteTree_Live"."ID" LEFT JOIN "VirtualPage_Live" ON "VirtualPage_Live"."ID" = "SiteTree_Live"."ID" WHERE ("URLSegment" = 'home' AND "ParentID" = 0) ORDER BY "Sort" LIMIT 1,256)
    Line 386 of SQLQuery.php
    SQLQuery->execute()
    Line 2883 of DataObject.php
    DataObject->instance_get_one("URLSegment" = 'home' AND "ParentID" = 0,)
    Line 2807 of DataObject.php
    DataObject::get_one(SiteTree,"URLSegment" = 'home' AND "ParentID" = 0)
    Line 99 of ModelAsController.php
    ModelAsController->getNestedController()
    Line 64 of ModelAsController.php
    ModelAsController->handleRequest(SS_HTTPRequest)
    Line 111 of RootURLController.php
    RootURLController->handleRequest(SS_HTTPRequest)
    Line 281 of Director.php
    Director::handleRequest(SS_HTTPRequest,Session)
    Line 124 of Director.php
    Director::direct(/)
    Line 127 of main.php

    It was tested on brand new installation of 2.4.1 and on old one, updated from 2.3.7

    Any suggestions what should be modified?

    Thanks. Victor

    670 Views
Page: 1
Go to Top

Want to know more about the company that brought you SilverStripe? Then check out SilverStripe.com

Comments on this website? Please give feedback.