2017-02-02 8 views
0

Ich versuche, ein Thema zu erstellen, die auf der Homepage wird es die Kategorien und Kurse anzuzeigen, ich war in der Lage, die Kurse mit get_courses() Funktion wie das zu bekommen:Moodle erhalten Kategorien

<?php $courses = get_courses(); ?> 

<?php foreach ($courses as $key => $value) { ?>  
    <a href="course/view.php?id=<?php echo $key; ?>"> 
     <h2 class="title"><?php echo $courses[$key]->fullname; ?></h2>    
    </a> 
    <p class="summary"><?php echo $courses[$key]->summary; ?></p> 
    <p class="category"><?php echo $courses[$key]->category; ?></p>  
<?php } ?> 

Jetzt versuche ich, die Kategorien zu bekommen,
das einzige, was ich bekommen konnte, ist die Kategorie ID mit [$ key] -> Kategorie

Wie kann ich den Kategorienamen und zeigen Sie es?

+0

FYI, die Idee zu tun 'foreach ($ courses als $ key => $ value) 'ist so, dass Sie in Ihrer Schleife auf' $ value' verweisen können anstatt auf '$ courses [$ key]'. – miken32

+0

haha, gut zu wissen, irgendeine Idee, wie man Kategorien vielleicht bekommt? –

Antwort

1

Nach this post, sollten Sie in der Lage sein, diese Informationen zu erhalten direkt aus der Datenbank:

<?php 
$courses = get_courses(); 
foreach ($courses as $id=>$course) { 
    $category = $DB->get_record('course_categories',array('id'=>$course->category)); 
    $course->categoryName = $category->name; 
    $allcourses[$id] = $course; 
} 
?> 

Und dann, in Ihrem Display Code:

<?php foreach($allcourses as $id=>$course):?> 
    <a href="course/view.php?id=<?=$id?>"> 
     <h2 class="title"><?=$course->fullname?></h2>    
    </a> 
    <p class="summary"><?=$course->summary?></p> 
    <p class="category"><?=$course->categoryName?></p>  
<?php endforeach;?> 
+0

bist du sicher? Ich bekomme nichts, was ist KategorieName? Ich habe var_dump von $ courses gemacht und sehe keinen categoryName –

+0

Warum würdest du? Der springende Punkt der Antwort ist, dass Sie es hinzufügen. – miken32

+0

Warum würde ich was? Es funktioniert nicht .. wenn es wäre, würde ich dich nicht fragen –