/data/prod/digitalcultures/2019/vendor/erusev/parsedown-extra/ParsedownExtra.php
# Markup
protected function blockMarkupComplete($Block)
{
if ( ! isset($Block['void']))
{
$Block['markup'] = $this->processTag($Block['markup']);
}
return $Block;
}
#
# Setext
protected function blockSetextHeader($Line, array $Block = null)
{
$Block = parent::blockSetextHeader($Line, $Block);
if (preg_match('/[ ]*{('.$this->regexAttribute.'+)}[ ]*$/', $Block['element']['text'], $matches, PREG_OFFSET_CAPTURE))
{
$attributeString = $matches[1][0];
$Block['element']['attributes'] = $this->parseAttributeData($attributeString);
$Block['element']['text'] = substr($Block['element']['text'], 0, $matches[0][1]);
}
return $Block;
}
#
# Inline Elements
#
#
# Footnote Marker
protected function inlineFootnoteMarker($Excerpt)
{
Arguments
"Trying to access array offset on value of type null"
/data/prod/digitalcultures/2019/vendor/erusev/parsedown-extra/ParsedownExtra.php
# Markup
protected function blockMarkupComplete($Block)
{
if ( ! isset($Block['void']))
{
$Block['markup'] = $this->processTag($Block['markup']);
}
return $Block;
}
#
# Setext
protected function blockSetextHeader($Line, array $Block = null)
{
$Block = parent::blockSetextHeader($Line, $Block);
if (preg_match('/[ ]*{('.$this->regexAttribute.'+)}[ ]*$/', $Block['element']['text'], $matches, PREG_OFFSET_CAPTURE))
{
$attributeString = $matches[1][0];
$Block['element']['attributes'] = $this->parseAttributeData($attributeString);
$Block['element']['text'] = substr($Block['element']['text'], 0, $matches[0][1]);
}
return $Block;
}
#
# Inline Elements
#
#
# Footnote Marker
protected function inlineFootnoteMarker($Excerpt)
{
Arguments
8
"Trying to access array offset on value of type null"
"/data/prod/digitalcultures/2019/vendor/erusev/parsedown-extra/ParsedownExtra.php"
241
array:2 [
"Line" => array:3 [
"body" => "- liczba miejsc: 20"
"indent" => 0
"text" => "- liczba miejsc: 20"
]
"Block" => null
]
/data/prod/digitalcultures/2019/vendor/erusev/parsedown/Parsedown.php
$marker = $text[0];
# ~
$blockTypes = $this->unmarkedBlockTypes;
if (isset($this->BlockTypes[$marker]))
{
foreach ($this->BlockTypes[$marker] as $blockType)
{
$blockTypes []= $blockType;
}
}
#
# ~
foreach ($blockTypes as $blockType)
{
$Block = $this->{'block'.$blockType}($Line, $CurrentBlock);
if (isset($Block))
{
$Block['type'] = $blockType;
if ( ! isset($Block['identified']))
{
$Blocks []= $CurrentBlock;
$Block['identified'] = true;
}
if ($this->isBlockContinuable($blockType))
{
$Block['continuable'] = true;
}
$CurrentBlock = $Block;
continue 2;
Arguments
array:3 [
"body" => "- liczba miejsc: 20"
"indent" => 0
"text" => "- liczba miejsc: 20"
]
null
/data/prod/digitalcultures/2019/vendor/erusev/parsedown/Parsedown.php
const version = '1.6.0';
# ~
function text($text)
{
# make sure no definitions are set
$this->DefinitionData = array();
# standardize line breaks
$text = str_replace(array("\r\n", "\r"), "\n", $text);
# remove surrounding line breaks
$text = trim($text, "\n");
# split text into lines
$lines = explode("\n", $text);
# iterate through lines to identify blocks
$markup = $this->lines($lines);
# trim line breaks
$markup = trim($markup, "\n");
return $markup;
}
#
# Setters
#
function setBreaksEnabled($breaksEnabled)
{
$this->breaksEnabled = $breaksEnabled;
return $this;
}
protected $breaksEnabled;
Arguments
array:78 [
0 => "* W ramach programu Digital Cultures 2019, w dniu 28 września 2019, odbędzie się cykl warsztatów."
1 => "* Niniejsze warsztaty poprowadzi artysta i kurator, Joseph Cutts (Sheffield, UK)."
2 => "* "
3 => "* Udział w warsztatach jest bezpłatny. "
4 => "* "
5 => "* "
6 => "## Otwarcie na nowe formy w sztuce (kiedyś byłem modny)"
7 => "* "
8 => "* W dobie dynamicznie rozwijających się nowych technologii artystka bądź kurator staje się niejako zakładnikiem trendów, jeżeli chce być na bieżąco bądź nawet by móc w ogóle uczestniczyć w społeczeństwie. Powstaje pytanie, czy zaawansowane technologicznie rozwiązania przyćmiewają wagę tematu/podmiotu oraz formy dzieła sztuki?"
9 => "* Jako artyści i artystki stajemy przed pytaniem, jakie są najważniejsze właściwości naszych prac? Które ich cechy chcemy uwypuklić? Gdzie chciałbym/chciałabym wystawiać swoje prace? Czy jako kuratorzy i kuratorki nie powinniśmy otworzyć się na dzieła sztuki czerpiące ze zdobyczy technologicznych takich jak VR, AR czy systemy"
10 => "* rozpoznawania twarzy lub przynajmniej pogodzić się z faktem, że takie prace powstają? A jeśli tak, to czy nie powinniśmy się zatroszczyć o to, by to temat/podmiot dzieła oraz jego forma wciąż decydowały o tym, czy dana praca zostanie pokazana na wystawie?"
11 => "* "
12 => "* Celem warsztatów jest próba zdefiniowania, co, przyjmując kryterium aktualności, możemy uznać za trend w sztuce, skąd bierze się takie postrzeganie, oraz jakie środowiska są otwarte bądź zaczynają się otwierać na tego typu formy w sztuce."
13 => "* "
14 => "* Warsztat jest podzielony na dwie części, które poruszą następujące kwestie:"
15 => " "
16 => "**I "
17 => "Część dla młodych artystów i artystek oraz twórców i twórczyń projektów, tworzących z wykorzystaniem"
18 => "nowych technologii** (znajdujących na początku kariery artystycznej bądź posiadających już niewielki dorobek"
19 => "artystyczny)"
20 => ""
21 => "**Zakres tematyczny**"
22 => "* - Formy ponadczasowe a trendy w sztuce"
23 => "* - Pozyskiwanie finansowania i pitching – Jak tworzyć opisy swoich prac? Jakie są główne składowe opisu?"
24 => "* - Czego potrzebujesz w trakcie wystawy? Obecności w prasie, przestrzeni, prestiżu, pokrycia kosztów produkcji?"
25 => "* - Budżety produkcyjne: kompletna zmiana zasad gry"
26 => "* - Tworzenie modelu wystawienniczego (kwestie administracyjne i materialne)"
27 => "* - Festiwale filmowe, festiwale sztuki, teatry, muzea i galerie, instytucje edukacyjne i finansujące"
28 => "* - Trwałość: Dystrybucja i reprezentacja w galeriach"
29 => "* - Dyskusja grupowa"
30 => " "
31 => "**Informacje praktyczne:**"
32 => "- liczba miejsc: 20"
33 => "- Uczestnicy i uczestniczki zostaną wyselekcjonowani na podstawie formularza zgłoszeniowego; liczba miejsc jest"
34 => "ograniczona. Nie decyduje kolejność zgłoszeń. Do udziału w warsztatach nie jest wymagana akredytacja ani karnet"
35 => "Digital Cultures. Warsztaty są bezpłatne."
36 => "- Wybrana dwudziestka powinna być wolna w ww. terminie"
37 => "- Koszty podróży pokrywają uczestnicy i uczestniczki"
38 => " "
39 => "**Data**: 28.09.2019 "
40 => "**Godzina**: 14:30-16:00 "
41 => "**Czas trwania**: 90 min. "
42 => "**Miejsce**: Instytut Adama Mickiewicza, ul. Mokotowska 25, Warszawa, Sala: Wielka Improwizacja "
43 => ""
44 => " "
45 => "**II "
46 => "Dla kuratorów i kuratorek programów festiwali, kuratorów i kuratorek pracujących w muzeach i galeriach"
47 => "sztuki oraz dla pracowników i pracowniczek państwowych instytucji kulturalnych oraz instytucji"
48 => "finansujących**"
49 => " "
50 => "Zakres tematyczny:"
51 => "- Formy ponadczasowe a trendy w sztuce"
52 => "- Gdzie badać naukowo oraz wystawiać współczesną sztukę technologiczną? Festiwale, wystawy"
53 => "- Czy stwarzamy sztuce nowych mediów takie same możliwości jak ugruntowanym i ponadczasowym formom? Na"
54 => "przykład sztuka VR a sztuka wideo"
55 => "- Co możemy zaoferować? Wsparcie, przestrzeń, prestiż, pokrycie kosztów produkcji, wynagrodzenie dla artystów i"
56 => "artystek?"
57 => "- Gdzie można umieścić współczesne wyposażenie?"
58 => "- Trwałość modnych mediów: dystrybucja i reprezentacja w galeriach"
59 => "- Dyskusja grupowa"
60 => " "
61 => "**Informacje praktyczne:**"
62 => "- Liczba miejsc: 20"
63 => "- Uczestnicy i uczestniczki zostaną wyselekcjonowani na podstawie formularza zgłoszeniowego; liczba miejsc jest"
64 => "ograniczona. Nie decyduje kolejność zgłoszeń. Do udziału w warsztatach nie jest wymagana akredytacja ani karnet"
65 => "Digital Cultures. Warsztaty są bezpłatne."
66 => "- Wybrana dwudziestka powinna być wolna w ww. terminie"
67 => "- Koszty podróży pokrywają uczestnicy i uczestniczki"
68 => " "
69 => "**Data**: 28.09.2019 "
70 => "**Godzina**: 16:30-17:30 "
71 => "**Czas trwania**: 60 min. "
72 => "**Miejsce**: Instytut Adama Mickiewicza, ul. Mokotowska 25, Warszawa, Sala: Wielka Improwizacja "
73 => " "
74 => ""
75 => "Udział w warsztatach jest bezpłatny. Wymagane jest przesłanie zgłoszenia, na podstawie którego wybrani zostaną uczestnicy warsztatu. "
76 => "Zgłoszenia, przesyłane za pośrednictwem formularza online, będą przyjmowane do 15 września 2019. "
77 => "Zakwalifikowani uczestnicy zostaną poinformowani o przyjęciu do udziału w warsztatach za pośrednictwem poczty email do dnia 18 września 2019."
]
/data/prod/digitalcultures/2019/vendor/erusev/parsedown-extra/ParsedownExtra.php
{
throw new Exception('ParsedownExtra requires a later version of Parsedown');
}
$this->BlockTypes[':'] []= 'DefinitionList';
$this->BlockTypes['*'] []= 'Abbreviation';
# identify footnote definitions before reference definitions
array_unshift($this->BlockTypes['['], 'Footnote');
# identify footnote markers before before links
array_unshift($this->InlineTypes['['], 'FootnoteMarker');
}
#
# ~
function text($text)
{
$markup = parent::text($text);
# merge consecutive dl elements
$markup = preg_replace('/<\/dl>\s+<dl>\s+/', '', $markup);
# add footnotes
if (isset($this->DefinitionData['Footnote']))
{
$Element = $this->buildFootnoteElement();
$markup .= "\n" . $this->element($Element);
}
return $markup;
}
#
# Blocks
#
Arguments
"""
* W ramach programu Digital Cultures 2019, w dniu 28 września 2019, odbędzie się cykl warsztatów.\n
* Niniejsze warsztaty poprowadzi artysta i kurator, Joseph Cutts (Sheffield, UK).\n
* \n
* Udział w warsztatach jest bezpłatny. \n
* \n
* \n
## Otwarcie na nowe formy w sztuce (kiedyś byłem modny)\n
* \n
* W dobie dynamicznie rozwijających się nowych technologii artystka bądź kurator staje się niejako zakładnikiem trendów, jeżeli chce być na bieżąco bądź nawet by móc w ogóle uczestniczyć w społeczeństwie. Powstaje pytanie, czy zaawansowane technologicznie rozwiązania przyćmiewają wagę tematu/podmiotu oraz formy dzieła sztuki?\n
* Jako artyści i artystki stajemy przed pytaniem, jakie są najważniejsze właściwości naszych prac? Które ich cechy chcemy uwypuklić? Gdzie chciałbym/chciałabym wystawiać swoje prace? Czy jako kuratorzy i kuratorki nie powinniśmy otworzyć się na dzieła sztuki czerpiące ze zdobyczy technologicznych takich jak VR, AR czy systemy\n
* rozpoznawania twarzy lub przynajmniej pogodzić się z faktem, że takie prace powstają? A jeśli tak, to czy nie powinniśmy się zatroszczyć o to, by to temat/podmiot dzieła oraz jego forma wciąż decydowały o tym, czy dana praca zostanie pokazana na wystawie?\n
* \n
* Celem warsztatów jest próba zdefiniowania, co, przyjmując kryterium aktualności, możemy uznać za trend w sztuce, skąd bierze się takie postrzeganie, oraz jakie środowiska są otwarte bądź zaczynają się otwierać na tego typu formy w sztuce.\n
* \n
* Warsztat jest podzielony na dwie części, które poruszą następujące kwestie:\n
\n
**I \n
Część dla młodych artystów i artystek oraz twórców i twórczyń projektów, tworzących z wykorzystaniem\n
nowych technologii** (znajdujących na początku kariery artystycznej bądź posiadających już niewielki dorobek\n
artystyczny)\n
\n
**Zakres tematyczny**\n
* - Formy ponadczasowe a trendy w sztuce\n
* - Pozyskiwanie finansowania i pitching – Jak tworzyć opisy swoich prac? Jakie są główne składowe opisu?\n
* - Czego potrzebujesz w trakcie wystawy? Obecności w prasie, przestrzeni, prestiżu, pokrycia kosztów produkcji?\n
* - Budżety produkcyjne: kompletna zmiana zasad gry\n
* - Tworzenie modelu wystawienniczego (kwestie administracyjne i materialne)\n
* - Festiwale filmowe, festiwale sztuki, teatry, muzea i galerie, instytucje edukacyjne i finansujące\n
* - Trwałość: Dystrybucja i reprezentacja w galeriach\n
* - Dyskusja grupowa\n
\n
**Informacje praktyczne:**\n
- liczba miejsc: 20\n
- Uczestnicy i uczestniczki zostaną wyselekcjonowani na podstawie formularza zgłoszeniowego; liczba miejsc jest\n
ograniczona. Nie decyduje kolejność zgłoszeń. Do udziału w warsztatach nie jest wymagana akredytacja ani karnet\n
Digital Cultures. Warsztaty są bezpłatne.\n
- Wybrana dwudziestka powinna być wolna w ww. terminie\n
- Koszty podróży pokrywają uczestnicy i uczestniczki\n
\n
**Data**: 28.09.2019 \n
**Godzina**: 14:30-16:00 \n
**Czas trwania**: 90 min. \n
**Miejsce**: Instytut Adama Mickiewicza, ul. Mokotowska 25, Warszawa, Sala: Wielka Improwizacja \n
\n
\n
**II \n
Dla kuratorów i kuratorek programów festiwali, kuratorów i kuratorek pracujących w muzeach i galeriach\n
sztuki oraz dla pracowników i pracowniczek państwowych instytucji kulturalnych oraz instytucji\n
finansujących**\n
\n
Zakres tematyczny:\n
- Formy ponadczasowe a trendy w sztuce\n
- Gdzie badać naukowo oraz wystawiać współczesną sztukę technologiczną? Festiwale, wystawy\n
- Czy stwarzamy sztuce nowych mediów takie same możliwości jak ugruntowanym i ponadczasowym formom? Na\n
przykład sztuka VR a sztuka wideo\n
- Co możemy zaoferować? Wsparcie, przestrzeń, prestiż, pokrycie kosztów produkcji, wynagrodzenie dla artystów i\n
artystek?\n
- Gdzie można umieścić współczesne wyposażenie?\n
- Trwałość modnych mediów: dystrybucja i reprezentacja w galeriach\n
- Dyskusja grupowa\n
\n
**Informacje praktyczne:**\n
- Liczba miejsc: 20\n
- Uczestnicy i uczestniczki zostaną wyselekcjonowani na podstawie formularza zgłoszeniowego; liczba miejsc jest\n
ograniczona. Nie decyduje kolejność zgłoszeń. Do udziału w warsztatach nie jest wymagana akredytacja ani karnet\n
Digital Cultures. Warsztaty są bezpłatne.\n
- Wybrana dwudziestka powinna być wolna w ww. terminie\n
- Koszty podróży pokrywają uczestnicy i uczestniczki\n
\n
**Data**: 28.09.2019 \n
**Godzina**: 16:30-17:30 \n
**Czas trwania**: 60 min. \n
**Miejsce**: Instytut Adama Mickiewicza, ul. Mokotowska 25, Warszawa, Sala: Wielka Improwizacja \n
\n
\n
Udział w warsztatach jest bezpłatny. Wymagane jest przesłanie zgłoszenia, na podstawie którego wybrani zostaną uczestnicy warsztatu. \n
Zgłoszenia, przesyłane za pośrednictwem formularza online, będą przyjmowane do 15 września 2019. \n
Zakwalifikowani uczestnicy zostaną poinformowani o przyjęciu do udziału w warsztatach za pośrednictwem poczty email do dnia 18 września 2019.
"""
/data/prod/digitalcultures/2019/system/src/Grav/Common/Page/Page.php
$markdownDefaults['extra'] = $this->markdown_extra ?: $config->get('system.pages.markdown_extra');
}
$extra = $markdownDefaults['extra'] ?? false;
$defaults = [
'markdown' => $markdownDefaults,
'images' => $config->get('system.images', [])
];
$excerpts = new Excerpts($this, $defaults);
// Initialize the preferred variant of Parsedown
if ($extra) {
$parsedown = new ParsedownExtra($excerpts);
} else {
$parsedown = new Parsedown($excerpts);
}
$this->content = $parsedown->text($this->content);
}
/**
* Process the Twig page content.
*/
private function processTwig()
{
$twig = Grav::instance()['twig'];
$this->content = $twig->processPage($this, $this->content);
}
/**
* Fires the onPageContentProcessed event, and caches the page content using a unique ID for the page
*/
public function cachePageContent()
{
$cache = Grav::instance()['cache'];
$cache_id = md5('page' . $this->getCacheKey());
$cache->save($cache_id, ['content' => $this->content, 'content_meta' => $this->content_meta]);
Arguments
"""
* W ramach programu Digital Cultures 2019, w dniu 28 września 2019, odbędzie się cykl warsztatów.\n
* Niniejsze warsztaty poprowadzi artysta i kurator, Joseph Cutts (Sheffield, UK).\n
* \n
* Udział w warsztatach jest bezpłatny. \n
* \n
* \n
## Otwarcie na nowe formy w sztuce (kiedyś byłem modny)\n
* \n
* W dobie dynamicznie rozwijających się nowych technologii artystka bądź kurator staje się niejako zakładnikiem trendów, jeżeli chce być na bieżąco bądź nawet by móc w ogóle uczestniczyć w społeczeństwie. Powstaje pytanie, czy zaawansowane technologicznie rozwiązania przyćmiewają wagę tematu/podmiotu oraz formy dzieła sztuki?\n
* Jako artyści i artystki stajemy przed pytaniem, jakie są najważniejsze właściwości naszych prac? Które ich cechy chcemy uwypuklić? Gdzie chciałbym/chciałabym wystawiać swoje prace? Czy jako kuratorzy i kuratorki nie powinniśmy otworzyć się na dzieła sztuki czerpiące ze zdobyczy technologicznych takich jak VR, AR czy systemy\n
* rozpoznawania twarzy lub przynajmniej pogodzić się z faktem, że takie prace powstają? A jeśli tak, to czy nie powinniśmy się zatroszczyć o to, by to temat/podmiot dzieła oraz jego forma wciąż decydowały o tym, czy dana praca zostanie pokazana na wystawie?\n
* \n
* Celem warsztatów jest próba zdefiniowania, co, przyjmując kryterium aktualności, możemy uznać za trend w sztuce, skąd bierze się takie postrzeganie, oraz jakie środowiska są otwarte bądź zaczynają się otwierać na tego typu formy w sztuce.\n
* \n
* Warsztat jest podzielony na dwie części, które poruszą następujące kwestie:\n
\n
**I \n
Część dla młodych artystów i artystek oraz twórców i twórczyń projektów, tworzących z wykorzystaniem\n
nowych technologii** (znajdujących na początku kariery artystycznej bądź posiadających już niewielki dorobek\n
artystyczny)\n
\n
**Zakres tematyczny**\n
* - Formy ponadczasowe a trendy w sztuce\n
* - Pozyskiwanie finansowania i pitching – Jak tworzyć opisy swoich prac? Jakie są główne składowe opisu?\n
* - Czego potrzebujesz w trakcie wystawy? Obecności w prasie, przestrzeni, prestiżu, pokrycia kosztów produkcji?\n
* - Budżety produkcyjne: kompletna zmiana zasad gry\n
* - Tworzenie modelu wystawienniczego (kwestie administracyjne i materialne)\n
* - Festiwale filmowe, festiwale sztuki, teatry, muzea i galerie, instytucje edukacyjne i finansujące\n
* - Trwałość: Dystrybucja i reprezentacja w galeriach\n
* - Dyskusja grupowa\n
\n
**Informacje praktyczne:**\n
- liczba miejsc: 20\n
- Uczestnicy i uczestniczki zostaną wyselekcjonowani na podstawie formularza zgłoszeniowego; liczba miejsc jest\n
ograniczona. Nie decyduje kolejność zgłoszeń. Do udziału w warsztatach nie jest wymagana akredytacja ani karnet\n
Digital Cultures. Warsztaty są bezpłatne.\n
- Wybrana dwudziestka powinna być wolna w ww. terminie\n
- Koszty podróży pokrywają uczestnicy i uczestniczki\n
\n
**Data**: 28.09.2019 \n
**Godzina**: 14:30-16:00 \n
**Czas trwania**: 90 min. \n
**Miejsce**: Instytut Adama Mickiewicza, ul. Mokotowska 25, Warszawa, Sala: Wielka Improwizacja \n
\n
\n
**II \n
Dla kuratorów i kuratorek programów festiwali, kuratorów i kuratorek pracujących w muzeach i galeriach\n
sztuki oraz dla pracowników i pracowniczek państwowych instytucji kulturalnych oraz instytucji\n
finansujących**\n
\n
Zakres tematyczny:\n
- Formy ponadczasowe a trendy w sztuce\n
- Gdzie badać naukowo oraz wystawiać współczesną sztukę technologiczną? Festiwale, wystawy\n
- Czy stwarzamy sztuce nowych mediów takie same możliwości jak ugruntowanym i ponadczasowym formom? Na\n
przykład sztuka VR a sztuka wideo\n
- Co możemy zaoferować? Wsparcie, przestrzeń, prestiż, pokrycie kosztów produkcji, wynagrodzenie dla artystów i\n
artystek?\n
- Gdzie można umieścić współczesne wyposażenie?\n
- Trwałość modnych mediów: dystrybucja i reprezentacja w galeriach\n
- Dyskusja grupowa\n
\n
**Informacje praktyczne:**\n
- Liczba miejsc: 20\n
- Uczestnicy i uczestniczki zostaną wyselekcjonowani na podstawie formularza zgłoszeniowego; liczba miejsc jest\n
ograniczona. Nie decyduje kolejność zgłoszeń. Do udziału w warsztatach nie jest wymagana akredytacja ani karnet\n
Digital Cultures. Warsztaty są bezpłatne.\n
- Wybrana dwudziestka powinna być wolna w ww. terminie\n
- Koszty podróży pokrywają uczestnicy i uczestniczki\n
\n
**Data**: 28.09.2019 \n
**Godzina**: 16:30-17:30 \n
**Czas trwania**: 60 min. \n
**Miejsce**: Instytut Adama Mickiewicza, ul. Mokotowska 25, Warszawa, Sala: Wielka Improwizacja \n
\n
\n
Udział w warsztatach jest bezpłatny. Wymagane jest przesłanie zgłoszenia, na podstawie którego wybrani zostaną uczestnicy warsztatu. \n
Zgłoszenia, przesyłane za pośrednictwem formularza online, będą przyjmowane do 15 września 2019. \n
Zakwalifikowani uczestnicy zostaną poinformowani o przyjęciu do udziału w warsztatach za pośrednictwem poczty email do dnia 18 września 2019.\n
"""
/data/prod/digitalcultures/2019/system/src/Grav/Common/Page/Page.php
} else {
if ($this->content === false || $cache_enable === false) {
$this->content = $this->raw_content;
Grav::instance()->fireEvent('onPageContentRaw', new Event(['page' => $this]));
if ($twig_first) {
if ($process_twig) {
$this->processTwig();
}
if ($process_markdown) {
$this->processMarkdown();
}
// Content Processed but not cached yet
Grav::instance()->fireEvent('onPageContentProcessed', new Event(['page' => $this]));
} else {
if ($process_markdown) {
$this->processMarkdown();
}
// Content Processed but not cached yet
Grav::instance()->fireEvent('onPageContentProcessed', new Event(['page' => $this]));
if ($process_twig) {
$this->processTwig();
}
}
if ($cache_enable) {
$this->cachePageContent();
}
}
}
// Handle summary divider
$delimiter = $config->get('site.summary.delimiter', '===');
$divider_pos = mb_strpos($this->content, "<p>{$delimiter}</p>");
if ($divider_pos !== false) {
/data/prod/digitalcultures/2019/system/src/Grav/Common/Twig/Twig.php
return $output;
}
/**
* Twig process that renders the site layout. This is the main twig process that renders the overall
* page and handles all the layout for the site display.
*
* @param string $format Output format (defaults to HTML).
*
* @return string the rendered output
* @throws \RuntimeException
*/
public function processSite($format = null, array $vars = [])
{
// set the page now its been processed
$this->grav->fireEvent('onTwigSiteVariables');
$pages = $this->grav['pages'];
$page = $this->grav['page'];
$content = $page->content();
$twig_vars = $this->twig_vars;
$twig_vars['theme'] = $this->grav['config']->get('theme');
$twig_vars['pages'] = $pages->root();
$twig_vars['page'] = $page;
$twig_vars['header'] = $page->header();
$twig_vars['media'] = $page->media();
$twig_vars['content'] = $content;
$ext = '.' . ($format ?: 'html') . TWIG_EXT;
// determine if params are set, if so disable twig cache
$params = $this->grav['uri']->params(null, true);
if (!empty($params)) {
$this->twig->setCache(false);
}
// Get Twig template layout
$template = $this->template($page->template() . $ext);
/data/prod/digitalcultures/2019/system/src/Grav/Common/Service/OutputServiceProvider.php
namespace Grav\Common\Service;
use Grav\Common\Page\Interfaces\PageInterface;
use Grav\Common\Twig\Twig;
use Pimple\Container;
use Pimple\ServiceProviderInterface;
class OutputServiceProvider implements ServiceProviderInterface
{
public function register(Container $container)
{
$container['output'] = function ($c) {
/** @var Twig $twig */
$twig = $c['twig'];
/** @var PageInterface $page */
$page = $c['page'];
return $twig->processSite($page->templateFormat());
};
}
}
Arguments
/data/prod/digitalcultures/2019/vendor/pimple/pimple/src/Pimple/Container.php
{
if (!isset($this->keys[$id])) {
throw new UnknownIdentifierException($id);
}
if (
isset($this->raw[$id])
|| !\is_object($this->values[$id])
|| isset($this->protected[$this->values[$id]])
|| !\method_exists($this->values[$id], '__invoke')
) {
return $this->values[$id];
}
if (isset($this->factories[$this->values[$id]])) {
return $this->values[$id]($this);
}
$raw = $this->values[$id];
$val = $this->values[$id] = $raw($this);
$this->raw[$id] = $raw;
$this->frozen[$id] = true;
return $val;
}
/**
* Checks if a parameter or an object is set.
*
* @param string $id The unique identifier for the parameter or object
*
* @return bool
*/
public function offsetExists($id)
{
return isset($this->keys[$id]);
}
/**
Arguments
/data/prod/digitalcultures/2019/system/src/Grav/Common/Processors/RenderProcessor.php
namespace Grav\Common\Processors;
use Grav\Common\Page\Interfaces\PageInterface;
use Grav\Framework\Psr7\Response;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
class RenderProcessor extends ProcessorBase
{
public $id = 'render';
public $title = 'Render';
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
{
$this->startTimer();
$container = $this->container;
$output = $container['output'];
if ($output instanceof ResponseInterface) {
return $output;
}
ob_start();
// Use internal Grav output.
$container->output = $output;
$container->fireEvent('onOutputGenerated');
echo $container->output;
// remove any output
$container->output = '';
$this->container->fireEvent('onOutputRendered');
$html = ob_get_clean();
Arguments
/data/prod/digitalcultures/2019/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
private $handler;
/** @var ContainerInterface|null */
private $container;
/**
* {@inheritdoc}
* @throws InvalidArgumentException
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = array_shift($this->middleware);
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
ServerRequest {#154}
RequestHandler {#502}
/data/prod/digitalcultures/2019/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
/data/prod/digitalcultures/2019/system/src/Grav/Common/Processors/DebuggerAssetsProcessor.php
namespace Grav\Common\Processors;
use Grav\Framework\Psr7\Response;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
class DebuggerAssetsProcessor extends ProcessorBase
{
public $id = 'debugger_assets';
public $title = 'Debugger Assets';
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
{
$this->startTimer();
$this->container['debugger']->addAssets();
$this->stopTimer();
return $handler->handle($request);
}
}
Arguments
/data/prod/digitalcultures/2019/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
private $handler;
/** @var ContainerInterface|null */
private $container;
/**
* {@inheritdoc}
* @throws InvalidArgumentException
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = array_shift($this->middleware);
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
ServerRequest {#154}
RequestHandler {#500}
/data/prod/digitalcultures/2019/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
/data/prod/digitalcultures/2019/system/src/Grav/Common/Processors/PagesProcessor.php
$this->addMessage("Routed to page {$page->rawRoute()} (type: {$page->template()}) [Not Found fallback]");
} else {
$this->addMessage("Routed to page {$page->rawRoute()} (type: {$page->template()})");
$task = $this->container['task'];
$action = $this->container['action'];
if ($task) {
$event = new Event(['task' => $task, 'page' => $page]);
$this->container->fireEvent('onPageTask', $event);
$this->container->fireEvent('onPageTask.' . $task, $event);
} elseif ($action) {
$event = new Event(['action' => $action, 'page' => $page]);
$this->container->fireEvent('onPageAction', $event);
$this->container->fireEvent('onPageAction.' . $action, $event);
}
}
$this->stopTimer();
return $handler->handle($request);
}
}
Arguments
/data/prod/digitalcultures/2019/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
private $handler;
/** @var ContainerInterface|null */
private $container;
/**
* {@inheritdoc}
* @throws InvalidArgumentException
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = array_shift($this->middleware);
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
ServerRequest {#154}
RequestHandler {#221}
/data/prod/digitalcultures/2019/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
/data/prod/digitalcultures/2019/system/src/Grav/Common/Processors/TwigProcessor.php
*/
namespace Grav\Common\Processors;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
class TwigProcessor extends ProcessorBase
{
public $id = 'twig';
public $title = 'Twig';
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
{
$this->startTimer();
$this->container['twig']->init();
$this->stopTimer();
return $handler->handle($request);
}
}
Arguments
/data/prod/digitalcultures/2019/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
private $handler;
/** @var ContainerInterface|null */
private $container;
/**
* {@inheritdoc}
* @throws InvalidArgumentException
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = array_shift($this->middleware);
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
ServerRequest {#154}
RequestHandler {#195}
/data/prod/digitalcultures/2019/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
/data/prod/digitalcultures/2019/system/src/Grav/Common/Processors/AssetsProcessor.php
namespace Grav\Common\Processors;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
class AssetsProcessor extends ProcessorBase
{
public $id = '_assets';
public $title = 'Assets';
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
{
$this->startTimer();
$this->container['assets']->init();
$this->container->fireEvent('onAssetsInitialized');
$this->stopTimer();
return $handler->handle($request);
}
}
Arguments
/data/prod/digitalcultures/2019/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
private $handler;
/** @var ContainerInterface|null */
private $container;
/**
* {@inheritdoc}
* @throws InvalidArgumentException
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = array_shift($this->middleware);
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
ServerRequest {#154}
RequestHandler {#192}
/data/prod/digitalcultures/2019/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
/data/prod/digitalcultures/2019/system/src/Grav/Common/Processors/SchedulerProcessor.php
namespace Grav\Common\Processors;
use RocketTheme\Toolbox\Event\Event;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
class SchedulerProcessor extends ProcessorBase
{
public $id = '_scheduler';
public $title = 'Scheduler';
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
{
$this->startTimer();
$scheduler = $this->container['scheduler'];
$this->container->fireEvent('onSchedulerInitialized', new Event(['scheduler' => $scheduler]));
$this->stopTimer();
return $handler->handle($request);
}
}
Arguments
/data/prod/digitalcultures/2019/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
private $handler;
/** @var ContainerInterface|null */
private $container;
/**
* {@inheritdoc}
* @throws InvalidArgumentException
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = array_shift($this->middleware);
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
ServerRequest {#154}
RequestHandler {#162}
/data/prod/digitalcultures/2019/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
/data/prod/digitalcultures/2019/system/src/Grav/Common/Processors/BackupsProcessor.php
namespace Grav\Common\Processors;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
class BackupsProcessor extends ProcessorBase
{
public $id = '_backups';
public $title = 'Backups';
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
{
$this->startTimer();
$backups = $this->container['backups'];
$backups->init();
$this->stopTimer();
return $handler->handle($request);
}
}
Arguments
/data/prod/digitalcultures/2019/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
private $handler;
/** @var ContainerInterface|null */
private $container;
/**
* {@inheritdoc}
* @throws InvalidArgumentException
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = array_shift($this->middleware);
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
ServerRequest {#154}
RequestHandler {#159}
/data/prod/digitalcultures/2019/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
/data/prod/digitalcultures/2019/system/src/Grav/Common/Processors/TasksProcessor.php
}
$this->stopTimer();
return $response;
} catch (NotFoundException $e) {
// Task not found: Let it pass through.
}
}
if ($task) {
$this->container->fireEvent('onTask.' . $task);
} elseif ($action) {
$this->container->fireEvent('onAction.' . $action);
}
}
$this->stopTimer();
return $handler->handle($request);
}
}
Arguments
/data/prod/digitalcultures/2019/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
private $handler;
/** @var ContainerInterface|null */
private $container;
/**
* {@inheritdoc}
* @throws InvalidArgumentException
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = array_shift($this->middleware);
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
ServerRequest {#154}
RequestHandler {#157}
/data/prod/digitalcultures/2019/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
/data/prod/digitalcultures/2019/system/src/Grav/Common/Processors/RequestProcessor.php
$uri = $request->getUri();
$ext = mb_strtolower(pathinfo($uri->getPath(), PATHINFO_EXTENSION));
$request = $request
->withAttribute('grav', $this->container)
->withAttribute('time', $_SERVER['REQUEST_TIME_FLOAT'] ?? GRAV_REQUEST_TIME)
->withAttribute('route', Uri::getCurrentRoute()->withExtension($ext))
->withAttribute('referrer', $this->container['uri']->referrer());
$event = new RequestHandlerEvent(['request' => $request, 'handler' => $handler]);
/** @var RequestHandlerEvent $event */
$event = $this->container->fireEvent('onRequestHandlerInit', $event);
$response = $event->getResponse();
$this->stopTimer();
if ($response) {
return $response;
}
return $handler->handle($request);
}
}
Arguments
/data/prod/digitalcultures/2019/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
private $handler;
/** @var ContainerInterface|null */
private $container;
/**
* {@inheritdoc}
* @throws InvalidArgumentException
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = array_shift($this->middleware);
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
ServerRequest {#154}
RequestHandler {#152}
/data/prod/digitalcultures/2019/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
/data/prod/digitalcultures/2019/system/src/Grav/Common/Processors/ThemesProcessor.php
*/
namespace Grav\Common\Processors;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
class ThemesProcessor extends ProcessorBase
{
public $id = 'themes';
public $title = 'Themes';
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
{
$this->startTimer();
$this->container['themes']->init();
$this->stopTimer();
return $handler->handle($request);
}
}
Arguments
/data/prod/digitalcultures/2019/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
private $handler;
/** @var ContainerInterface|null */
private $container;
/**
* {@inheritdoc}
* @throws InvalidArgumentException
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = array_shift($this->middleware);
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
ServerRequest {#69}
RequestHandler {#148}
/data/prod/digitalcultures/2019/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
/data/prod/digitalcultures/2019/system/src/Grav/Common/Processors/PluginsProcessor.php
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
class PluginsProcessor extends ProcessorBase
{
public $id = 'plugins';
public $title = 'Plugins';
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
{
$this->startTimer();
// TODO: remove in 2.0.
$this->container['accounts'];
$this->container['plugins']->init();
$this->container->fireEvent('onPluginsInitialized');
$this->stopTimer();
return $handler->handle($request);
}
}
Arguments
/data/prod/digitalcultures/2019/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
private $handler;
/** @var ContainerInterface|null */
private $container;
/**
* {@inheritdoc}
* @throws InvalidArgumentException
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = array_shift($this->middleware);
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
ServerRequest {#69}
RequestHandler {#134}
/data/prod/digitalcultures/2019/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
/data/prod/digitalcultures/2019/system/src/Grav/Common/Processors/InitializeProcessor.php
}
/** @var Uri $uri */
$uri = $this->container['uri'];
$uri->init();
// Redirect pages with trailing slash if configured to do so.
$path = $uri->path() ?: '/';
if ($path !== '/'
&& $config->get('system.pages.redirect_trailing_slash', false)
&& Utils::endsWith($path, '/')) {
$redirect = (string) $uri::getCurrentRoute()->toString();
$this->container->redirect($redirect);
}
$this->container->setLocale();
$this->stopTimer();
return $handler->handle($request);
}
public function processCli(): void
{
// Load configuration.
$this->container['config']->init();
$this->container['plugins']->setup();
// Disable debugger.
$this->container['debugger']->enabled(false);
// Set timezone, locale.
/** @var Config $config */
$config = $this->container['config'];
$timezone = $config->get('system.timezone');
if ($timezone) {
date_default_timezone_set($timezone);
}
$this->container->setLocale();
Arguments
/data/prod/digitalcultures/2019/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
private $handler;
/** @var ContainerInterface|null */
private $container;
/**
* {@inheritdoc}
* @throws InvalidArgumentException
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = array_shift($this->middleware);
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
ServerRequest {#69}
RequestHandler {#126}
/data/prod/digitalcultures/2019/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
/data/prod/digitalcultures/2019/system/src/Grav/Common/Processors/DebuggerProcessor.php
*/
namespace Grav\Common\Processors;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
class DebuggerProcessor extends ProcessorBase
{
public $id = '_debugger';
public $title = 'Init Debugger';
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
{
$this->startTimer();
$this->container['debugger']->init();
$this->stopTimer();
return $handler->handle($request);
}
}
Arguments
/data/prod/digitalcultures/2019/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
private $handler;
/** @var ContainerInterface|null */
private $container;
/**
* {@inheritdoc}
* @throws InvalidArgumentException
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = array_shift($this->middleware);
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
ServerRequest {#69}
RequestHandler {#124}
/data/prod/digitalcultures/2019/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
/data/prod/digitalcultures/2019/system/src/Grav/Common/Processors/ErrorsProcessor.php
*/
namespace Grav\Common\Processors;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
class ErrorsProcessor extends ProcessorBase
{
public $id = '_errors';
public $title = 'Error Handlers Reset';
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
{
$this->startTimer();
$this->container['errors']->resetHandlers();
$this->stopTimer();
return $handler->handle($request);
}
}
Arguments
/data/prod/digitalcultures/2019/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
private $handler;
/** @var ContainerInterface|null */
private $container;
/**
* {@inheritdoc}
* @throws InvalidArgumentException
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = array_shift($this->middleware);
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
ServerRequest {#69}
RequestHandler {#112}
/data/prod/digitalcultures/2019/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
/data/prod/digitalcultures/2019/system/src/Grav/Common/Processors/LoggerProcessor.php
/** @var Config $config */
$config = $grav['config'];
switch ($config->get('system.log.handler', 'file')) {
case 'syslog':
$log = $grav['log'];
$log->popHandler();
$facility = $config->get('system.log.syslog.facility', 'local6');
$logHandler = new SyslogHandler('grav', $facility);
$formatter = new LineFormatter("%channel%.%level_name%: %message% %extra%");
$logHandler->setFormatter($formatter);
$log->pushHandler($logHandler);
break;
}
$this->stopTimer();
return $handler->handle($request);
}
}
Arguments
/data/prod/digitalcultures/2019/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
private $handler;
/** @var ContainerInterface|null */
private $container;
/**
* {@inheritdoc}
* @throws InvalidArgumentException
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = array_shift($this->middleware);
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
ServerRequest {#69}
RequestHandler {#100}
/data/prod/digitalcultures/2019/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
/data/prod/digitalcultures/2019/system/src/Grav/Common/Processors/ConfigurationProcessor.php
namespace Grav\Common\Processors;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
class ConfigurationProcessor extends ProcessorBase
{
public $id = '_config';
public $title = 'Configuration';
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
{
$this->startTimer();
$this->container['config']->init();
$this->container['plugins']->setup();
$this->stopTimer();
return $handler->handle($request);
}
}
Arguments
/data/prod/digitalcultures/2019/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
private $handler;
/** @var ContainerInterface|null */
private $container;
/**
* {@inheritdoc}
* @throws InvalidArgumentException
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = array_shift($this->middleware);
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
ServerRequest {#69}
RequestHandler {#93}
/data/prod/digitalcultures/2019/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
/data/prod/digitalcultures/2019/system/src/Grav/Common/Grav.php
},
'debuggerAssetsProcessor' => function () {
return new DebuggerAssetsProcessor($this);
},
'renderProcessor' => function () {
return new RenderProcessor($this);
},
]
);
$default = function (ServerRequestInterface $request) {
return new Response(404);
};
/** @var Debugger $debugger */
$debugger = $this['debugger'];
$collection = new RequestHandler($this->middleware, $default, $container);
$response = $collection->handle($this['request']);
$body = $response->getBody();
// Handle ETag and If-None-Match headers.
if ($response->getHeaderLine('ETag') === '1') {
$etag = md5($body);
$response = $response->withHeader('ETag', $etag);
if ($this['request']->getHeaderLine('If-None-Match') === $etag) {
$response = $response->withStatus(304);
$body = '';
}
}
$this->header($response);
echo $body;
$debugger->render();
register_shutdown_function([$this, 'shutdown']);
}
Arguments
/data/prod/digitalcultures/2019/index.php
if (!is_file($autoload)) {
die('Please run: <i>bin/grav install</i>');
}
// Register the auto-loader.
$loader = require $autoload;
use Grav\Common\Grav;
use RocketTheme\Toolbox\Event\Event;
// Get the Grav instance
$grav = Grav::instance(
array(
'loader' => $loader
)
);
// Process the page
try {
$grav->process();
} catch (\Error $e) {
$grav->fireEvent('onFatalException', new Event(array('exception' => $e)));
throw $e;
} catch (\Exception $e) {
$grav->fireEvent('onFatalException', new Event(array('exception' => $e)));
throw $e;
}