0

I'm using Wolf CMS, but I want to make it easier to include snippets.

At the moment one has to write this to include a snippet:

<?php $this->includeSnippet('scripts'); ?>

In here 'scripts' is the name of the snippet.

What I'd like to do is write a little piece of code that interprets this:

###scripts### as <?php $this->includeSnippet('scripts'); ?>

Cause the line of code is always the same, only the snippet name changes.

Would that be possible or am I asking the impossible here?

Thanks in advance

2
  • You could use preg_replace Commented Feb 2, 2016 at 10:23
  • Thanks for your comment, I fiddled around with it but unfortunately I'm not getting the results I would like. I need to define a string upfront (if I'm correct) and the string would be different each time. So eg: scripts, contactblock etc. Commented Feb 2, 2016 at 10:56

1 Answer 1

1

You could define a function for this:

function includeSnippetsFromList($snippets) {
    foreach ($snippets as $snippet) {
        $this->includeSnippet($snippet);
    }
}

... and then call it like this:

$snippets = "snippet1,snippet2,scripts,specialSnippet,layoutSnippet";
// turn string to array of snippets and call function to include them:
includeSnippetsFromList(explode(",", $snippets));

The way you separate the snippets can of course be different.

If you want to have them embedded in a long text and wrapped like ###scripts###, then you could use preg_match_all to extract them:

function includeSnippetsFromText($text) {
    preg_match_all("/###(.*?)###/", $text, $matches);

    foreach ($matches[1] as $snippet) {
        $this->includeSnippet($snippet);
    }
}

Use it like this:

$text = 
"This is a text
that has snippets, like
###snippet1###
###snippet2###
###scripts###
but also these:
###specialSnippet###
###layoutSnippet###
This is the end of this text.";

includeSnippetsFromText($text);
Sign up to request clarification or add additional context in comments.

2 Comments

Thanks! I'm going to work with this. Is this based on the core of Wolf CMS? Cause it looks like it.
This is pure PHP, except for the embedded call to includeSnippet of course, which needs Wolf CMS. So the functions I propose just allow you to do multiple includeSnippet calls with one call.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.