На последния хакатон в Лаба, а именно July Coding, седнах да посвърша една задачка от клиент, която се състоеше в това да изтрия последната новина от техен форум в moodle система и над кутийката, агрегираща тия новини да сложа някакъв линк, заместващ новината и съответно стоящ най-отгоре.
Изтрих аз новината от форума, пуснах moodle/admin/cron.php, изпълни се последния, презаредих страницата с агрегирания feed… и публикацията си беше пак там. Чистене на кеш, търсене на rss.xml из файловата система и т.н. – нищо не помогна. Вътре в самия feed записът си седеше гордо и не мърдаше.
Тръгнах след 15 минути блъскане да питам форумите на moodle.org за някакъв съвет и след още 5 минутки вече си бях решил проблема. Всъщност за това нещо имаше бъг и този бъг не беше решен до версия 2.0, пък аз бях на 1.8. Тук ще измрънкам, че смяна на версията на moodle е малко по-трудно от това да си смениш националността и адреса на местижителство. Само малко по-трудно.
Но как да е, ако можете да не използвате moodle, не го правете.
Решението е всъщност заобикаляне на проблема:
Вариант 1: след като сте изтрили ненужната публикация, изтривате следващата най-горна, пускате отново cron, възстановявате последната изтрита (очаква се някъде да си пазите текста и заглавието й) и за последно пускате cron.
Вариант 2: отивате в директорията /moodledata/rss/forum/ и редактирате xml файла, който ви тормози толкова.
Адресът, на който разбрах за решението е този http://moodle.org/mod/forum/discuss.php?d=107567