I'm building (or at least, trying to) a module which will provide a CCK field which will display data acquired from a remote web service. I was able to make it work, but only by horribly abusing the CCK interface and field/widget distinction. I have a read-only field, which has no form widget, and hence is only displayed when a node is viewed, not edited. I'm having difficulties doing it the right way because of 2 hurdles: 1. The content of $element as passed into theme_XXX_formatter_YYY() as the only argument. This variable is a huge array containing all kinds of stuff, including the complete node. My content type fields are in the node, but since they have user-specified names, I don't have any way to reference them without lots of ugly SQL. My fields are also there with numbered keys in the top-level array, but those numbers have no guaranteed correlation, so again, I can't reference them reliably. Is there some better way of coding hook_field() (or other hook) so that the resultant $element array has more easily referenced values? Or am I going about this all wrong? 2. Getting the value into the database. What's the best way to do this? I need to have a local copy in Drupal's CCK tables so that Views can function and as a caching mechanism, so that the remote web service does not need to be hit (and waited for) with each node view. (Perhaps I'll add a hook_cron() to update it periodically.) Any suggestions on how to do this, where to better ask or where to look for documentation and code that might help would be a appreciated. I'm well aware of the drupal.org docs -- I'm editing them as I go along learning how to make this work. -- ..chris