Tenho o Moodle 4.4.3 instalado. Vários cursos são adicionados ao sistema. Tenho acesso à API do Moodle. Estou usando a chamada da API core_course_get_contents
para o conteúdo de um dos meus cursos. Aqui está a resposta:
[
{
"id": 38,
"name": "Section Title",
"visible": 1,
"summary": "",
"summaryformat": 1,
"section": 1,
"hiddenbynumsections": 0,
"uservisible": true,
"modules": [
{
"id": 21,
"url": "https://example.com/mod/wiki/view.php?id=21",
"name": "Reading materials",
"instance": 5,
"contextid": 44,
"visible": 1,
"uservisible": true,
"visibleoncoursepage": 1,
"modicon": "https://example.com/theme/image.php/boost/wiki/1727859606/monologo?filtericon=1",
"modname": "wiki",
"purpose": "collaboration",
"branded": false,
"modplural": "Wikis",
"availability": null,
"indent": 0,
"onclick": "",
"afterlink": null,
"customdata": "\"\"",
"noviewlink": false,
"completion": 0,
"downloadcontent": 1,
"dates": [],
"groupmode": 0
}
]
}
]
A página do curso contém 1 entrada com uma atividade Wiki adicionada. Entendo que ID=38 é a entrada "Título da Seção" na página do curso, enquanto ID=21 é o ID Wiki. Então eu uso a chamada da API do Moodle mod_wiki_get_page_contents
com pageid=21
para tentar obter o conteúdo da atividade Wiki. No entanto, a resposta não está mostrando o conteúdo da Wikipédia, mas o conteúdo de outras páginas:
{
"page": {
"id": 21,
"wikiid": 19,
"subwikiid": 18,
"groupid": 0,
"userid": 0,
"title": "Home",
"cachedcontent": "(Wrong content here)",
"contentformat": 1,
"caneditpage": true,
"version": 106,
"tags": []
},
"warnings": []
}
Na página da web da página Wiki correta, a partir do link do botão Editar, posso adivinhar que o ID do Wiki é 7
em vez de 21
, mas o ID=7 não aparece em nenhuma resposta. Quando uso o mod_wiki_get_page_contents
with pageid=7
, ele mostra o conteúdo correto.
Minha pergunta é: como posso usar a API do Moodle para obter o ID=7?
Obrigado.
Da resposta original - '21' é o 'id do módulo do curso' (este é um número que é exclusivo para aquela atividade, independentemente do tipo de atividade - por exemplo, 21 é um wiki neste curso, 22 pode ser uma instância do fórum, 23 pode ser uma tarefa, 24 pode ser outro wiki). Nos bastidores, este é o id da tabela mdl_course_modules DB.
'5' é o 'id da instância' - isso identifica um wiki específico (também pode haver uma atribuição com 'id da instância' 5, um fórum com 'id da instância' 5, etc.). Nos bastidores, esse é o id da tabela mdl_wiki DB (ou das tabelas mdl_assign ou mdl_forum, para esses tipos de atividade).
Se você usar esse 'id de instância' (de 5), poderá obter uma lista de todas as páginas dentro dessa atividade wiki, chamando
mod_wiki_get_subwiki_pages
(se houver apenas 1 subwiki, as páginas para ele serão retornadas; caso contrário, talvez seja necessário especificar o usuário ou grupo dentro desse wiki para o qual deseja as páginas).A resposta de
mod_wiki_get_subwiki_pages
incluirá o 'id' de cada uma das páginas, que você poderá então inserirmod_wiki_get_page_contents
para obter o conteúdo que está procurando.