Initial commit
This commit is contained in:
commit
f48cdc268b
31 changed files with 628 additions and 0 deletions
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
/app*
|
||||||
27
apache.conf
Normal file
27
apache.conf
Normal file
|
|
@ -0,0 +1,27 @@
|
||||||
|
<Directory /var/www/>
|
||||||
|
Options Indexes FollowSymLinks
|
||||||
|
AllowOverride All
|
||||||
|
Require all granted
|
||||||
|
</Directory>
|
||||||
|
|
||||||
|
# Alias for app assets (styles, fonts, etc.)
|
||||||
|
Alias /app/styles /var/www/custom/styles
|
||||||
|
Alias /app/fonts /var/www/custom/fonts
|
||||||
|
Alias /app/default-styles /var/www/app/default/styles
|
||||||
|
|
||||||
|
<Directory /var/www/custom/styles>
|
||||||
|
Require all granted
|
||||||
|
</Directory>
|
||||||
|
|
||||||
|
<Directory /var/www/custom/fonts>
|
||||||
|
Require all granted
|
||||||
|
</Directory>
|
||||||
|
|
||||||
|
<Directory /var/www/app/default/styles>
|
||||||
|
Require all granted
|
||||||
|
</Directory>
|
||||||
|
|
||||||
|
# Enable mod_rewrite
|
||||||
|
<IfModule !mod_rewrite.c>
|
||||||
|
LoadModule rewrite_module modules/mod_rewrite.so
|
||||||
|
</IfModule>
|
||||||
15
compose.yaml
Normal file
15
compose.yaml
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
version: '3.8'
|
||||||
|
|
||||||
|
services:
|
||||||
|
custom:
|
||||||
|
image: php:8.3.12-apache
|
||||||
|
container_name: stopplidelsen.no
|
||||||
|
working_dir: /var/www/html/
|
||||||
|
volumes:
|
||||||
|
- ./app:/var/www/app:z
|
||||||
|
- ./content:/var/www/html:z
|
||||||
|
- ./custom:/var/www/custom:z
|
||||||
|
- ./apache.conf:/etc/apache2/conf-available/custom.conf:z
|
||||||
|
ports:
|
||||||
|
- "4040:80"
|
||||||
|
command: bash -c "a2enconf custom && a2enmod rewrite && apache2-foreground"
|
||||||
14
content/.htaccess
Normal file
14
content/.htaccess
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
DirectorySlash Off
|
||||||
|
|
||||||
|
<IfModule mod_rewrite.c>
|
||||||
|
RewriteEngine On
|
||||||
|
RewriteBase /
|
||||||
|
|
||||||
|
# Serve static files from /app outside document root
|
||||||
|
RewriteRule ^app/(.*)$ /app-proxy.php?file=$1 [L,QSA]
|
||||||
|
|
||||||
|
# Don't rewrite if file exists
|
||||||
|
RewriteCond %{REQUEST_FILENAME} !-f
|
||||||
|
RewriteCond %{REQUEST_URI} !^/app/
|
||||||
|
RewriteRule ^(.*)$ /index.php [L,QSA]
|
||||||
|
</IfModule>
|
||||||
24
content/artikler/2025-10-23-title-of-article/article.en.md
Normal file
24
content/artikler/2025-10-23-title-of-article/article.en.md
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
# The Future of Web Development
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
As we approach the mid-2020s, web development continues to evolve at a rapid pace. New frameworks, tools, and best practices emerge every year, shaping the way we build and interact with the web.
|
||||||
|
|
||||||
|
## Key Trends to Watch
|
||||||
|
|
||||||
|
### 1. AI and Machine Learning Integration
|
||||||
|
Artificial Intelligence (AI) and Machine Learning (ML) are no longer buzzwords but integral parts of modern web development. From chatbots to personalized content recommendations, AI is transforming user experiences.
|
||||||
|
|
||||||
|
### 2. Progressive Web Apps (PWAs)
|
||||||
|
PWAs continue to gain traction, offering app-like experiences directly in the browser. They are fast, reliable, and engaging, making them a preferred choice for many businesses.
|
||||||
|
|
||||||
|
### 3. WebAssembly
|
||||||
|
WebAssembly (Wasm) is enabling high-performance applications on the web. It allows developers to run code written in multiple languages like C, C++, and Rust at near-native speed.
|
||||||
|
|
||||||
|
### 4. Jamstack Architecture
|
||||||
|
The Jamstack architecture (JavaScript, APIs, and Markup) is becoming increasingly popular for its ability to deliver fast, secure, and scalable websites.
|
||||||
|
|
||||||
|
## Conclusion
|
||||||
|
The future of web development is bright and full of possibilities. By staying updated with the latest trends and technologies, developers can create innovative and impactful web experiences.
|
||||||
|
|
||||||
|
**Tags:** Web Development, AI, PWAs, WebAssembly, Jamstack
|
||||||
24
content/artikler/2025-10-23-title-of-article/article.md
Normal file
24
content/artikler/2025-10-23-title-of-article/article.md
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
# The Future of Web Development
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
As we approach the mid-2020s, web development continues to evolve at a rapid pace. New frameworks, tools, and best practices emerge every year, shaping the way we build and interact with the web.
|
||||||
|
|
||||||
|
## Key Trends to Watch
|
||||||
|
|
||||||
|
### 1. AI and Machine Learning Integration
|
||||||
|
Artificial Intelligence (AI) and Machine Learning (ML) are no longer buzzwords but integral parts of modern web development. From chatbots to personalized content recommendations, AI is transforming user experiences.
|
||||||
|
|
||||||
|
### 2. Progressive Web Apps (PWAs)
|
||||||
|
PWAs continue to gain traction, offering app-like experiences directly in the browser. They are fast, reliable, and engaging, making them a preferred choice for many businesses.
|
||||||
|
|
||||||
|
### 3. WebAssembly
|
||||||
|
WebAssembly (Wasm) is enabling high-performance applications on the web. It allows developers to run code written in multiple languages like C, C++, and Rust at near-native speed.
|
||||||
|
|
||||||
|
### 4. Jamstack Architecture
|
||||||
|
The Jamstack architecture (JavaScript, APIs, and Markup) is becoming increasingly popular for its ability to deliver fast, secure, and scalable websites.
|
||||||
|
|
||||||
|
## Conclusion
|
||||||
|
The future of web development is bright and full of possibilities. By staying updated with the latest trends and technologies, developers can create innovative and impactful web experiences.
|
||||||
|
|
||||||
|
**Tags:** Web Development, AI, PWAs, WebAssembly, Jamstack
|
||||||
BIN
content/artikler/2025-10-23-title-of-article/cover.jpg
Normal file
BIN
content/artikler/2025-10-23-title-of-article/cover.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 70 KiB |
|
|
@ -0,0 +1,6 @@
|
||||||
|
title = "The Future of Web Development"
|
||||||
|
date = "2025-10-23"
|
||||||
|
summary = "Exploring emerging trends in modern web development and their impact on the industry."
|
||||||
|
|
||||||
|
[en]
|
||||||
|
title = "Dette er en test"
|
||||||
24
content/artikler/2025-10-24-another-test/article.md
Normal file
24
content/artikler/2025-10-24-another-test/article.md
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
# This is a test
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
As we approach the mid-2020s, web development continues to evolve at a rapid pace. New frameworks, tools, and best practices emerge every year, shaping the way we build and interact with the web.
|
||||||
|
|
||||||
|
## Key Trends to Watch
|
||||||
|
|
||||||
|
### 1. AI and Machine Learning Integration
|
||||||
|
Artificial Intelligence (AI) and Machine Learning (ML) are no longer buzzwords but integral parts of modern web development. From chatbots to personalized content recommendations, AI is transforming user experiences.
|
||||||
|
|
||||||
|
### 2. Progressive Web Apps (PWAs)
|
||||||
|
PWAs continue to gain traction, offering app-like experiences directly in the browser. They are fast, reliable, and engaging, making them a preferred choice for many businesses.
|
||||||
|
|
||||||
|
### 3. WebAssembly
|
||||||
|
WebAssembly (Wasm) is enabling high-performance applications on the web. It allows developers to run code written in multiple languages like C, C++, and Rust at near-native speed.
|
||||||
|
|
||||||
|
### 4. Jamstack Architecture
|
||||||
|
The Jamstack architecture (JavaScript, APIs, and Markup) is becoming increasingly popular for its ability to deliver fast, secure, and scalable websites.
|
||||||
|
|
||||||
|
## Conclusion
|
||||||
|
The future of web development is bright and full of possibilities. By staying updated with the latest trends and technologies, developers can create innovative and impactful web experiences.
|
||||||
|
|
||||||
|
**Tags:** Web Development, AI, PWAs, WebAssembly, Jamstack
|
||||||
6
content/artikler/metadata.ini
Normal file
6
content/artikler/metadata.ini
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
title = "Artikler"
|
||||||
|
menu = true
|
||||||
|
menu_order = 1
|
||||||
|
|
||||||
|
[en]
|
||||||
|
title = "Articles"
|
||||||
BIN
content/favicon.png
Normal file
BIN
content/favicon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.7 KiB |
1
content/favicon.svg
Normal file
1
content/favicon.svg
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="512" height="512"><path fill="#6391b5" d="M257 0c-5 56-31 98-67 147-36 48-69 84-85 140-28 102 23 197 114 217 99 22 202-42 196-155-3-57-17-84-40-117-23-32-40-60-85-92 23 83 26 201-58 192s-35-118 8-179c38-53 53-129 17-153"/></svg>
|
||||||
|
After Width: | Height: | Size: 275 B |
79
content/frontpage.en.php
Normal file
79
content/frontpage.en.php
Normal file
|
|
@ -0,0 +1,79 @@
|
||||||
|
<div class="hero">
|
||||||
|
<div class="textbox">
|
||||||
|
<h1>The patients who fall through the cracks</h1>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<article class="contain">
|
||||||
|
<h1>Who are we?</h1>
|
||||||
|
<p>We are an advocacy organization working to ensure that patients who could benefit from medical cannabis receive equal and safe treatment with medical follow-up. The medication group should be financially accessible through public reimbursement schemes, and patients should not lose fundamental rights when receiving legal medicine!</p>
|
||||||
|
|
||||||
|
<h1>What do we want to achieve?</h1>
|
||||||
|
<p>Our goal is to find a solution to the challenging situation faced by Norwegian patients, doctors, and researchers regarding the use of medical cannabis (MC) in treatment. We aim to do this by establishing a registry study in Norway, along with the following implementation criteria that must be met for the study to be realized:</p>
|
||||||
|
|
||||||
|
<h2>1. Registry study in international collaboration</h2>
|
||||||
|
<p>We are working to ensure that Norway implements Europe's largest registry study on medical cannabis, developed at Imperial College London. The study follows up on all users of medical cannabis—regardless of their condition or the type of cannabis they use. This way, we can gain an overview of which variants of the medication group work best for different conditions, along with any side effects that may occur. We are already in dialogue with several Norwegian researchers who want to contribute to this effort.</p>
|
||||||
|
|
||||||
|
<h2>2. Broad indication for assessment</h2>
|
||||||
|
<p>For the study to provide us with expanded knowledge, we need to change the current situation where it is nearly impossible for patients to obtain a prescription for medical cannabis in Norway. This is despite the fact that the medication group is already considered low-risk in a medical context. We want it to be recognized that cannabis affects the body's endocannabinoid system, meaning it can help with many different diseases and ailments. We therefore believe that doctors should be able to try medical cannabis for all conditions where the patient has not received adequate help from other medications—as long as there are no medical reasons to avoid it.</p>
|
||||||
|
|
||||||
|
<h2>3. General prescribing rights for all doctors</h2>
|
||||||
|
<p>We want doctors who are already authorized to prescribe strong medications (Class A and B drugs) to also be able to prescribe medical cannabis to their patients. We are working to ensure that the doctor who knows the patient best—and who regularly follows up with them—is also the one who makes the decision about medical cannabis. We believe this will provide better follow-up and more holistic treatment for patients. It will also be an important relief for a specialist healthcare service that is already overworked and has long waiting lists.</p>
|
||||||
|
|
||||||
|
<h2>4. Coverage of medication expenses</h2>
|
||||||
|
<p>A medication is not truly accessible if the patient cannot afford it. Everyone who receives a prescription for medical cannabis should have their costs covered by the public system, just like with other medications. Today, patients mostly have to pay for everything themselves, creating a two-tiered system where only those with good finances have access to treatment. This leads many patients to buy cannabis illegally, where it is cheaper but lacks quality control and safety.</p>
|
||||||
|
|
||||||
|
<h2>5. Continuing education for doctors and healthcare professionals</h2>
|
||||||
|
<p>It is important that the prescription of medical cannabis is done in a safe and responsible manner. There is therefore a need for doctors to be offered courses and training on how medical cannabis is used to treat various diseases. Doctors themselves say they lack knowledge in this area, which is also confirmed by studies. Without sufficient knowledge, doctors cannot provide patients with the best treatment or feel confident in prescribing medical cannabis.</p>
|
||||||
|
|
||||||
|
<h2>6. Review of health requirements for driver's licenses</h2>
|
||||||
|
<p>For patients to be able to participate in the study, there is a need for a thorough review of the regulations regarding driver's licenses and medical cannabis. As the only country in Europe, Norway has regulations that result in most patients losing their driving privileges when prescribed medical cannabis—even if they use variants and doses that do not impair their ability to drive. For other medications that may temporarily affect driving ability, Norway operates on a trust-based system. The current regulations therefore discriminate against patients using medical cannabis.</p>
|
||||||
|
|
||||||
|
<h1>What is medical cannabis?</h1>
|
||||||
|
<p>Medical cannabis is not a single medicine but a group of medications. The medications come in various forms of administration such as capsules, oils, tablets, plant material, and oral sprays. There are three categories of medical products prescribed:</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li><strong>Medicines with marketing authorization</strong> (In Norway, these are currently Sativex and Epidyolex)</li>
|
||||||
|
<li><strong>Medical products with GMP standard</strong>. These fall under the common term Cannabis Based Products for Medical Use, abbreviated as CBPMs. The GMP standard ensures such high quality that the exact content of active ingredients in all these products is known.</li>
|
||||||
|
<li><strong>Magistrally prepared medications with GMP standard</strong> (pharmacy-compounded).</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p>Each product in these categories has a unique combination of active ingredients and form of administration. A patient who does not respond to one variant of the medication, such as Sativex, may still benefit from another variant and/or form of administration. In Norway, we currently have 19 variants of medical cannabis (MC). In comparison, England has 240 variants.</p>
|
||||||
|
|
||||||
|
<p>The most well-known active ingredients in MC are THC and CBD. THC can increase appetite and reduce nausea. It can also relieve pain, inflammation, and muscle control problems. In cases of overdose, THC can produce a euphoric effect (intoxication). CBD is not intoxicating but can have a relaxing effect. CBD can reduce pain and inflammation, control epileptic seizures, and may potentially help in the treatment of mental illness and addiction. In addition, we find smaller amounts of other cannabinoids such as CBG, CBN, and THCV, as well as non-cannabinoid phenols, flavonoids, terpenes, and alkaloids. These work together in an "entourage" effect and contribute to each variant of the medication having unique effects. This also means that MC should be tailored individually to each patient's needs.</p>
|
||||||
|
|
||||||
|
<p>The active ingredients in cannabis act on a large receptor system in the body called the endocannabinoid system. This consists of three main components: endocannabinoids (such as anandamide and 2-AG), CB1 and CB2 receptors, and regulatory enzymes. The endocannabinoid system's main task is to maintain the body's natural balance, or homeostasis. It is central in regulating many important processes such as anxiety, pain, inflammation, stress and immune responses, mood, and appetite. Dysregulations in the system are also believed to influence the development of symptoms in Huntington's disease, Alzheimer's disease, Parkinson's disease, and multiple sclerosis (MS). The effect on the endocannabinoid system explains why cannabis can have an effect on so many symptoms and diagnoses. Approximately 50% of prescriptions currently written in England are for all types of chronic pain, 40% for various mental health conditions, 6% for neurological conditions, and 4% for other diagnoses.</p>
|
||||||
|
|
||||||
|
<p>Cannabis is associated with several misunderstandings and stigmas due to the fact that the active ingredient THC can also be used as a recreational drug. Variants containing less than 1% THC cannot produce an intoxicating effect. This typically applies to isolated CBD (such as in Epidyolex) or whole-plant CBD with GMP standard. For higher amounts of THC, the following applies: In medical use, intoxication is considered an unwanted side effect that can occur with THC overdose. In this regard, medical cannabis is not unique—many medications can cause intoxication when overdosed. It all depends on dosage, titration, adaptation, and the content of active ingredients. Common doses of THC for medical use typically range between 0.5–20 mg per day after adaptation, comparable to medications like Lyrica and benzodiazepines. Starting doses are usually between 0.5–2.5 mg of THC per day. For comparison, a single recreational dose is considered to start from 10 mg of THC for inexperienced users, and often exceeds 50 mg per dose for experienced users.</p>
|
||||||
|
|
||||||
|
<p>Addiction potential is a concern for many, which is understandable given the experiences with OxyContin and the aggressive marketing associated with it. MC is minimally physically addictive. An RCT study examining what happens with rapid discontinuation of Sativex found no withdrawal problems after 3 years of use. Another RCT study following arthritis patients over 5 months showed no issues related to stopping treatment. In recreational use, it is estimated that around 9% develop addiction, but the concept of addiction should be used with caution when discussing medical use, as discontinuation often results in the return of symptoms that MC is used to treat. Tolerance development (requiring increased doses) may occur, but this is managed by the doctor monitoring dose development and implementing tapering periods if necessary.</p>
|
||||||
|
</article>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.hero {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: flex-end;
|
||||||
|
padding: 1rem .4rem;
|
||||||
|
/*background-color: #cecece;*/
|
||||||
|
background-image: url(hero-bg.webp);
|
||||||
|
background-size: cover;
|
||||||
|
background-position: 30% 80%;
|
||||||
|
min-height: 50vh;
|
||||||
|
text-wrap: balance;
|
||||||
|
.textbox {
|
||||||
|
max-width: 42rem;
|
||||||
|
margin: 0 auto;
|
||||||
|
h1 {
|
||||||
|
background-color: white;
|
||||||
|
width: clamp(75%, 60vw, 80%);
|
||||||
|
display: inline;
|
||||||
|
font-size: clamp(2.2rem, 6vw, 3rem);
|
||||||
|
padding: 0 .5rem;
|
||||||
|
line-height: 1.5;
|
||||||
|
box-decoration-break: clone;
|
||||||
|
-webkit-box-decoration-break: clone;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
79
content/frontpage.php
Normal file
79
content/frontpage.php
Normal file
|
|
@ -0,0 +1,79 @@
|
||||||
|
<div class="hero">
|
||||||
|
<div class="textbox">
|
||||||
|
<h1>Pasientene som faller mellom alle stoler</h1>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<article class="contain">
|
||||||
|
<h1>Hvem er vi?</h1>
|
||||||
|
<p>Vi er en interesseorganisasjon som arbeider for at pasienter som kan ha nytte av medisinsk cannabis skal motta likeverdig og trygg behandling med oppfølging fra lege. Medikamentgruppen skal være økonomisk tilgjengelig gjennom offentlig refusjonsordninger og pasienter skal ikke miste grunnleggende rettigheter når de mottar lovlig medisin!</p>
|
||||||
|
|
||||||
|
<h1>Hva ønsker vi å oppnå?</h1>
|
||||||
|
<p>Målet er å finne en løsning på den utfordrende situasjonen som norske pasienter, leger og forskere står overfor når det gjelder bruk av medisinsk cannabis (MC) i behandling. Dette søker vi å gjøre ved å opprette en registerstudie i Norge, sammen med følgende gjennomføringskriterier som må være oppfylt for at studien skal kunne realiseres: </p>
|
||||||
|
|
||||||
|
<h2>1. Registerstudie i samarbeid med utlandet</h2>
|
||||||
|
<p>Vi jobber for at Norge skal implementere Europas største registerstudie på medisinsk cannabis, utviklet ved Imperial College i London. Studien følger opp alle som bruker medisinsk cannabis - uansett hvilken sykdom de har eller hvilken type cannabis de bruker. Slik kan vi få oversikt over hvilke varianter av medikamentgruppen som virker best for ulike tilstander, sammen med bivirkninger som oppstår. Vi er allerede i dialog med flere Norske forskere som ønsker å bidra til dette. </p>
|
||||||
|
|
||||||
|
<h2>2. Bred indikasjon for vurdering</h2>
|
||||||
|
<p>For at studien skal kunne gi oss utvidet kunnskap, er det behov for å endre dagens situasjon der det er nesten umulig for pasienter å få resept på medisinsk cannabis i Norge. Dette til tross for at medikamentgruppen allerede ansees som lite risikabel i medisinsk sammenheng. Vi ønsker at det skal bli anerkjent at cannabis påvirker kroppens endocannabinoide system, som betyr at det kan hjelpe ved mange forskjellige sykdommer og plager. Vi mener derfor at leger bør kunne prøve ut medisinsk cannabis for alle tilstander der pasienten ikke har fått god nok hjelp av andre medisiner - så lenge det ikke er noen medisinske grunner til å unngå det.</p>
|
||||||
|
|
||||||
|
<h2>3. Generell forskrivningsrett for alle leger</h2>
|
||||||
|
<p>Vi ønsker at leger som allerede kan skrive ut sterke medisiner (A- og B-preparater), også skal kunne skrive ut medisinsk cannabis til sine pasienter. Vi jobber for at legen som kjenner pasienten best - og som følger dem opp til vanlig - også skal være den som tar avgjørelsen om medisinsk cannabis. Vi mener dette vil gi bedre oppfølging og mer helhetlig behandling for pasientene. Dette vil også være en viktig avlastning for en spesialisthelsetjeneste som allerede er overarbeidet og har lange helsekøer.</p>
|
||||||
|
|
||||||
|
<h2>4. Dekning av medisinutgifter</h2>
|
||||||
|
<p>Et medikament er ikke reelt tilgjengelig hvis pasienten ikke har råd til det. Alle som får resept på medisinsk cannabis bør få dekket kostnadene gjennom det offentlige, slik som med andre medisiner. I dag må pasientene stort sett betale alt selv, noe som skaper et todelt system der bare de med god økonomi får tilgang til behandlingen. Dette fører til at mange pasienter kjøper cannabis illegalt, der det er billigere, men uten kvalitetskontroll og trygghet.</p>
|
||||||
|
|
||||||
|
<h2>5. Etterutdanning av leger og helsepersonell</h2>
|
||||||
|
<p>Det er viktig at foreskrivningen av medisinsk cannabis foregår på en trygg og forsvarlig måte. Det er derfor behov for at leger får tilbud om kurs og opplæring om hvordan medisinsk cannabis brukes for å behandle ulike sykdommer. Legene sier selv at de mangler kunnskap på dette området, noe som også bekreftes i studier. Uten tilstrekkelig kunnskap kan ikke legene gi pasienter den beste behandlingen eller føle seg trygge på å forskrive medisinsk cannabis.</p>
|
||||||
|
|
||||||
|
<h2>6. Gjennomgang av helsekrav til førerkort</h2>
|
||||||
|
<p>For at pasienter skal kunne delta i studien er det behov for en grundig gjennomgang av regelverket rundt førerkort og medisinsk cannabis. Som det eneste landet i Europa, har Norge et regelverk som fører til at de fleste pasienter mister førerretten når de får resept på medisinsk cannabis. Dette selv om de bruker varianter og doser som ikke påvirker kjøreevnen. For andre medikamenter som kan ha en midlertidig påvirkning av kjøreevne operer Norge med et tillitssystem. Dagens regelverk diskriminerende derfor pasienter som bruker medisinsk cannabis.</p>
|
||||||
|
|
||||||
|
<h1>Hva er medisinsk cannabis?</h1>
|
||||||
|
<p>Medisinsk cannabis er ikke én medisin men en medikamentgruppe. Medikamentene kommer i administrasjonsformer som kapsler, oljer, tabletter, plantemateriale og munnspray. Det finnes tre kategorier av medisinske produkter som skrives ut på resept:</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li><strong>Legemidler med markedsføringstillatelse</strong> (I Norge er dette i dag Sativex og Epidyolex)</li>
|
||||||
|
<li><strong>Medisinske produkter med GMP-standard</strong>. Dette går under fellesbetegnelsen Cannabis Based Products for Medical Use, forkortet til CBPM’s. GMP-standarden holder så høy kvalitet at man vet eksakt innhold av virkestoffer i alle disse produktene.</li>
|
||||||
|
<li><strong>Magistrelt fremstilte medikamenter med GMP-standard</strong> (apotekfremstilt).</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p>Hvert av produktene i disse kategoriene har en unik kombinasjon av virkestoff og administrasjonform. En pasient som ikke får effekt av en variant av medisinen, eksempelvis Sativex, vil likevel kunne få god effekt av en annen variant og/eller administrasjonsform. I Norge har vi nå 19 varianter av medisinsk cannabis (MC). Til sammenligning har de i England 240 varianter.</p>
|
||||||
|
|
||||||
|
<p>De mest kjente virkestoffene i MC er THC og CBD. THC kan øke appetitten og redusere kvalme. Det kan også lindre smerte, betennelser og problemer med muskelkontrollen. Ved overdosering kan THC gi en euforisk virkning (ruseffekt). CBD er ikke rusgivende, men kan virke avslappende. CBD kan redusere smerte og betennelse, kontrollere epileptiske anfall, og muligens være til hjelp i behandling av psykisk sykdom og avhengighet. I tillegg til dette finner vi mindre mengder av andre cannabinoider som eksempelvis CBG, CBN og THCV, samt ikke-cannabinoide fenoler, flavonoider, terpener og alkaloider. Disse virker sammen i en "entourage"-effekt og bidrar til at hver variant av medisinen har unike virkninger. Dette gjør også at MC bør tilpasses individuelt til hver enkelt pasients behov.</p>
|
||||||
|
|
||||||
|
<p>Virkestoffene i cannabis virker på et stort reseptorsystem i kroppen som kalles det endocannabinoide systemet. Dette består av tre hovedbestanddeler: endocannabinoider (som anandamid og 2-AG), CB1- og CB2-reseptorer og regulatoriske enzymer. Det endocannabinoide systemet har som hovedoppgave å opprettholde den naturlige balansen i kroppen, eller homeostasen. Det er sentralt i regulering av mange viktige prosesser som angst, smerte, betennelser, stress- og immunresponser, humør og appetitt. Dysreguleringer i systemet antas også å påvirke utvikling av symptomer ved Huntingtons sykdom, Alzheimers sykdom, Parkinsons sykdom og multippel sklerose (MS). Effekten på det endocannabinoide systemet forklarer hvorfor cannabis kan ha effekt på så mange symptomer og diagnoser. Cirka 50 % av reseptene som nå skrives ut i England, er mot all typer langvarig smerte, 40 % mot ulike mentale helsetilstander, 6 % mot nevrologiske tilstander og 4 % til andre diagnoser.</p>
|
||||||
|
|
||||||
|
<p>Cannabis er beheftet med en del misforståelser og stigma knyttet til at virkestoffet THC også kan brukes som et rusmiddel. Varianter som inneholder under 1 % THC kan ikke gi ruseffekt. Dette gjelder typisk isolert CBD (som i Epidyolex) eller helplante-CBD med GMP-standard. Ved høyere mengder THC gjelder følgende: Ved medisinsk bruk regnes ruseffekt som en uønsket bivirkning som kan oppstå ved overdosering av THC. I så henseende er ikke medisinsk cannabis alene. Flere medikamenter kan gi ruseffekt ved overdosering. Alt handler om dose, opptrapping, tilvenning og innhold av virkestoffer. Vanlige doser av THC til medisinsk bruk ligger gjerne mellom 0,5–20 mg i døgnet etter tilvenning, tilsvarende det man gjør ved eksempelvis Lyrica og benzodiazepiner. Startdoser ligger gjerne på 0,5–2,5 mg THC i døgnet. Til sammenligning regnes én rusdose fra 10 mg THC blant uerfarne brukere, og gjerne over 50 mg per dose for erfarne brukere.</p>
|
||||||
|
|
||||||
|
<p>Avhengighetspotensiale er en faktor som mange er bekymret for. Dette er forståelig gitt erfaringene med OxyContin og den aggressive markedsføringen som ble ført i den forbindelse. MC er i liten grad fysisk avhengighetsskapende. En RCT-studie som ser på hva som skjer ved rask seponering av Sativex, finner ingen abstinensproblemer etter 3 års bruk. En annen RCT-studie, som følger revmatismepasienter over 5 måneder, viser ingen problemer knyttet til å avslutte behandling. Ved rekreasjonsbruk er det anslått at cirka 9 % utvikler avhengighet, men avhengighetsbegrepet bør brukes med forsiktighet når vi snakker om medisinsk bruk, da seponering ofte vil medføre at symptomene MC brukes for, vender tilbake. Det kan oppstå toleranseutvikling (at dosene må økes), men dette reguleres ved at lege følger doseutviklingen og gjennomfører nedtrappingsperioder dersom dette er nødvendig.</p>
|
||||||
|
</article>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.hero {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: flex-end;
|
||||||
|
padding: 1rem .4rem;
|
||||||
|
/*background-color: #cecece;*/
|
||||||
|
background-image: url(hero-bg.webp);
|
||||||
|
background-size: cover;
|
||||||
|
background-position: 30% 80%;
|
||||||
|
min-height: 50vh;
|
||||||
|
text-wrap: balance;
|
||||||
|
.textbox {
|
||||||
|
max-width: 42rem;
|
||||||
|
margin: 0 auto;
|
||||||
|
h1 {
|
||||||
|
background-color: white;
|
||||||
|
width: clamp(75%, 60vw, 80%);
|
||||||
|
display: inline;
|
||||||
|
font-size: clamp(2.2rem, 6vw, 3rem);
|
||||||
|
padding: 0 .5rem;
|
||||||
|
line-height: 1.5;
|
||||||
|
box-decoration-break: clone;
|
||||||
|
-webkit-box-decoration-break: clone;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
BIN
content/hero-bg.webp
Normal file
BIN
content/hero-bg.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 42 KiB |
9
content/index.php
Normal file
9
content/index.php
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
<?php
|
||||||
|
// Handle /app static file requests
|
||||||
|
if (str_starts_with($_SERVER['REQUEST_URI'], '/app/')) {
|
||||||
|
require __DIR__ . '/../app/static.php';
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
// All other requests go to router
|
||||||
|
require __DIR__ . '/../app/router.php';
|
||||||
7
content/kontakt/metadata.ini
Normal file
7
content/kontakt/metadata.ini
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
title = "Kontakt"
|
||||||
|
menu = true
|
||||||
|
menu_order = 10
|
||||||
|
|
||||||
|
[en]
|
||||||
|
title = "Contact"
|
||||||
|
slug = "contact"
|
||||||
6
content/kontakt/page.en.html
Normal file
6
content/kontakt/page.en.html
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
<article class="contain">
|
||||||
|
<h1>Contact Us</h1>
|
||||||
|
<p>Write to us at <a href="mailto:kontakt@stopplidelsen.no">kontakt@stopplidelsen.no</a></p>
|
||||||
|
<h2>About Us</h2>
|
||||||
|
<p>The advocacy organization "Stopp lidelsen" (Stop the Suffering) was established in the winter of 2024/25 with the goal of finding a solution to the challenging situation faced by Norwegian patients, doctors, and researchers regarding the use of medical cannabis (MC) in treatment. We have all worked on this issue for several years and consist of experienced representatives from multiple patient associations, in close dialogue with experts both domestically and internationally. In recent years, we have also united several patient associations behind this initiative.</p>
|
||||||
|
</article>
|
||||||
6
content/kontakt/page.html
Normal file
6
content/kontakt/page.html
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
<article class="contain">
|
||||||
|
<h1>Kontakt oss</h1>
|
||||||
|
<p>Skriv til oss på <a href="mailto:kontakt@stopplidelsen.no">kontakt@stopplidelsen.no</a></p>
|
||||||
|
<h2>Kort om oss</h2>
|
||||||
|
<p>Interesseorganisasjonen Stopp lidelsen ble opprettet vinteren 2024/25 med mål om å finne en løsning på den utfordrende situasjonen for norske pasienter, leger og forskere når det gjelder bruk av medisinsk cannabis (MC) i behandling. Vi har alle jobbet med saken over flere år og består av erfarne representanter fra flere pasientforeninger, i nær dialog med fagpersoner i inn- og utland. De siste årene har vi også samlet flere pasientforeninger bak initiativet.</p>
|
||||||
|
</article>
|
||||||
1
content/logo.svg
Normal file
1
content/logo.svg
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="100" height="70.71" viewBox="0 0 73.898 50.777"><title>Logo som viser en tåredråpe, med teksten Stopp lidelsen.</title><path fill="#6391b5" id="symbol" d="M61.941 1.515c-.28 3.476-1.881 6.076-4.102 9.059s-4.27 5.178-5.226 8.63c-1.742 6.29 1.403 12.133 6.978 13.382 6.125 1.373 12.456-2.604 12.085-9.554-.185-3.475-1.04-5.16-2.448-7.174s-2.451-3.733-5.219-5.677c1.382 5.068 1.58 12.368-3.607 11.82-5.187-.547-2.123-7.28.525-11.015 2.312-3.261 3.241-7.958 1.013-9.47"/><g id="tekst" fill="#009c80"><path d="M75.023 235.574q-2.085 0-3.266-1.043-1.158-1.065-1.158-2.826l.023-.278h2.826v.162q.023.904.51 1.32.486.395 1.158.395.648 0 1.135-.302.486-.324.486-1.019 0-.741-.556-1.065-.555-.348-1.76-.672-1.158-.325-1.876-.649-.719-.324-1.251-1.065-.51-.742-.51-1.993 0-1.783 1.205-2.733 1.227-.973 3.15-.973 1.784 0 2.942.903 1.181.88 1.181 2.41l-.023.532h-2.826v-.046q-.023-1.529-1.367-1.529-.648 0-1.042.324-.394.325-.394.88 0 .65.533.95.533.278 1.668.58 1.181.3 1.923.648.74.325 1.274 1.089.556.741.556 2.062 0 3.938-4.54 3.938m9.683 0q-1.529 0-2.2-.927-.672-.95-.672-2.34v-6.856h-1.228v-2.34h1.228l.417-3.429h2.363v3.429h1.76v2.34h-1.76v6.787q0 .486.254.741.255.255.718.255h.788v2.062q-.301.116-.788.185-.486.093-.88.093m7.83 0q-2.456 0-3.66-1.552t-1.205-4.819 1.205-4.818q1.204-1.552 3.66-1.552 2.455 0 3.66 1.552t1.205 4.818-1.205 4.819-3.66 1.552m0-2.34q1.042 0 1.506-.88.463-.904.463-2.71v-.88q0-1.808-.463-2.688-.464-.903-1.506-.903t-1.506.903q-.463.88-.463 2.687v.88q0 1.807.463 2.71.464.881 1.506.881m7.065-10.123h2.317l.278 1.506h.116q.44-.88 1.158-1.32.718-.464 1.598-.464 1.853 0 2.873 1.598 1.042 1.576 1.042 4.795 0 3.174-1.042 4.772-1.02 1.576-2.734 1.576-.926 0-1.668-.394-.718-.417-1.042-1.135h-.116v5.258h-2.78zm4.633 9.938q.973 0 1.413-.834.44-.857.44-2.572v-.88q0-1.714-.44-2.548-.44-.857-1.413-.857t-1.413.857q-.44.834-.44 2.548v.834q0 1.714.44 2.595.44.857 1.413.857m6.973-9.938h2.316l.278 1.506h.116q.44-.88 1.158-1.32.719-.464 1.599-.464 1.853 0 2.872 1.598 1.043 1.576 1.043 4.795 0 3.174-1.043 4.772-1.019 1.576-2.733 1.576-.927 0-1.668-.394-.718-.417-1.042-1.135h-.116v5.258h-2.78zm4.633 9.938q.973 0 1.413-.834.44-.857.44-2.572v-.88q0-1.714-.44-2.548-.44-.857-1.413-.857t-1.413.857q-.44.834-.44 2.548v.834q0 1.714.44 2.595.44.857 1.413.857" aria-label="stopp" transform="translate(-64.179 -190.942)scale(.9403)"/><path d="M70.718 237.067h3.002v18.085h-3.002zm5.703 4.928h3.002v13.157H76.42zm-.025-4.928h3.027v2.877h-3.027zm9.63 18.385q-2 0-3.126-1.7-1.1-1.727-1.1-5.204 0-3.427 1.1-5.128 1.125-1.725 2.976-1.725 1.001 0 1.776.45.8.425 1.151 1.2h.125v-6.278h3.002v18.085h-2.502l-.3-1.626h-.125q-.475.95-1.25 1.451-.776.475-1.726.475m.901-2.726q1.05 0 1.526-.9.475-.926.475-2.777v-.9q0-1.852-.475-2.777-.475-.95-1.526-.95-1.05 0-1.526.925-.475.9-.475 2.751v.95q0 1.852.475 2.777.475.9 1.526.9m12.307 2.726q-2.577 0-3.877-1.676-1.276-1.7-1.276-5.203 0-6.878 5.053-6.878 2.401 0 3.577 1.675 1.175 1.676 1.175 5.203v.75h-6.678q.025 1.852.475 2.777.475.9 1.55.9.776 0 1.227-.65.45-.675.45-1.85h2.976q0 2.45-1.275 3.702-1.276 1.25-3.377 1.25m1.5-8.304q0-3.002-1.6-3.002-.926 0-1.376.775-.45.75-.525 2.227zm5.329-10.081h3.001v18.085h-3.001zm9.955 18.385q-2.251 0-3.527-1.125-1.25-1.151-1.25-3.052l.025-.3h3.051v.175q.025.975.55 1.426.526.425 1.251.425.7 0 1.226-.325.525-.35.525-1.1 0-.801-.6-1.152-.6-.375-1.901-.725-1.25-.35-2.026-.7t-1.351-1.151q-.55-.8-.55-2.151 0-1.926 1.3-2.952 1.326-1.05 3.402-1.05 1.926 0 3.177.975 1.276.95 1.276 2.602l-.025.575h-3.052v-.05q-.025-1.651-1.476-1.651-.7 0-1.125.35t-.426.95q0 .701.576 1.026.575.3 1.8.626 1.276.325 2.077.7.8.35 1.376 1.176.6.8.6 2.226 0 4.252-4.903 4.252m11.732 0q-2.577 0-3.877-1.676-1.276-1.7-1.276-5.203 0-6.878 5.053-6.878 2.401 0 3.577 1.675 1.175 1.676 1.175 5.203v.75h-6.678q.025 1.852.475 2.777.475.9 1.55.9.776 0 1.227-.65.45-.675.45-1.85h2.976q0 2.45-1.275 3.702-1.276 1.25-3.377 1.25m1.5-8.304q0-3.002-1.6-3.002-.926 0-1.376.775-.45.75-.525 2.227zm5.354-5.153h2.501l.3 1.626h.15q.576-.85 1.401-1.376.826-.55 1.926-.55 1.626 0 2.552 1.025.95 1 .95 3.202v9.23h-3.002v-8.405q0-1.225-.45-1.776-.425-.55-1.276-.55-.875 0-1.475.775-.576.75-.576 1.852v8.104h-3.001z" aria-label="lidelsen" transform="translate(-64.179 -190.942)scale(.9403)"/></g></svg>
|
||||||
|
After Width: | Height: | Size: 4.2 KiB |
6
content/metadata.ini
Normal file
6
content/metadata.ini
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
title = "Stopp lidelsen"
|
||||||
|
slug = "Forsiden"
|
||||||
|
|
||||||
|
[en]
|
||||||
|
title = "Stop the suffering"
|
||||||
|
slug = "Home"
|
||||||
2
content/robots.txt
Normal file
2
content/robots.txt
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
User-agent: *
|
||||||
|
Disallow: /
|
||||||
3
custom/config.ini
Normal file
3
custom/config.ini
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
[languages]
|
||||||
|
default = "no"
|
||||||
|
available = "no,en"
|
||||||
BIN
custom/fonts/pt-serif/pt-serif-bold-italic.woff2
Normal file
BIN
custom/fonts/pt-serif/pt-serif-bold-italic.woff2
Normal file
Binary file not shown.
BIN
custom/fonts/pt-serif/pt-serif-bold.woff2
Normal file
BIN
custom/fonts/pt-serif/pt-serif-bold.woff2
Normal file
Binary file not shown.
BIN
custom/fonts/pt-serif/pt-serif-italic.woff2
Normal file
BIN
custom/fonts/pt-serif/pt-serif-italic.woff2
Normal file
Binary file not shown.
37
custom/fonts/pt-serif/pt-serif.css
Normal file
37
custom/fonts/pt-serif/pt-serif.css
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
/* pt-serif-bold */
|
||||||
|
@font-face {
|
||||||
|
font-family: PT Serif;
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 700;
|
||||||
|
font-stretch: 100%;
|
||||||
|
src: local("PT Serif Bold"), local("PTSerif-Bold"), url(pt-serif-bold.woff2) format("woff2");
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
/* pt-serif-bold-italic */
|
||||||
|
@font-face {
|
||||||
|
font-family: PT Serif;
|
||||||
|
font-style: italic;
|
||||||
|
font-weight: 700;
|
||||||
|
font-stretch: 100%;
|
||||||
|
src: local("PT Serif Bold Italic"), local("PTSerif-BoldItalic"), url(pt-serif-bold-italic.woff2) format("woff2");
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
/* pt-serif-italic */
|
||||||
|
@font-face {
|
||||||
|
font-family: PT Serif;
|
||||||
|
font-style: italic;
|
||||||
|
font-weight: 400;
|
||||||
|
font-stretch: 100%;
|
||||||
|
src: local("PT Serif Italic"), local("PTSerif-Italic"), url(pt-serif-italic.woff2) format("woff2");
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
/* pt-serif */
|
||||||
|
@font-face {
|
||||||
|
font-family: PT Serif;
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 400;
|
||||||
|
font-stretch: 100%;
|
||||||
|
src: local("PT Serif"), local("PTSerif-Regular"), url(pt-serif.woff2) format("woff2");
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
|
||||||
BIN
custom/fonts/pt-serif/pt-serif.woff2
Normal file
BIN
custom/fonts/pt-serif/pt-serif.woff2
Normal file
Binary file not shown.
172
custom/styles/base.css
Normal file
172
custom/styles/base.css
Normal file
|
|
@ -0,0 +1,172 @@
|
||||||
|
/* MINIMAL CSS RESET*/
|
||||||
|
* { margin-bottom: 0; }
|
||||||
|
|
||||||
|
/* VARIABLES */
|
||||||
|
:root {
|
||||||
|
--font-body: Roboto, sans-serif;
|
||||||
|
--font-heading: "PT serif", Georgia, "Nimbus Roman", serif;
|
||||||
|
--color-blue: #6391b5;
|
||||||
|
--color-blue: oklch(0.6376 0.0739 242.84);
|
||||||
|
--color-green: #009c80;
|
||||||
|
--color-green: oklch(0.618 0.1176 173.93);
|
||||||
|
--color-green-light: #f2fbf8;
|
||||||
|
--color-green-light: oklch(0.9811 0.01 173.93);
|
||||||
|
--color-grey: #404040;
|
||||||
|
--color-grey: oklch(0.3715 0 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* GLOBAL */
|
||||||
|
html { font-family: var(--font-body); font-size: clamp(16px, 2.3vw, 20px); scroll-behavior: smooth; }
|
||||||
|
body { margin: 0; color: var(--color-grey) }
|
||||||
|
p, ul { line-height: 1.5em; hyphens: auto }
|
||||||
|
img { max-width: 100%; height: auto; }
|
||||||
|
h1 { color: var(--color-green); font-size: 2.3rem }
|
||||||
|
h1, h2, h3, h4, h5, h6 {
|
||||||
|
font-family: var(--font-heading);
|
||||||
|
font-weight: 400;
|
||||||
|
line-height: 1.3em;
|
||||||
|
margin-top: 1.3em;
|
||||||
|
text-wrap: pretty;
|
||||||
|
}
|
||||||
|
a {
|
||||||
|
color: var(--color-green);
|
||||||
|
text-decoration: none;
|
||||||
|
&:hover { color: var(--color-blue) }
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid-container {
|
||||||
|
display: grid;
|
||||||
|
grid-template-rows: auto 1fr auto;
|
||||||
|
grid-template-columns: 1fr;
|
||||||
|
grid-template-areas: "header" "main" "footer";
|
||||||
|
height: 100%;
|
||||||
|
width: 100%;
|
||||||
|
justify-content: center;
|
||||||
|
min-height: 100vh;
|
||||||
|
align-items: stretch;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contain, :where(main>article) {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: minmax(.4rem, 1fr) minmax(0, 42rem) minmax(.3rem, 1fr);
|
||||||
|
> * {
|
||||||
|
grid-column: 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.escape {
|
||||||
|
grid-column: 1 / -1 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* HEADER */
|
||||||
|
header {
|
||||||
|
border-bottom: 3px #00000022 solid;
|
||||||
|
grid-area: header;
|
||||||
|
> div {
|
||||||
|
padding-bottom: .2rem;
|
||||||
|
display: flex;
|
||||||
|
.logo {
|
||||||
|
margin-right: .3rem;
|
||||||
|
svg {
|
||||||
|
width: 7rem;
|
||||||
|
height: 100%;
|
||||||
|
#symbol {
|
||||||
|
fill: var(--color-blue);
|
||||||
|
}
|
||||||
|
#tekst {
|
||||||
|
fill: var(--color-green);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
nav {
|
||||||
|
display:flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content:flex-end;
|
||||||
|
flex: 1;
|
||||||
|
ul {
|
||||||
|
display: flex;
|
||||||
|
list-style: none;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
margin-top: .4rem;
|
||||||
|
padding: 0;
|
||||||
|
justify-content: flex-end;
|
||||||
|
/* align-self: end; */
|
||||||
|
a {
|
||||||
|
text-decoration: none;
|
||||||
|
color: white;
|
||||||
|
border-radius: 1rem;
|
||||||
|
background-color: var(--color-grey);
|
||||||
|
padding: 0.35rem 1rem;
|
||||||
|
margin-left:0.4rem;
|
||||||
|
margin-top:0.4rem;
|
||||||
|
&:hover, &.active {
|
||||||
|
background-color: var(--color-green);
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
&:focus {
|
||||||
|
outline: .1rem var(--color-green) solid;
|
||||||
|
color: var(--color-grey);
|
||||||
|
background-color: white;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* MAIN */
|
||||||
|
main {
|
||||||
|
grid-area: main;
|
||||||
|
background-color: var(--color-green-light);
|
||||||
|
padding-bottom: 2rem;
|
||||||
|
|
||||||
|
article {
|
||||||
|
margin-top: 1.3em;
|
||||||
|
|
||||||
|
.intro {
|
||||||
|
font-size: 1.2rem;
|
||||||
|
line-height: 1.35em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* LIST VIEW */
|
||||||
|
main > article {
|
||||||
|
> article {
|
||||||
|
background-color: white;
|
||||||
|
padding: 0;
|
||||||
|
margin-bottom: 1.5rem;
|
||||||
|
overflow: hidden;
|
||||||
|
|
||||||
|
> :not(img) {
|
||||||
|
padding-left: 1rem;
|
||||||
|
padding-right: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
margin-top: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* FOOTER */
|
||||||
|
|
||||||
|
footer {
|
||||||
|
color: var(--color-green-light);
|
||||||
|
a {
|
||||||
|
color: var(--color-green-light);
|
||||||
|
&:hover { color: white; text-decoration: underline }
|
||||||
|
}
|
||||||
|
background-color: var(--color-green);
|
||||||
|
grid-area: footer;
|
||||||
|
> div {
|
||||||
|
margin: 1rem 0;
|
||||||
|
text-align: center;
|
||||||
|
.generated { font-size: .6rem }
|
||||||
|
}
|
||||||
|
}
|
||||||
61
custom/templates/base.php
Normal file
61
custom/templates/base.php
Normal file
|
|
@ -0,0 +1,61 @@
|
||||||
|
<?php
|
||||||
|
$startTime = microtime(true);
|
||||||
|
$publicDir = realpath($_SERVER['DOCUMENT_ROOT']);
|
||||||
|
$customCssPath = __DIR__ . '/../styles/base.css';
|
||||||
|
$defaultCssPath = __DIR__ . '/../../default/styles/base.css';
|
||||||
|
$cssPath = file_exists($customCssPath) ? $customCssPath : $defaultCssPath;
|
||||||
|
$cssUrl = file_exists($customCssPath) ? '/app/styles/base.css' : '/app/default-styles/base.css';
|
||||||
|
$cssHash = file_exists($cssPath) ? hash_file('md5', $cssPath) : 'file_not_found';
|
||||||
|
if (isset($GLOBALS['_SERVER']['SCRIPT_FILENAME'])) { $includingFile = $_SERVER['SCRIPT_FILENAME']; }
|
||||||
|
if (!empty($includingFile)) { $pageName = pathinfo($includingFile, PATHINFO_FILENAME); }
|
||||||
|
if (!in_array(basename(dirname($includingFile)), ['latest', 'live', 'frozen']) && basename(dirname($includingFile)) !== '') { $dirName = basename(dirname($includingFile)); }
|
||||||
|
function getActiveClass($href) { return rtrim(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH), '/') === rtrim($href, '/') ? 'active' : ''; }
|
||||||
|
?>
|
||||||
|
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="no">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<meta name="fediverse:creator" content="@stopplidelsen@oslo.town">
|
||||||
|
<link rel="stylesheet" href="<?= $cssUrl ?>?v=<?= $cssHash ?>">
|
||||||
|
<link rel="icon" href="/favicon.svg" type="image/svg+xml">
|
||||||
|
<link rel="icon" href="/favicon.png" type="image/png">
|
||||||
|
<link href="/app/fonts/pt-serif/pt-serif.css" rel="stylesheet">
|
||||||
|
<title><?= htmlspecialchars($pageTitle ?? 'Stopp lidelsen') ?></title>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body class="<?php if (isset($dirName)) echo 'section-' . $dirName . ' '; ?><?php if (isset($pageName)) echo 'page-' . $pageName; ?>">
|
||||||
|
<div class="grid-container">
|
||||||
|
<header class="contain">
|
||||||
|
<div>
|
||||||
|
<div class="logo">
|
||||||
|
<a href="/"><?php include $publicDir . '/logo.svg'; ?></a>
|
||||||
|
</div>
|
||||||
|
<nav>
|
||||||
|
<ul>
|
||||||
|
<a href="/" class="<?php echo getActiveClass('/'); ?>"><li><?= htmlspecialchars($homeLabel ?? 'Forsiden') ?></li></a>
|
||||||
|
<?php if (!empty($navigation)): ?>
|
||||||
|
<?php foreach ($navigation as $item): ?>
|
||||||
|
<a href="<?= htmlspecialchars($item['url']) ?>" class="<?php echo getActiveClass($item['url']); ?>"><li><?= htmlspecialchars($item['title']) ?></li></a>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<main>
|
||||||
|
<?php echo $content ?? ''; ?>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer>
|
||||||
|
<div class="contain">
|
||||||
|
<p><a rel="me" href="https://oslo.town/@stopplidelsen">Følg oss på Mastodon</a></p>
|
||||||
|
<?php $endTime = microtime(true); $pageLoadTime = round(($endTime - $startTime) * 1000, 2); ?>
|
||||||
|
<p class="generated">Nettsiden er håndkodet av Ruben Solvang ved hjelp av HTML, CSS og minimale doser PHP. Det tok <?php echo $pageLoadTime; ?>ms å generere siden.</p>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
18
custom/templates/list.php
Normal file
18
custom/templates/list.php
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
<article>
|
||||||
|
<?php foreach ($items as $item): ?>
|
||||||
|
<article>
|
||||||
|
<?php if ($item['cover']): ?>
|
||||||
|
<img src="<?= htmlspecialchars($item['cover']) ?>" alt="<?= htmlspecialchars($item['title']) ?>">
|
||||||
|
<?php endif; ?>
|
||||||
|
<h1>
|
||||||
|
<a href="<?= htmlspecialchars($item['url']) ?>">
|
||||||
|
<?= htmlspecialchars($item['title']) ?>
|
||||||
|
</a>
|
||||||
|
</h1>
|
||||||
|
<p><?= htmlspecialchars($item['date']) ?></p>
|
||||||
|
<?php if ($item['summary']): ?>
|
||||||
|
<p><?= htmlspecialchars($item['summary']) ?></p>
|
||||||
|
<?php endif; ?>
|
||||||
|
</article>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</article>
|
||||||
Loading…
Add table
Add a link
Reference in a new issue