显示Font Apex列表
问题来源:
标准功能里有这样一个效果:定义菜单的时候,用户可以选择Font Apex列表
那我就在想如何在自定义的菜单中实现类似的功能呢?
实验步骤:
1.用F12+查看网页源代码,发现是调用了popupURL这个函数
popupURL('f?p=4000:654:12824872074807');
2.于是在自己的测试页面里加了一个ITEM,用Dynamic Action执行了
popupURL('f?p=4000:654:12824872074807');这段JS,
报错。
这个时候我在想是不是漏了引用JS,但是标准页面引用的JS太多,头大,果断放弃。还研究了一下这篇文章:
https://blog.csdn.net/jonlan/article/details/82382207
3.这个时候我又想,既然这个页面是标准功能的页面,我要是能看到标准功能页面的代码就好了。
新问题来了可是标准功能的页面怎么看呢?
select * from APEX_APPLICATION_PAGES where application_id = 4000 and page_id = 654;
select * from APEX_APPLICATION_PAGE_BUTTONS where application_id = 4000 and page_id = 654;
select * from APEX_APPLICATION_PAGE_REGIONS where application_id = 4000 and page_id = 654;
select * from APEX_APPLICATION_PAGE_ITEMS where application_id = 4000 and page_id = 654;
4.标准功能的Region是用这个存储过程实现的
wwv_flow_f4000_util
5.果断在自己的测试页面新建了一个PLSQL动态Region
APEX_180200.wwv_flow_f4000_util.show_popup_images(
p_image_size => 64,
p_show => 'FONTAPEX',
p_category => null);
又失败
6.打开wwv_flow_f4000_util发现被加密wrap过。在百度上找破解工具全是垃圾的csdn要下载币,放弃了这个思路,那怎么办?
7.这个fontawesome应该在某一张表里存的,先碰碰运气。
select icon_library from APEX_180200.wwv_flow_themes t ;
select * from all_objects where object_name like '%ICON%' and owner = 'APEX_180200';
select * from all_objects where object_name like '%ICON%' and owner = 'APEX_180200';
select * from all_objects where object_name like '%CATEGORY%' and owner = 'APEX_180200';
select * from all_objects where object_name like '%IMAGE%' and owner = 'APEX_180200';
select * from all_objects where object_name like '%REGION%' and object_type ='TABLE'
select * from APEX_180200.WWV_FLOW_ICON_BAR ;
select * from APEX_180200.WWV_FLOW_RANDOM_IMAGES;
select * from APEX_180200.WWV_FLOW_PKG_APP_IMAGES;
WWV_FLOW_IMAGE_REPOSITORY;
没碰到
上PLSQL Dev的牛逼的Find DB Object,也没找到我想要的表。
8.这个我又想,既然APEX能查询SESSION级别的ITEM值,能不能查询SESSION级别的REGION值呢?
乱试一通,无果,我就在想到底渲染页面,REGION时的HTML内容数据库到底有没有保存呢?彻底迷茫
select * from APEX_WORKSPACE_SESSIONS ;
select * from APEX_180200.WWV_FLOW_DATA ;
select * from APEX_180200.WWV_FLOW_MODEL_PAGE_REGIONS ;
9.此时我面临三个选择,
1.重回破解的思路
2.重回,让JS编译通过的思路
3.继续找渲染的REGION。
想了一想还是第一个靠谱。
我自己下了一个antiwrap,没用明白
杰高告诉我一个网址,没用明白
https://www.codecrete.net/UnwrapIt/
赵睿给我传了一个工具oracle fyunwrap_full,搞定!
10.破解了wwv_flow_f4000_util之后,一切都柳岸花明了。
找到核心代码,收工
SELECT '<div class="fa-icon-block">' || '<span class="fa ' ||
WWV_FLOW_ESCAPE.HTML(ICON_CSS_CLASSES) ||
'"></span><span class="icon-label">' ||
WWV_FLOW_ESCAPE.HTML(ICON_CSS_CLASSES) || '</span></div>' as d ICON_CSS_CLASSES as r
FROM APEX_180200.WWV_FLOW_STEP_BUTTONS
where ICON_CSS_CLASSES is not null
and ICON_CSS_CLASSES not like '%&%'
group by ICON_CSS_CLASSES
order by ICON_CSS_CLASSES;
SELECT '<div class="fa-icon-block">' || '<span class="fa ' ||
WWV_FLOW_ESCAPE.HTML(ICON_NAME) ||
'"></span><span class="icon-label">' ||
WWV_FLOW_ESCAPE.HTML(ICON_NAME) || '</span></div>'
FROM APEX_180200.WWV_FLOW_STANDARD_ICONS t
WHERE ICON_LIBRARY = 'FONTAPEX'
ORDER BY ICON_NAME;