Статические страницы

Статические страницы

by MIke Karotkih -
Number of replies: 15

Подскажите пожалуйста как создавать статические страницы, не относящиеся к курсам, например "О нас" или статьи?

Sum of ratings: -
In reply to MIke Karotkih

Re: Статические страницы

by Alexandre Scherbyna -

Moodle состоит из курсов, как молекула из атомов. Поэтому создать в нем что-либо, не относящееся к курсам затруднительно, но можно. Например пользователи могути создавать блоги, которые закреплены не за курсами, а за учетными записями их авторов.

Но почему бы вам не создать курс "О нас", или "Статьи"? А дальше добавляете в этот курс ресурс типа Страница и создаете там свою статическую страничку: вводите или копируете текст, всавляете картинки... Вот мы, например, проводим конференциию и каждый доклад выполнен в виде отдельного курса.

In reply to Alexandre Scherbyna

Re: Статические страницы

by MIke Karotkih -

Большое спасибо за ответ. Мне кажется создание отдельных курсов это то, что нужно, но возникает вопрос:

Как вывести необходимую информацию в произвольных местах?  В основном это - списки курсов в разных вариациях (по разделам, один из разделов, только курсы и т.д.).

In reply to MIke Karotkih

Re: Статические страницы

by Alexandre Scherbyna -

Извините, вопрос не понятен.

In reply to Alexandre Scherbyna

Re: Статические страницы

by MIke Karotkih -

Я о том, что если я создам отдельный курс, например, "О нас", то он будет высвечиваться в списке курсов, что мне не нужно.  Мне нужно вывести ссылку в произвольном месте в  шаблоне на курс "О нас". Как мне это сделать?

In reply to MIke Karotkih

Re: Статические страницы

by Alexandre Scherbyna -

Списки курсов можно вообще не показывать. Это задается в параметрах главной страницы. Но если вы хотите другие показывать, а эти нет, то их можно поместить в скрытую категорию курсов (глаз категории закрыт), а сам курс не скрывать (глаз курса открыт).

In reply to Alexandre Scherbyna

Re: Статические страницы

by MIke Karotkih -

Спасибо за ценную информацию - то, что нужно. А как вывести такой курс в header, например, или в меню собственного изготовления? Что мне прописать? Как, например, на главной странице, если прописать: <?php echo $OUTPUT->main_content()?>, то выводится список категорий или курсов в зависимости от настроек. Что мне нужно вставить в меню, чтобы появился title отдельно взятого курса или несколько курсов; отдельно взятая категория или список категорий?    

In reply to MIke Karotkih

Re: Статические страницы

by Alexandre Scherbyna -

Не знаю, что такое меню собственного изготовления и зачем оно вам понадобилось. Moodle - это стандарт, к которому все привыкли, и вдруг там появляется какое-то никому не понятное меню...

Я считаю, что вносить изменения в код Moodle нужно только тогда, когда другого выхода нет. А если вместо того, чтобы изучить Moodle, вы сразу начнете его править, то боюсь, что ни для вас, ни для ваших будущих пользователей ничего хорошего из этого не выйдет.

In reply to Alexandre Scherbyna

Re: Статические страницы

by MIke Karotkih -

Согласен. Хорошо. вот я создал закрытую категорию, создал открытый курс, создал статическую страницу, например, "О нас". А как мне теперь вывести ссылку на данную страницу или курс в произвольном месте на странице?

In reply to MIke Karotkih

Re: Статические страницы

by Alexandre Scherbyna -

Входите в тот самый открытый курс, в адресной строке браузера копируете его URL и используете его для создания гиперссылок где угодно.

In reply to Alexandre Scherbyna

Re: Статические страницы

by MIke Karotkih -

Ну, это понятно. А как мне вывести  списки курсов в разных вариациях (по категориям, одна из категорий, только курсы и т.д.)?

Я в том смысле, что вот например:

<?php echo $OUTPUT->courses()?>

или

<?php echo $OUTPUT->categories()?>

А вообще, где можно узнать, что отвечает (какие термины) за вывод той или иной информации на странице?

In reply to MIke Karotkih

Re: Статические страницы

by Alexandre Scherbyna -

Еще неплохое место для статических страниц "О нас" и т.п. - это блок Главное меню, а также секция над списком курсов, которая становится доступной при выборе параметра numsections. Вы там можете создать ресурсы типа Страница, Файл... Есть еще блок Курсы.

На этом форуме вы можете найти книги по Moodle, которые их авторы любезно выложили здесь (гостевой доступ) и здесь. Я вижу, что у вас руки чешутся, но вы изучите сначала Moodle, а потом уже будете его править.

Чтобы вывести одну из категорий код править не надо. Moodle на первой странице выдает все категории. Щелкните по одной из них, она откроется. Скопируете ее URL, а дальше вы знаете.

In reply to Alexandre Scherbyna

Re: Статические страницы

by MIke Karotkih -

Спасибо. Буду изучать литературу.

In reply to MIke Karotkih

Re: Статические страницы

by Sergey Zolotykhin -

просто создайте элементы персонального меню в Администрирование  ► Внешний вид  ► Темы  ► Настройки тем

такое меню будет доступно на любых страницах.

In reply to MIke Karotkih

Re: Статические страницы

by Petr Zakharov -

Документация есть, изучайте, пробуйте.

http://phpdocs.moodle.org/HEAD/core/lib/core_renderer.html

http://docs.moodle.org/dev/Output_renderers

http://docs.moodle.org/dev/Themes_2.0_overriding_a_renderer

Я бы просто посмотрел, как выводятся курсы, например в файле /course/category.php, и скопировал код из него. Учитывайте, что для вывода категорий могут потребоваться авторизация/права/инициализация сопутствующих объектов и др.

$page = optional_param('page', 0, PARAM_INT);

if (!empty($CFG->coursesperpage)) {
    $defaultperpage =  $CFG->coursesperpage;
} else {
    $defaultperpage = 20;
}

$perpage = optional_param('perpage', $defaultperpage, PARAM_INT);

$urlparams = array('id' => $id);
if ($page) {
    $urlparams['page'] = $page;
}
if ($perpage) {
    $urlparams['perpage'] = $perpage;
}

$courses = array();

$courses = get_courses_page($category->id, 'c.sortorder ASC',
        'c.id,c.sortorder,c.shortname,c.fullname,c.summary,c.visible',
        $totalcount, $page*$perpage, $perpage);
        
foreach ($courses as $acourse) {
    $coursecontext = context_course::instance($acourse->id);
    $linkcss = $acourse->visible ? '' : ' class="dimmed" ';
    $coursename = get_course_display_name_for_list($acourse);
    echo '<a '.$linkcss.' href="view.php?id='.$acourse->id.'">'. format_string($coursename) .'</a><br/>';
}