백엔드 개발 PHP 튜토리얼 dedecms模版制作使用方法_PHP教程

dedecms模版制作使用方法_PHP教程

Jul 21, 2016 pm 03:55 PM
dedecms 암호 사용방법 만들다 엔진 표시 개요 주형 원판 사양 분석하다 설계


解析引擎概述  模板设计规范  代码参考
标记参考: arclist(artlist,likeart,hotart,imglist,imginfolist,coolart,specart) field channel mytag vote friendlink mynews loop channelartlist page list pagelist pagebreak fieldlist 

一、织梦模板解析引擎概述 在了解DedeCms的模板代码之前,了解一下织梦模板引擎的知识是非常有意义的。织梦模板引擎是一种使用XML名字空间形式的模板解析器,使用织梦解析器解析模板的最大好处是可以轻松的制定标记的属性,感觉上就像在用HTML一样,使模板代码十分直观灵活,新版的织梦模板引擎不单能实现模板的解析还能分析模板里错误的标记。

1、织梦模板引擎的代码样式有如下几种形式:
{dede:标记名称 属性='值'/}
{dede:标记名称 属性='值'}{/dede:标记名称}
{dede:标记名称 属性='值'}自定义样式模板(InnerText){/dede:标记名称}

提示:
对于{dede:标记名称 属性='值'}{/dede:标记名称}这种形式的标记,在2.1版中,表示结束只需要用“{/dede}”,但
V3中需要严格用“{/dede:标记名称}”,否则会报错。

2、织梦模板引擎内置有多个系统标记,这些系统标记在任何场合都是能直接使用的。

(1) global 标记,表示获取一个外部变量,除了数据库密码之外,能调用系统的任何配置参数,形式为:
{dede:global name='变量名称'}{/dede:global}

{dede:global name='变量名称' /}

其中变量名称不能加 $ 符号,如变量 $cfg_cmspath ,应该写成 {dede:global name='cfg_cmspath' /} 。

(2) foreach 用来输出一个数组,形式为:
{dede:foreach array='数组名称'}[field:key/] [field:value/]{/dede:foreach}

(3) include 引入一个文件,形式为:
{dede:include file='文件名称' /}
对文件的搜索路径为顺序为:绝对路径、include文件夹,CMS安装目录,CMS主模板目录

3、织梦标记允许在任何标记中使用函数对得到的值进行处理,形式为:
{dede:标记名称 属性='值' function='youfunction("参数一","参数二","@me")'/}
其中 @me 用于表示当前标记的值,其它参数由你的函数决定是否存在,例如:
{dede:field name='pubdate' function='strftime("%Y-%m-%d %H:%M:%S","@me")' /}

二、DedeCms 模板制作规范

  DedeCms系统的模板是非固定的,用户可以在新建栏目时可以自行选择栏目模板,官方仅提供最基本的默认模板,即是内置系统模型的各个模板,DedeCms支持自定义频道模型,用户自定义新频道模型后,需要按该模型设计一套新的模板。
一、概念,设计和使用模板,必须要理解下面几个概念:
1、板块(封面)模板:
  指网站主页或比较重要的栏目封面使用的模板,一般用“index_识别ID.htm”命名,此外,用户单独定义的单个页面或自定义标记,也可选是否支持板块模板标记,如果支持,系统会用板块模板标记引擎去解析后才输出内容或生成特定的文件。
2、列表模板:
  指网站某个栏目的所有文章列表的模板,一般用 “list_识别ID.htm” 命名。
3、档案模板:
  表示文档查看页的模板,一般用 “article_识别ID.htm” 命名。
4、其它模板:
  一般系统常规包含的模板有:主页模板、搜索模板、RSS、JS编译功能模板等,此外用户也可以自定义一个模板创建为任意文件。
二、 命名,为了规范起见,织梦官方建议使用统一的方式来命名模板,具体如下:
1、模板保存位置:
  模板目录:{cmspath/templets/样式名称(英文,默认为default,其中system为系统底层模板,plus为插件使用的模板)/具体功能模板文件}
  一般的模板位置:“/templets/default”
2、 模板文件命名规范:
(1)index_识别ID.htm: 表示板块(栏目封面)模板;
(2)list_识别ID.htm: 表示栏目列表模板;
(3)article_识别ID.htm: 表示内容查看页(文档模板,包括专题查看页);
(4)search.htm: 搜索结果列表模板; 
(5)index.htm: 主页模板; 
注解:
你的系统各个内容频道的[识别ID]分别为: 
例:list_image.htm 表示是就是内容类型为图片集的栏目默认列表模板。

三、主要标记参考

1、arclist 标记

这个标记是DedeCms最常用的一个标记,其中 hotart、coolart、likeart、artlist、imglist、imginfolist、specart 这些标记都是由这个标记所定义的不同属性延伸出来的。

作用:获取一个指定的文档列表

适用范围:封面模板、列表模板、文档模板

(1)基本语法:

{dede:arclist
typeid='' row='' col='' titlelen='' 
infolen='' imgwidth='' imgheight='' listtype='' orderby='' keyword=''}

自定义样式模板(InnerText)

{/dede:arclist}

本标记等同于artlist、imglist、imginfolist标记,其中与artlist是完全等同的,与imglist、imginfolist仅是默认的底层模板不同。


(2)属性参考:

[1] typeid='' 表示栏目ID,在列表模板和档案模板中一般不需要指定,在封面模板中允许用","分开表示多个栏目;
[2] row='' 表示返回文档行数,如果和col联合使用,刚结果数等于row * col;
[3] col='' 表示分多少列显示(默认为单列);
[4] titlelen='' 表示标题长度;
[5] infolen='' 表示内容简介长度;
[6] imgwidth='' 表示缩略图宽度;
[7] imgheight='' 表示缩略图高度;
[8] type='' 表示档案类型,其中默认值或type='all'时为普通文档
§ type='commend'时,表示推荐文档,等同于
§ type='image'时,表示必须含有缩略图片的文档
[9] orderby='' 表示排序方式,默认值是 senddate 按发布时间排列。 
§ orderby='hot' 或 orderby='click' 表示按点击数排列
§ orderby='pubdate' 按出版时间排列(即是前台允许更改的时间值)
§ orderby='sortrank' 按文章的新排序级别排序(如果你想使用置顶文章则使用这个属性)
§ orderby='id' 按文章ID排序
[10] keyword='' 表示含有指定关键字的文档列表,多个关键字用","分开
[11] channelid='数字' 表示特定的频道类型,内置的频道:专题(-1)、文章(1)、图集(2)、Flash(4)、软件(3)
[12] limit='起始,结束' 表示限定的记录范围,row属性必须等于"结束 - 起始",mysql的limit语句是由0起始的,如 “limit 0,5”表示的是取前五笔记录,“limit 5,5”表示由第五笔记录起,取下五笔记录。

(3)底层模板变量

ID(同 id),title,iscommend,color,typeid,ismake,description(同 info),
pubdate,senddate,arcrank,click,litpic(同 picname),typedir,typename,
arcurl(同 filename),typeurl,stime(pubdate 的"0000-00-00"格式),
textlink,typelink,imglink,image

其中:
textlink = title
typelink = typename
imglink = dedecms模版制作使用方法_PHP教程
image = dedecms模版制作使用方法_PHP教程

变量调用方法:[field:varname /]

如:
{dede:arclist infolen='100'}
[field:textlink /]


[field:info /]


{/dede:arclist}

2、field 标记

这个标记用于获取特定栏目或档桉的字段值及常用的环境变量值

适用范围:封面模板、列表模板、文档模板

(1)基本语法

{dede:field name=''/}

(2) name 属性的值:

板块模板:phpurl,indexurl,indexname,templeturl,memberurl,powerby,webname,specurl

列表模板:position,title,phpurl,templeturl,memberurl,powerby,indexurl,indexname,specurl,栏目表dede_arctype的所有字段
其中 position 为 “栏目一 > 栏目二” 这样形式的链接,title则为这种形式的标题

文档模板:position,phpurl,templeturl,memberurl,powerby,indexurl,indexname,specurl,id(同 ID,aid),档案dede_archives表和附加表的所有字段。


3、channel 标记

用于获取栏目列表

适用范围:封面模板、列表模板、文档模板

(1)基本语法
{dede:channel row='' type=''}
自定义样式模板(InnerText)
{/dede:channel}

(2)属性

[1] row='数字' 表示获取记录的条数(通用在某级栏目太多的时候使用,默认是 8)

[2] type = top,sun,self

type='top' 表示顶级栏目
type='sun' 表示下级栏目
type='self' 表示同级栏目

其中后两个属性必须在列表模板中使用。

(3)底层模板变量

ID,typename,typedir,typelink(这里仅表示栏目的网址)

例:
{dede:channel type='top'}
[field:typename/] 
{/dede:channel}

4、mytag 标记

用于获取自定义标记的内容

适用范围:封面模板、列表模板、文档模板

(1)基本语法

{dede:mytag typeid='' name='' ismake='' /}

(2)属性

[1] typeid = '数字' 表示栏目ID,默认为 0,在没有设定的栏目没有定义这个名称的标记,会按如下搜索方式来搜索“先向上查找父栏目 -> 通用标记(typeid=0)的同名标记”。

[2] name = '' 标记名称。

[3] ismake = yes|no 默认为 no 表示mytag里的内容不包含其它封面模板的标记,yes则表示标记内容含有其它封面模板标记。

5、vote 标记

用于获取一组投票表单

适用范围:封面模板

(1) 基本语法
{dede:vote id='投票ID' line style="max-width:90%"
tablewidth='100%' titlebgcolor='#EDEDE2'
titlebackground='' tablebgcolor='#FFFFFF'}
{/dede:vote}


6、friendlink 标记,等同 flink

用于获取友情链接

适用范围:封面模板

(1)基本语法

{dede:flink type='' row='' col='' titlelen='' tablestyle=''}{/dede:flink}
属性注解:
[1]type:链接类型,值:
a. textall 全部用文字显示
b. textimage 文字和图得混合排列
c. text 仅显示不带Logo的链接
d. image 仅显示带Logo的链接
-------------------------------------
[2]row:显示多少行,默认为4行
[3]col:显示多少列,默认为6列
[4]titlelen:站点文字的长度
[5]tablestyle: 表示 



7、mynews 标记

用于获取站内新闻

适用范围:封面模板

(1) 基本语法

{dede:mynews row='条数' titlelen='标题长度'}Innertext{/dede:mynews}

Innertext支持的字段为:[field:title /],[field:writer /],[field:senddate /](时间),[field:body /]

8、loop 标记

用于调用任意表的数据,一般用于调用论坛贴子之类的操作,请参阅论坛扩展插件。

9、channelartlist 标记

用于获取频道的下级栏目的内容列表

适用范围:封面模板

语法:

{dede:channelArtlist typeid=0 col=2 tablewidth='100%'}








{dede:type}






dedecms模版制作使用方法_PHP教程
[field:typename /]

更多...

{/dede:type}

{dede:arclist row="8"}
·[field:title /]

{/dede:arclist}

 

{/dede:channelArtlist}

channelArtlist 是唯一一个可以直接嵌套其它标记的标记,不过仅限于嵌套

{dede:type}{/dede:type} 和 {dede:arclist}{/dede:arclist}

标记。

(1) 属性
typeid=0 频道ID,默认的情况下,嵌套的标记使用的是这个栏目ID的下级栏目,如果你想用特定的栏目,可以用","分开多个ID。

col=2 分多列显示

tablewidth='100%' 外围表格的大小


10、page 标记

表示分页页面的附加参数

适用范围:列表模板

语法:

{dede:page pagesize="每页结果条数"/}

11、list 标记

表示列表模板里的内容列表

语法:

{dede:list col='' titlelen='' 
infolen='' imgwidth='' imgheight='' orderby=''}{/dede:list}

底层模板变量

ID(同 id),title,iscommend,color,typeid,ismake,description(同 info),
pubdate,senddate,arcrank,click,litpic(同 picname),typedir,typename,
arcurl(同 filename),typeurl,stime(pubdate 的"0000-00-00"格式),
textlink,typelink,imglink,image

12、pagelist 标记

表示分页页码列表

适用范围:列表模板

语法:

{dede:pagelist listsize="3"/}

listsize 表示 [1][2][3] 这些项的长度 x 2 

13、pagebreak 标记

用途:表示文档的分页链接列表。
适用范围:仅文档模板。 
语法:{dede:pagebreak /} 

14、 fieldlist 标记
用途:获得附加表的所有字段信息。
适用范围:仅文档模板。 
语法:
{dede:fieldlist}
[field:name /] : [field:value /] 

{/dede:fieldlist}

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/318224.htmlTechArticle解析引擎概述 模板设计规范 代码参考 标记参考:arclist(artlist,likeart,hotart,imglist,imginfolist,coolart,specart)fieldchannelmytagvotefriendlinkmynewsloopchanne...
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

ZTE 5G 휴대용 Wi-Fi U50S는 초기 가격 NT$899에 판매됩니다: 최대 네트워크 속도 500Mbps ZTE 5G 휴대용 Wi-Fi U50S는 초기 가격 NT$899에 판매됩니다: 최대 네트워크 속도 500Mbps Apr 26, 2024 pm 03:46 PM

4월 26일 뉴스에 따르면 ZTE의 5G 휴대용 Wi-Fi U50S는 현재 899위안부터 공식 판매되고 있습니다. 외관 디자인 측면에서 ZTE U50S 휴대용 Wi-Fi는 심플하고 스타일리시하며 쥐기 쉽고 포장이 쉽습니다. 크기는 159/73/18mm로 휴대가 간편해 언제 어디서나 5G 고속 네트워크를 즐길 수 있어 방해받지 않는 모바일 오피스와 엔터테인먼트 경험을 선사합니다. ZTE 5G 휴대용 Wi-Fi U50S는 최대 1800Mbps의 속도로 고급 Wi-Fi 6 프로토콜을 지원합니다. Snapdragon X55 고성능 5G 플랫폼을 사용하여 사용자에게 매우 빠른 네트워크 경험을 제공합니다. 5G 듀얼 모드 SA+NSA 네트워크 환경과 Sub-6GHz 주파수 대역을 지원할 뿐만 아니라 측정된 네트워크 속도도 놀라운 500Mbps에 도달해 쉽게 만족할 수 있습니다.

레트로 트렌드! HMD와 하이네켄, 투명 쉘 디자인 플립폰 공동 출시 레트로 트렌드! HMD와 하이네켄, 투명 쉘 디자인 플립폰 공동 출시 Apr 17, 2024 pm 06:50 PM

17일 뉴스에 따르면 HMD는 유명 맥주 브랜드 하이네켄, 크리에이티브 기업 보데가와 손잡고 독특한 폴더폰 '보링폰(The Boring Phone)'을 출시했다. 이 전화기는 디자인 혁신으로 가득 차 있을 뿐만 아니라 기능면에서도 자연으로 돌아가 사람들을 진정한 대인 관계로 돌아가게 하고 친구들과 함께 술을 마시는 순수한 시간을 즐기는 것을 목표로 합니다. Boring 휴대폰은 독특한 투명 플립 디자인을 채택하여 단순하면서도 우아한 미학을 보여줍니다. 내부에는 2.8인치 QVGA 디스플레이, 외부에는 1.77인치 디스플레이가 탑재되어 사용자에게 기본적인 시각적 상호 작용 경험을 제공합니다. 사진의 경우 3000만 화소 카메라만 탑재되어 있지만 간단한 일상 업무를 처리하기에는 충분하다.

Honor Magic V3, AI 디포커스 눈 보호 기술 출시: 근시 발병을 효과적으로 완화 Honor Magic V3, AI 디포커스 눈 보호 기술 출시: 근시 발병을 효과적으로 완화 Jul 18, 2024 am 09:27 AM

7월 12일 뉴스에 따르면, 새로운 Honor Vision Soothing Oasis 눈 보호 화면을 탑재한 Honor Magic V3 시리즈가 오늘 공식 출시되었습니다. 화면 자체는 높은 사양과 품질을 갖추고 있으면서도 AI 능동형 눈 보호 장치 도입을 개척했습니다. 기술. 근시를 완화하는 전통적인 방법은 근시 안경의 도수가 고르게 분포되어 있어 중심 시력 영역은 망막에 맺히지만 주변 영역은 망막 뒤에 맺히는 것으로 알려져 있습니다. 망막은 상이 뒤쳐져 있음을 감지하여 눈의 축방향 성장을 촉진시켜 정도를 심화시킵니다. 현재 근시 발생을 완화시키는 주요 방법 중 하나가 '디포커스 렌즈'다. 중심 영역은 정상적인 도수를 갖고, 주변 영역은 광학 설계 파티션을 통해 조절해 주변 영역의 상이 안으로 들어가게 한다. 망막 앞.

Teclast M50 Mini 태블릿 출시: 8.7인치 IPS 화면, 5000mAh 배터리 Teclast M50 Mini 태블릿 출시: 8.7인치 IPS 화면, 5000mAh 배터리 Apr 04, 2024 am 08:31 AM

4월 3일 뉴스에 따르면 Taipower가 곧 출시할 M50 Mini 태블릿 컴퓨터는 풍부한 기능과 강력한 성능을 갖춘 장치입니다. 이 새로운 8인치 소형 태블릿에는 8.7인치 IPS 화면이 탑재되어 사용자에게 뛰어난 시각적 경험을 제공합니다. 메탈 바디 디자인은 아름다울 뿐만 아니라 기기의 내구성도 높여줍니다. 성능 측면에서 M50Mini에는 A75 코어 2개와 A55 코어 6개를 갖춘 Unisoc T606 8코어 프로세서가 탑재되어 원활하고 효율적인 실행 환경을 보장합니다. 동시에 태블릿에는 6GB+128GB 스토리지 솔루션이 탑재되어 있으며 8GB 메모리 확장을 지원하여 스토리지 및 멀티태스킹에 대한 사용자 요구 사항을 충족합니다. 배터리 수명 측면에서 M50Mini는 5000mAh 배터리가 장착되어 있으며 Ty를 지원합니다.

신호가 가장 강한 Vivo의 휴대폰! vivo X100s에는 범용 신호 증폭 시스템이 탑재되어 있습니다: 안테나 21개, 360° 서라운드 디자인 신호가 가장 강한 Vivo의 휴대폰! vivo X100s에는 범용 신호 증폭 시스템이 탑재되어 있습니다: 안테나 21개, 360° 서라운드 디자인 Jun 03, 2024 pm 08:41 PM

5월 13일 뉴스에 따르면 vivoX100s는 오늘 밤 공식적으로 출시되었으며 뛰어난 이미지 외에도 신호 성능도 매우 뛰어납니다. vivo의 공식 소개에 따르면 vivoX100s는 최대 21개의 안테나가 장착된 혁신적인 범용 신호 증폭 시스템을 사용합니다. 이 디자인은 5G, 4G, Wi-Fi, GPS, NFC 등 다양한 신호 요구 사항의 균형을 맞추기 위해 다이렉트 화면을 기반으로 다시 최적화되었습니다. 이로써 vivoX100s는 생체 역사상 가장 강력한 신호 수신 기능을 갖춘 휴대폰이 되었습니다. 새 휴대폰은 또한 안테나가 본체 주위에 분산된 독특한 360° 서라운드 디자인을 사용합니다. 이 디자인은 신호 강도를 향상시킬 뿐만 아니라 다양한 일상 자세를 최적화하여 부적절한 쥐기 방법으로 인해 발생하는 문제를 방지합니다.

Honor X60i 휴대폰은 1,399위안부터 판매됩니다: 시각적 사변형 OLED 다이렉트 스크린 Honor X60i 휴대폰은 1,399위안부터 판매됩니다: 시각적 사변형 OLED 다이렉트 스크린 Jul 29, 2024 pm 08:25 PM

7월 29일 뉴스에 따르면 Honor X60i 휴대폰은 오늘부터 1,399위안부터 공식 판매되고 있다. 디자인 측면에서 Honor X60i 휴대폰은 중앙에 구멍이 있고 4면 모두 경계가 거의 없는 매우 좁은 테두리가 있는 직선형 스크린 디자인을 채택하여 시야를 크게 넓혔습니다. Honor X60i 매개변수 디스플레이: 6.7인치 고화질 디스플레이 배터리: 5000mAh 대용량 배터리 프로세서: Dimensity 6080 프로세서(TSMC 6nm, 2x2.4G A76+6×2G A55) 시스템: MagicOS8.0 시스템 기타 기능: 5G 신호 향상 , 스마트 캡슐, 언더스크린 지문, 듀얼 마이크, 소음 감소, 지식 Q&A, 사진 촬영 기능: 후면 듀얼 카메라 시스템: 5천만 화소 메인 카메라, 200만 화소 보조 렌즈, 전면 셀카 렌즈: 800만 화소, 가격: 8GB

칭화대학교와 Zhipu AI 오픈 소스 GLM-4: 자연어 처리의 새로운 혁명 시작 칭화대학교와 Zhipu AI 오픈 소스 GLM-4: 자연어 처리의 새로운 혁명 시작 Jun 12, 2024 pm 08:38 PM

2023년 3월 14일 ChatGLM-6B가 출시된 이후 GLM 시리즈 모델은 광범위한 관심과 인정을 받았습니다. 특히 ChatGLM3-6B가 오픈소스로 공개된 이후 개발자들은 Zhipu AI가 출시하는 4세대 모델에 대한 기대감이 가득합니다. 이러한 기대는 마침내 GLM-4-9B의 출시로 완전히 충족되었습니다. GLM-4-9B의 탄생 소형 모델(10B 이하)에 더욱 강력한 기능을 제공하기 위해 GLM 기술팀은 약 반년 만에 새로운 4세대 GLM 시리즈 오픈 소스 모델인 GLM-4-9B를 출시했습니다. 탐구. 이 모델은 정확성을 보장하면서 모델 크기를 크게 압축하고 추론 속도가 더 빠르고 효율성이 높습니다. GLM 기술팀의 탐색은 아직 이루어지지 않았습니다.

새로운 스태킹 프로세스! Xiaomi MIX Fold 4에는 처음으로 Jinshajiang '3차원 특수형' 배터리가 장착되었습니다. 새로운 스태킹 프로세스! Xiaomi MIX Fold 4에는 처음으로 Jinshajiang '3차원 특수형' 배터리가 장착되었습니다. Jul 20, 2024 am 03:20 AM

7월 19일 뉴스에 따르면, 첫 번째 플래그십 폴더블 폴더블폰인 샤오미 MIX Fold 4가 오늘 공식 출시됐으며 최초로 '3차원 특수형 배터리'를 탑재했다. 보도에 따르면 샤오미 MIX Fold4는 배터리 기술에서 획기적인 발전을 이루었으며 접이식 스크린을 위해 특별히 혁신적인 '3차원 특수형 배터리'를 설계했습니다. 기존 병풍장치는 공간 활용 효율이 낮은 기존의 각형 전지를 주로 사용하고 있다. 이 문제를 해결하기 위해 샤오미는 일반적인 와인딩 배터리 셀을 사용하지 않고 새로운 적층 공정을 개발하여 새로운 형태의 배터리를 만들어 공간 활용도를 크게 향상시켰습니다. 배터리 기술 혁신 양극 시트와 음극 시트를 정확하게 교대로 쌓고 리튬 이온의 안전한 매립을 보장하기 위해 Xiaomi는 용접 및 절단 정확도를 향상시키는 새로운 초음파 용접기와 라미네이션 기계를 개발했습니다.

See all articles