🏡 index : ~doyle/koselig.git

author Jordan Doyle <jordan@doyle.la> 2018-04-29 11:47:56.0 +00:00:00
committer Jordan Doyle <jordan@doyle.la> 2018-04-29 11:47:56.0 +00:00:00
commit
25953e509228ea716261e737493e1fcd71e193be [patch]
tree
a40b1d8e06f3faf64325f2d05b54b8ae8b89fdab
parent
32bd5c67a3052fc924d3e020c9541a30204d65fa
download
25953e509228ea716261e737493e1fcd71e193be.tar.gz

Support new versions of Laravel and Wordpress



Diff

 src/Providers/KoseligServiceProvider.php |  2 ++
 src/Providers/QueryServiceProvider.php   |  5 +++++
 src/Routing/Routing.php                  |  4 ++--
 src/Routing/TemplateRoute.php            |  6 +++---
 src/Support/Wordpress.php                |  2 +-
 src/helpers.php                          | 28 ++++++++++++++++++++++++++++
 6 files changed, 41 insertions(+), 6 deletions(-)

diff --git a/src/Providers/KoseligServiceProvider.php b/src/Providers/KoseligServiceProvider.php
index 5f446f3..5264c1f 100644
--- a/src/Providers/KoseligServiceProvider.php
+++ b/src/Providers/KoseligServiceProvider.php
@@ -5,7 +5,9 @@ use Illuminate\Support\ServiceProvider;
use Koselig\Auth\AuthServiceProvider;
use Koselig\Hashing\HashServiceProvider;
use Koselig\Mail\WordpressMailServiceProvider;
use Koselig\Models\Post;
use Koselig\Routing\RoutingServiceProvider;
use Koselig\Support\Wordpress;

/**
 * Registers all the other service providers used by this package.
diff --git a/src/Providers/QueryServiceProvider.php b/src/Providers/QueryServiceProvider.php
index d042834..b9fd843 100644
--- a/src/Providers/QueryServiceProvider.php
+++ b/src/Providers/QueryServiceProvider.php
@@ -4,6 +4,7 @@ namespace Koselig\Providers;
use Illuminate\Support\ServiceProvider;
use Koselig\Models\Post;
use Koselig\Proxy\Query;
use Koselig\Support\Wordpress;

/**
 * Service provider that provides bindings for the several queries that Wordpress
@@ -33,5 +34,9 @@ class QueryServiceProvider extends ServiceProvider

            return $this->cached[$post] ?? $this->cached[$post] = Post::find($post);
        });

        $this->app->singleton(Post::class, function () {
            return Post::find(Wordpress::id());
        });
    }
}
diff --git a/src/Routing/Routing.php b/src/Routing/Routing.php
index ae40345..757e0a0 100644
--- a/src/Routing/Routing.php
+++ b/src/Routing/Routing.php
@@ -183,8 +183,8 @@ class Routing
                $action = ['uses' => $action];
            }

            if (!empty(Route::getGroupStack())) {
                $group = end(Route::getGroupStack());
            if (!empty($stack = Route::getGroupStack())) {
                $group = end($stack);

                $action['uses'] = isset($group['namespace']) && strpos($action['uses'], '\\') !== 0 ?
                    $group['namespace'] . '\\' . $action['uses'] : $action['uses'];
diff --git a/src/Routing/TemplateRoute.php b/src/Routing/TemplateRoute.php
index 9778735..8930caa 100644
--- a/src/Routing/TemplateRoute.php
+++ b/src/Routing/TemplateRoute.php
@@ -41,7 +41,7 @@ class TemplateRoute extends Route
     */
    public function matches(Request $request, $includingMethod = true)
    {
        $post = $request->post();
        $post = $request->page();

        if (!$post) {
            // the page we are on either isn't in the CMS or doesn't have a template.
@@ -50,11 +50,11 @@ class TemplateRoute extends Route

        $slug = $post->getMeta('_wp_page_template');

        if (!empty($this->getAction()['domain']) && !Wordpress::multisite($this->getAction()['domain'])) {
        if (!empty($this->getAction('domain')) && !Wordpress::multisite($this->getAction('domain'))) {
            return false;
        }

        return $this->uri === $slug;
        return $this->uri === 'template/' . $slug;
    }

    /**
diff --git a/src/Support/Wordpress.php b/src/Support/Wordpress.php
index 46f87bd..9549c5d 100644
--- a/src/Support/Wordpress.php
+++ b/src/Support/Wordpress.php
@@ -131,7 +131,7 @@ class Wordpress
     */
    public static function site()
    {
        return get_current_site();
        return \get_current_site();
    }

    /**
diff --git a/src/helpers.php b/src/helpers.php
index 1fc35e8..2999d7a 100644
--- a/src/helpers.php
+++ b/src/helpers.php
@@ -4,6 +4,34 @@ use Koselig\Models\Meta;
use Koselig\Models\Post;
use Koselig\Support\RecursiveMenuIterator;

if (!function_exists('__')) {
    /**
     * Tries to get a translation from both Laravel and Wordpress.
     *
     * @param $key key of the translation
     * @param array|string $replace replacements for laravel or domain for wordpress
     * @param string $locale locale for laravel, not used for wordpress
     * @return string
     */
    function __($key, $replace = [], $locale = null)
    {
        if (is_array($replace)) {
            try {
                return app('translator')->getFromJson($key, $replace, $locale);
            } catch (\Exception $e) {
                // failed to get translation from Laravel
                if ((!empty($replace) && !is_string($replace)) || !empty($locale)) {
                    // this doesn't look like something we can pass to WordPress, lets
                    // rethrow the exception
                    throw $e;
                }
            }
        }

        return translate($key, empty($replace) ? 'default' : $replace);
    }
}

if (!function_exists('query')) {
    /**
     * Get the main query or convert a {@link WP_Query} to a {@link \Koselig\Proxy\Query} proxy instance.