-- -- content_item__get_template/2 -- create or replace function content_item__get_template( integer, character varying ) returns int4 as $$ declare get_template__item_id alias for $1; get_template__use_context alias for $2; v_template_id cr_templates.template_id%TYPE; v_content_type cr_items.content_type%TYPE; begin -- look for a template assigned specifically to this item select template_id into v_template_id from cr_item_template_map where item_id = get_template__item_id and use_context = get_template__use_context; -- otherwise get the default for the content type if NOT FOUND then select m.template_id into v_template_id from cr_items i, cr_type_template_map m where i.item_id = get_template__item_id and i.content_type = m.content_type and m.use_context = get_template__use_context and m.is_default = 't'; if NOT FOUND then return null; end if; end if; return v_template_id; end;$$ language plpgsql;