--
-- 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;