Skip to content

Commit fe41d61

Browse files
committed
feat: add new benefactor section for advocates
1 parent 8c3d22a commit fe41d61

File tree

4 files changed

+86
-14
lines changed

4 files changed

+86
-14
lines changed

attack-style/layout/_layout.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1426,7 +1426,7 @@ div#sidebars {
14261426

14271427
.sponsor-square {
14281428
padding: 0 !important;
1429-
height: 150px;
1429+
height: 18rem;
14301430
display: flex;
14311431

14321432
a {

attack-theme/static/style-attack.css

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

attack-theme/static/style-user.css

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

modules/benefactors/templates/benefactors.html

Lines changed: 83 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,17 @@ <h1 class="mt-5">Benefactors</h1>
6363
<h4>ATT&CK Benefactors</h4>
6464
<span><strong>Thanks to the following companies who have supported ATT&CK!</strong></span>
6565
<br><br>
66+
<h4>Advocates</h4>
67+
<div id="sponsor-box-advocates" class="support-box my-4">
68+
<div class="row justify-content-center px-4">
69+
<div class="col col-sm">
70+
<div class="row sponsor-list" id="sponsor-table-body-advocates">
71+
<!-- Sponsor logos will be dynamically added here -->
72+
</div>
73+
</div>
74+
</div>
75+
</div>
76+
6677
<h4>Friends</h4>
6778
<div id="sponsor-box-friends" class="support-box my-4">
6879
<div class="row justify-content-center px-4">
@@ -97,6 +108,18 @@ <h4>Supporters</h4>
97108

98109
<script>
99110
// Sponsor data
111+
const advocates = [
112+
{
113+
sponsors: [
114+
{
115+
logo: "/theme/images/benefactors/lloyds.png",
116+
url: "https://www.lloydsbankinggroup.com/",
117+
title: "Lloyds Banking Group"
118+
}
119+
]
120+
}
121+
];
122+
100123
const friends = [
101124
{
102125
sponsors: [
@@ -140,19 +163,14 @@ <h4>Supporters</h4>
140163
title: "JPMorgan Chase Bank, N.A."
141164
},
142165
{
143-
logo: "/theme/images/benefactors/lloyds.png",
144-
url: "https://www.lloydsbankinggroup.com/",
145-
title: "Lloyds Banking Group"
166+
logo: "/theme/images/benefactors//microsoft.png",
167+
url: "https://www.microsoft.com/en-us/",
168+
title: "Microsoft Corporation"
146169
},
147170
],
148171
},
149172
{
150173
sponsors: [
151-
{
152-
logo: "/theme/images/benefactors//microsoft.png",
153-
url: "https://www.microsoft.com/en-us/",
154-
title: "Microsoft Corporation"
155-
},
156174
{
157175
logo: "/theme/images/benefactors/verizon.png",
158176
url: "https://www.verizon.com/business/",
@@ -248,9 +266,54 @@ <h4>Supporters</h4>
248266

249267

250268
// Reference to the sponsor list container
269+
const advocatesTableBody = document.getElementById("sponsor-table-body-advocates");
251270
const friendsTableBody = document.getElementById("sponsor-table-body-friends");
252271
const supportersTableBody = document.getElementById("sponsor-table-body-supporters");
253-
// Function to generate the sponsor logos
272+
273+
// Function to generate the sponsor advocate logos
274+
function generateAdvocateLogos() {
275+
advocates.forEach(group => {
276+
const sponsors = group.sponsors;
277+
278+
// Create rows with up to 4 sponsors per row
279+
for (let i = 0; i < sponsors.length; i += 4) {
280+
const row = document.createElement("div");
281+
row.className = "row sponsor-list";
282+
const rowLength = Math.min(sponsors.length, 4)
283+
284+
// Add up to 4 sponsors in each row
285+
for (let j = i; j < i + rowLength; j++) {
286+
const col = document.createElement("div");
287+
col.className = "col-sm sponsor-square";
288+
if (j < sponsors.length) {
289+
col.setAttribute("data-toggle", "tooltip");
290+
col.setAttribute("data-placement", "top");
291+
col.setAttribute("data-animation", "false");
292+
col.setAttribute("data-original-title", sponsors[j].title);
293+
294+
const sponsor = sponsors[j];
295+
const link = document.createElement("a");
296+
link.href = sponsor.url;
297+
link.target = "_blank";
298+
299+
const image = document.createElement("img");
300+
image.src = sponsor.logo;
301+
image.alt = "Sponsor Logo";
302+
image.className = "w-100 sponsor-logo p-3";
303+
304+
link.appendChild(image);
305+
col.appendChild(link);
306+
}
307+
308+
row.appendChild(col);
309+
}
310+
311+
advocatesTableBody.appendChild(row);
312+
}
313+
});
314+
}
315+
316+
// Function to generate the sponsor friend logos
254317
function generateFriendLogos() {
255318
friends.forEach(group => {
256319
const sponsors = group.sponsors;
@@ -292,6 +355,7 @@ <h4>Supporters</h4>
292355
});
293356
}
294357

358+
// Function to generate the sponsor supporter logos
295359
function generateSupporterLogos() {
296360
supporters.forEach(group => {
297361
const sponsors = group.sponsors;
@@ -333,15 +397,23 @@ <h4>Supporters</h4>
333397
});
334398
}
335399

336-
// Check if there are sponsors and generate the logos
400+
// Check if there are sponsor advocates and generate the logos
401+
if (advocates.length > 0) {
402+
document.getElementById("sponsor-box-advocates").style.display = "block"; // Show the box
403+
generateAdvocateLogos();
404+
} else {
405+
document.getElementById("sponsor-box-advocates").style.display = "none"; // Hide the box
406+
}
407+
408+
// Check if there are sponsor friends and generate the logos
337409
if (friends.length > 0) {
338410
document.getElementById("sponsor-box-friends").style.display = "block"; // Show the box
339411
generateFriendLogos();
340412
} else {
341413
document.getElementById("sponsor-box-friends").style.display = "none"; // Hide the box
342414
}
343415

344-
// Check if there are sponsors and generate the logos
416+
// Check if there are sponsor supporters and generate the logos
345417
if (supporters.length > 0) {
346418
document.getElementById("sponsor-box-supporters").style.display = "block"; // Show the box
347419
generateSupporterLogos();

0 commit comments

Comments
 (0)