In contrast to many traditional donor countries, Turkey has been able to steadily increase its development assistance funding over the past 20 years. In the mid-2000s, Turkey started to give more aid than it received, marking an official transition in its status from aid recipient to net donor country.
There is a clear link between Turkish development and security policies in the context of its support for the world's least developed countries. Syria is by far the largest target country for Turkish development assistance expenditure, amounting to 7.2 billion USD in 2019. The majority of this expenditure declared to be for Syria, however, in fact represents funding for Syrian refugees within Turkey’s borders.
Although somewhat isolated among its traditional Western partners, a look to Africa and Asia clearly shows that Turkey has never had economic and diplomatic relations with as many countries as it does today.
For Germany, intensified cooperation with Turkey, especially in Africa, could translate into increased influence, and by building on Turkey's work, to improved development assistance with greater access to governments and potential project partners.
Read our Monitor Development Policy "Turkey's Development Assistance Transformation" here as a PDF.
Java method "de.usu.kas.frontend.service.impl.common.KASArticleServiceImpl.getMarginalPublication(long, com.liferay.portal.kernel.theme.ThemeDisplay)" threw an exception when invoked on de.usu.kas.frontend.service.impl.common.KASArticleServiceImpl object "de.usu.kas.frontend.service.impl.common.KASArticleServiceImpl@793b1dda"; see cause exception in the Java stack trace. ---- FTL stack trace ("~" means nesting-related): - Failed at: #local pub = FrontendService.article... [in template "kas-de-theme_SERVLET_CONTEXT_/templates/macros/atomic-modules/AMMarginalLinks.ftl" in macro "AMMarginalArticlePublication" at line 85, column 5] - Reached through: @AMMarginalArticlePublication assetEntry [in template "kas-de-theme_SERVLET_CONTEXT_/templates/macros/atomic-modules/AMMarginalLinks.ftl" in macro "AMMarginalArticle" at line 76, column 9] - Reached through: @AMMarginalArticle entry [in template "kas-de-theme_SERVLET_CONTEXT_/templates/macros/atomic-modules/AMMarginalLinks.ftl" in macro "AMMarginalArticleFilteredList" at line 192, column 9] - Reached through: @AMMarginalArticleFilteredList "WCS_K... [in template "kas-de-theme_SERVLET_CONTEXT_/templates/macros/atomic-modules/AMMarginalLinks.ftl" in macro "AMMarginalLinks" at line 301, column 21] ~ Reached through: #nested [in template "kas-de-theme_SERVLET_CONTEXT_/templates/macros/atomic-modules/AMMarginalLinks.ftl" in macro "AMSegmentWithIcon" at line 184, column 9] ~ Reached through: @AMSegmentWithIcon "#icon-publication... [in template "kas-de-theme_SERVLET_CONTEXT_/templates/macros/atomic-modules/AMMarginalLinks.ftl" in macro "AMMarginalLinks" at line 300, column 17] - Reached through: @AMMarginalLinks data [in template "kas-de-theme_SERVLET_CONTEXT_/templates/macros/page-modules/PMMarginalspalte.ftl" in macro "PMMarginalspalte" at line 786, column 17] - Reached through: @PMMarginalspalte "ADT_KASDE_MARGINAL... [in template "252001#252047#252853" at line 139, column 5] ----
1<#include "${fullTemplatesPath}/functions/relatedContentUtil.ftl" />
2<#include "${fullTemplatesPath}/functions/freemarkerUtil.ftl" />
3<#include "${fullTemplatesPath}/macros/debugging.ftl" />
4<#include "${fullTemplatesPath}/functions/liferayServicesUtil.ftl" />
5
6<#include "${fullTemplatesPath}/macros/page-modules/PMNavigation.ftl" />
7<#include "${fullTemplatesPath}/macros/page-modules/PMMarginalspalte.ftl" />
8<#include "${fullTemplatesPath}/macros/atomic-modules/AMVenue.ftl" />
9<#include "${fullTemplatesPath}/macros/atomic-modules/AMMarginalContent.ftl" />
10<#include "${fullTemplatesPath}/macros/atomic-modules/AMPricing.ftl" />
11<#include "${fullTemplatesPath}/macros/atomic-modules/AMPerson.ftl" />
12<#include "${fullTemplatesPath}/macros/atomic-modules/AMMediaElement.ftl" />
13<#include "${fullTemplatesPath}/macros/atomic-modules/AMDatetime.ftl" />
14<#include "${fullTemplatesPath}/macros/atomic-modules/AMMap.ftl" />
15<#include "${fullTemplatesPath}/macros/atomic-modules/AMMarginalLinks.ftl" />
16<#include "${fullTemplatesPath}/macros/atomic-modules/AMCollapsibleListItem.ftl" />
17
18<#assign
19 JournalArticleLocalService = getJournalArticleLocalService()
20
21
22
23 themeDisplay = getThemeDisplay()
24 languageId = themeDisplay.getLocale()
25 editmode = FrontendService.user.isPrivilegedUser(themeDisplay)
26
27 groupId = themeDisplay.getScopeGroupId()
28 currentUrl = themeDisplay.getURLCurrent()
29
30 layout = themeDisplay.getLayout()
31 layouttpl = layout.getTypeSettingsProperties().getProperty("layout-template-id")
32
33 isMicrosite = FrontendService.site.isMicrosite(groupId)!false
34/>
35
36<#-- Veranstaltungen-Detail, Publikationen-Detail -->
37<#if currentUrl?contains("/-/content") >
38
39 <#assign journalArticle = FrontendService.article.getArticleToUrl(currentUrl, groupId?number)! >
40
41 <#if journalArticle?has_content>
42 <#if journalArticle.resourcePrimKey??>
43 <#assign primaryKey = journalArticle.resourcePrimKey?number >
44 <#elseif journalArticle.classPK??>
45 <#assign primaryKey = journalArticle.classPK?number >
46 </#if>
47
48 <#assign
49 jsonString = FrontendService.article.getWebcontent(primaryKey)
50 json = FrontendService.json.parseAsJson(jsonString)
51 />
52
53
54 <@debugJsonString jsonString "ADT_KASDE_MARGINALSPALTE" />
55
56 <#if hasContent('title', locale, json)>
57 <#assign
58 pageName = ""
59 title = " - " + getValueForLanguage("title", languageId, json, "first")
60 />
61 <#if isMicrosite >
62 <#assign
63 pageGroup = layout.getGroup()
64 pageName = " - " + htmlUtil.escape(pageGroup.getDescriptiveName())
65 />
66 </#if>
67
68 </#if>
69
70 <#assign content = getMarginalContent(json, locale, primaryKey, FrontendService, JournalArticleLocalService, themeDisplay) >
71
72
73 <#if hasContent('ausgebucht', locale, json)>
74 <#assign content = content + { "ausgebucht" : getValueForLanguage('ausgebucht', locale, json, "first") }>
75 </#if>
76
77 <#if hasContent('storniert', locale, json)>
78 <#assign content = content + { "storniert" : getValueForLanguage('storniert', locale, json, "first") }>
79 </#if>
80
81 <#if hasContent('document_pdfDMTBASICDOCUMENT', locale, json)>
82 <#assign
83 pdfDocumentString = getValueForLanguage('document_pdfDMTBASICDOCUMENT', locale, json, "first")
84 pdfDocument = FrontendService.json.parseAsJson(pdfDocumentString)
85 fileEntry = FrontendService.media.getFileEntry(pdfDocument.uuid, pdfDocument.groupId?number)!/>
86 <#if fileEntry?has_content>
87 <#assign
88 linkToThumbnail = FrontendService.link.getThumbnailSrc(fileEntry , themeDisplay)
89 covermedia = getDefaultMediaObject(linkToThumbnail, "pdf cover")
90 covermedia = covermedia + {"hrefSource" : content.pdfBasicDocumentUrl.url }
91 content = content + { "covermedia": covermedia }
92 />
93 </#if>
94 </#if>
95
96 <#if layouttpl?contains("LAYOUT_KASDE_VERANSTALTUNGEN_DETAIL")>
97 <#assign calendar = FrontendService.event.createCalendarFile(primaryKey, locale) />
98 <#assign content = content + {"calendar": calendar } />
99 </#if>
100 <#elseif (editmode?? && editmode)>
101 <@errorMessage languageUtil.get(locale, "kein.journalArticle.gefunden") "ADT_KASDE_MARGINALSPALTE" layouttpl />
102 </#if>
103
104<#-- Themen-Detail and others -->
105<#else>
106 <#-- content in marginalspalte -->
107 <#if entries?has_content>
108 <#assign
109 entry = entries?first
110 primaryKey = entry.classPK?number
111
112 jsonString = FrontendService.article.getWebcontent(primaryKey)
113 json = FrontendService.json.parseAsJson(jsonString)
114 />
115 <@debugJsonString jsonString "ADT_KASDE_MARGINALSPALTE" />
116 <@debugJson json "MARGINALSPALTE_CONTENT_JSON" />
117
118 <#assign content = getMarginalContent(json, locale, primaryKey, FrontendService, JournalArticleLocalService, themeDisplay) >
119 <#elseif (editmode?? && editmode)>
120 <@errorMessage languageUtil.get(locale, "es.existieren.keine.entries") "ADT_KASDE_MARGINALSPALTE" layouttpl />
121 </#if>
122</#if>
123
124
125<#if content??>
126 <#if layouttpl?contains("LAYOUT_KASDE_VERANSTALTUNGEN_DETAIL")>
127 <#assign type = "veranstaltung" />
128
129 <#elseif layouttpl?contains("LAYOUT_KASDE_PUBLIKATIONEN_DETAIL")>
130 <#assign type = "publikation" />
131 <#elseif layouttpl?contains("LAYOUT_KASDE_THEMEN_DETAIL")>
132 <#assign type = "thema" />
133 <#else>
134 <#assign type = "default" />
135 </#if>
136
137 <#assign content = content + {"type": type } />
138 <@debugJsonString content "ADT_KASDE_MARGINALSPALTE_CONTENT" />
139 <@PMMarginalspalte "ADT_KASDE_MARGINALSPALTE" content AMArticle AMPerson AMVenue AMPricing AMMediaElement AMDatetime AMMap AMMarginalContent AMMarginalLinks/>
140<#elseif (editmode?? && editmode)>
141 <@errorMessage languageUtil.get(locale, "entries.enthalten.keinen.content") "ADT_KASDE_MARGINALSPALTE" layouttpl />
142</#if>
To commit you must sign in.