-- -- content_type__rotate_template/3 -- create or replace function content_type__rotate_template( integer, character varying, character varying ) returns int4 as $$ declare rotate_template__template_id alias for $1; rotate_template__v_content_type alias for $2; rotate_template__use_context alias for $3; v_template_id cr_templates.template_id%TYPE; v_items_val record; begin -- get the default template select template_id into v_template_id from cr_type_template_map where content_type = rotate_template__v_content_type and use_context = rotate_template__use_context and is_default = 't'; if v_template_id is not null then -- register an item-template to all items without an item-template for v_items_val in select item_id from cr_items i, cr_type_template_map m where i.content_type = rotate_template__v_content_type and m.use_context = rotate_template__use_context and i.content_type = m.content_type and not exists ( select 1 from cr_item_template_map where item_id = i.item_id and use_context = rotate_template__use_context ) LOOP PERFORM content_item__register_template ( v_items_val.item_id, v_template_id, rotate_template__use_context ); end loop; end if; -- register the new template as the default template of the content type if v_template_id != rotate_template__template_id then PERFORM content_type__register_template( rotate_template__v_content_type, rotate_template__template_id, rotate_template__use_context, 't' ); end if; return 0; end;$$ language plpgsql;