ID:2269001
 
(See the best response by Kaiochao.)
Simply put, can a datum's proc call Topic(href, href_list).

I'm having an issue where a proc opens a html document for a user via browse, but the links do not call Topic (the first things I have Topic do it world << "Worked", but it never outputs this).
Did you check the "Topic proc (datum)" page in the DM Reference? (F1 in Dream Maker)

When you have a particular datum D and you want its Topic() to be called, you have to specify "src=\ref[D]" in the link. Otherwise, only client/Topic() will be called.

Also, calling the datum's Topic() is a default behavior of client/Topic(), so make sure to call ..() in client/Topic() if you want any datum/Topic() procs to be called, if you're overriding client/Topic() at all.
Yes, it was most unhelpful. I also already have src=\ref[src]. I added the ..() to client/Topic() although I did not override it originally, but no change.
In response to Andrew Fall
Can you show as much of the involved code as you can? Does the example in the DM Reference work for you?
mob/verb/test()
usr << "Click <a href='?src=\ref[src];action=startgame'>here</a>!"
mob/Topic(href,href_list[])
switch(href_list["action"])
if("startgame")
usr << "Starting game..."
Yes the example works.

client/verb/help()
var/datum/rec/r = new
r.interact()


/datum/rec/Topic(href, href_list)
world << "Topic Called"
switch(href_list["action"])
if("edit")
world << "Action Edit!"

/datum/rec/proc/interact()
var/dat = {"
<html>
<body>
<a href='?src=\ref
[src];action=edit'>Edit</a>
</body>
</html>
"}

usr << browse(dat,"window=rec")
In response to Andrew Fall
Best response
Thanks. The code makes it clear.

Your rec datum is being garbage-collected when the help() verb ends, because there are no existing references to it by the time you click the link.
Thank you! That fixes it.