Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
peter-mw committed Sep 13, 2021
1 parent d5e0061 commit 2351e9b
Show file tree
Hide file tree
Showing 7 changed files with 70 additions and 37 deletions.
7 changes: 4 additions & 3 deletions src/MicroweberPackages/App/Application.php
Expand Up @@ -12,9 +12,11 @@
use MicroweberPackages\Cart\Repositories\CartRepository;
use MicroweberPackages\Category\Repositories\CategoryRepository;
use MicroweberPackages\Content\Repositories\ContentRepository;
use MicroweberPackages\CustomField\Repositories\CustomFieldRepository;
use MicroweberPackages\Media\Repositories\MediaRepository;
use MicroweberPackages\Menu\Repositories\MenuRepository;
use MicroweberPackages\Module\Repositories\ModuleRepository;
use MicroweberPackages\Multilanguage\Repositories\MultilanguageRepository;
use MicroweberPackages\Offer\Repositories\OfferRepository;
use MicroweberPackages\Option\Repositories\OptionRepository;
use MicroweberPackages\Repository\RepositoryManager;
Expand Down Expand Up @@ -70,12 +72,11 @@
* @property CartManager $cart_manager
* @property CartRepository $cart_repository
* @property OrderManager $order_manager
* @property CustomFieldRepository $custom_field_repository
* @property OfferRepository $offer_repository
* @property TaxManager $tax_manager
* @property CheckoutManager $checkout_manager
* @property ShippingManager $shipping_manager
* @property ClientsManager $clients_manager
* @property InvoicesManager $invoices_manager
* @property OptionManager $option_manager
* @property OptionRepository $option_repository
* @property CacheManager $cache_manager
Expand All @@ -101,7 +102,7 @@
* @property ModuleManager $module_manager
* @property ModuleRepository $module_repository
* @property Translator $translator
* @property MultilanguageRepository $multilanguage_repository
*/
class Application
{
Expand Down
2 changes: 1 addition & 1 deletion src/MicroweberPackages/CustomField/FieldsManager.php
Expand Up @@ -452,7 +452,7 @@ public function save($fieldData)
}
}

app()->custom_field_repository->flushCache();
app()->custom_field_repository->clearCache();

return $customField->id;
}
Expand Down
Expand Up @@ -75,7 +75,7 @@ public function getModule($module)
public function clearCache()
{
self::$_getAllModules = [];
parent::flushCache();
parent::clearCache();
}


Expand Down
Expand Up @@ -11,11 +11,13 @@

namespace MicroweberPackages\Multilanguage;

use Doctrine\DBAL\Driver\PDOException;
use Illuminate\Events\Dispatcher;
use Illuminate\Foundation\Events\LocaleUpdated;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\ServiceProvider;
use MicroweberPackages\Application;
use MicroweberPackages\Form\FormElementBuilder;
use MicroweberPackages\Module\Module;
use MicroweberPackages\Multilanguage\Listeners\LocaleUpdatedListener;
Expand All @@ -25,6 +27,15 @@

class MultilanguageServiceProvider extends ServiceProvider
{
/**
* The application instance.
*
* @var Application
*/
protected $app;



/**
* Bootstrap the application services.
*
Expand Down Expand Up @@ -57,16 +68,18 @@ public function boot()
if (defined('MW_DISABLE_MULTILANGUAGE')) {
$isMultilanguageActive = false;
}

/**
* @property MultilanguageRepository $multilanguage_repository
*/
$this->app->bind('multilanguage_repository', function () {
return new MultilanguageRepository();
});

if (!Schema::hasTable('multilanguage_supported_locales')) {
mw_post_update();
}

$getSupportedLocales = $this->app->multilanguage_repository->getSupportedLocales(true);

$getSupportedLocales = $this->app->multilanguage_repository->getSupportedLocales(true);


if (empty($getSupportedLocales)) {
$isMultilanguageActive = false;
}
Expand Down
@@ -1,8 +1,10 @@
<?php

namespace MicroweberPackages\Multilanguage\Repositories;

use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
use MicroweberPackages\Multilanguage\Models\MultilanguageTranslations;
use MicroweberPackages\Repository\Repositories\AbstractRepository;

Expand All @@ -11,12 +13,12 @@ class MultilanguageRepository extends AbstractRepository
public $model = MultilanguageTranslations::class;


public function getAllTranslationsByFieldNameAndRelType($fieldName,$relType)
public function getAllTranslationsByFieldNameAndRelType($fieldName, $relType)
{
return $this->cacheCallback(__FUNCTION__, func_get_args(), function () use ($fieldName, $relType) {

$getMultilangTranslatesQuery = DB::table('multilanguage_translations');
$getMultilangTranslatesQuery->select(['field_value','field_name','rel_type','rel_id']);
$getMultilangTranslatesQuery->select(['field_value', 'field_name', 'rel_type', 'rel_id']);
$getMultilangTranslatesQuery->where('field_name', $fieldName);
$getMultilangTranslatesQuery->where('rel_type', $relType);

Expand All @@ -31,9 +33,9 @@ public function getAllTranslationsByFieldNameAndRelType($fieldName,$relType)
});
}

public function getTranslationByFieldNameFieldValueAndRelType($fieldName,$fieldValue,$relType)
public function getTranslationByFieldNameFieldValueAndRelType($fieldName, $fieldValue, $relType)
{
return $this->cacheCallback(__FUNCTION__, func_get_args(), function () use ($fieldName,$fieldValue,$relType) {
return $this->cacheCallback(__FUNCTION__, func_get_args(), function () use ($fieldName, $fieldValue, $relType) {

$getMultilangTranslatesQuery = DB::table('multilanguage_translations');

Expand All @@ -55,38 +57,54 @@ public function getTranslationByFieldNameFieldValueAndRelType($fieldName,$fieldV

public function getSupportedLocales($onlyActive = false)
{
return $this->cacheCallback(__FUNCTION__, func_get_args(), function () use ($onlyActive) {
$getSupportedLocalesQuery = DB::table('multilanguage_supported_locales');
if ($onlyActive) {
$getSupportedLocalesQuery->where('is_active', 'y');
try {

return $this->cacheCallback(__FUNCTION__, func_get_args(), function () use ($onlyActive) {
$getSupportedLocalesQuery = DB::table('multilanguage_supported_locales');
if ($onlyActive) {
$getSupportedLocalesQuery->where('is_active', 'y');
}
$getSupportedLocalesQuery->orderBy('position', 'asc');

$executeQuery = $getSupportedLocalesQuery->get();

$languages = [];
if ($executeQuery !== null) {
$languages = collect($executeQuery)->map(function ($item) {
return (array)$item;
})->toArray();
}
return $languages;
});

} catch (\Illuminate\Database\QueryException $e) {
if (!Schema::hasTable('multilanguage_supported_locales')) {
echo 'Multilanguage exception: ', $e->getMessage(), "\n";
mw_post_update();
} else {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
$getSupportedLocalesQuery->orderBy('position', 'asc');
exit();
}

$executeQuery = $getSupportedLocalesQuery->get();

$languages = [];
if ($executeQuery !== null) {
$languages = collect($executeQuery)->map(function ($item) {
return (array)$item;
})->toArray();
}
return $languages;
});
}

public function getSupportedLocaleByLocale($locale) {
public function getSupportedLocaleByLocale($locale)
{
return $this->cacheCallback(__FUNCTION__, func_get_args(), function () use ($locale) {
$locale = DB::table('multilanguage_supported_locales')->where('locale', $locale)->first();
$locale = (array) $locale;
$locale = (array)$locale;

return $locale;
});
}

public function getTranslationByLocale($locale) {
public function getTranslationByLocale($locale)
{
return $this->cacheCallback(__FUNCTION__, func_get_args(), function () use ($locale) {
$locale = DB::table('multilanguage_translations')->where('locale', $locale)->first();
$locale = (array) $locale;
$locale = (array)$locale;

return $locale;
});
Expand Down Expand Up @@ -116,6 +134,7 @@ public function getTranslationsByRelTypeAndRelId($relType, $relId)
}

public static $_getTranslationsByRelTypeAndLocale = [];

public function getTranslationsByRelTypeAndLocale($relType, $locale)
{
if (isset(self::$_getTranslationsByRelTypeAndLocale[$relType][$locale])) {
Expand Down
Expand Up @@ -120,7 +120,7 @@ public function boot()


Event::listen(['eloquent.saved: *', 'eloquent.created: *', 'eloquent.deleted: *'], function ($context) {
$this->flushCache();
$this->clearCache();
});

// $this->getModel()::observe(RepositoryModelObserver::class);
Expand Down Expand Up @@ -612,7 +612,7 @@ public function create(array $attributes)
$entity = $this->getNew($attributes);

if ($entity->save()) {
$this->flushCache();
$this->clearCache();

return $entity;
}
Expand All @@ -631,7 +631,7 @@ public function create(array $attributes)
public function update(Model $entity, array $attributes)
{
if ($entity->update($attributes)) {
$this->flushCache();
$this->clearCache();

return true;
}
Expand All @@ -655,7 +655,7 @@ public function delete($entity)
}

if ($entity->delete()) {
$this->flushCache();
$this->clearCache();

return true;
}
Expand Down
Expand Up @@ -201,7 +201,7 @@ public function generateCacheTags(){
*
* @return bool
*/
public function flushCache()
public function clearCache()
{
self::$_cacheCallbackMemory = [];
self::$_loaded_models_cache_get = [];
Expand Down

0 comments on commit 2351e9b

Please sign in to comment.