shell bypass 403
UnknownSec Shell
: /home/bouloter/public_html/__MACOSX/vendor/joedixon/laravel-translation/src/Drivers/ [ drwxr-xr-x ]
<?php
namespace JoeDixon\Translation\Drivers;
use Illuminate\Support\Collection;
use Illuminate\Support\Str;
abstract class Translation
{
/**
* Find all of the translations in the app without translation for a given language.
*
* @param string $language
* @return array
*/
public function findMissingTranslations($language)
{
return array_diff_assoc_recursive(
$this->scanner->findTranslations(),
$this->allTranslationsFor($language)
);
}
/**
* Save all of the translations in the app without translation for a given language.
*
* @param string $language
* @return void
*/
public function saveMissingTranslations($language = false)
{
$languages = $language ? [$language => $language] : $this->allLanguages();
foreach ($languages as $language => $name) {
$missingTranslations = $this->findMissingTranslations($language);
foreach ($missingTranslations as $type => $groups) {
foreach ($groups as $group => $translations) {
foreach ($translations as $key => $value) {
if (Str::contains($group, 'single')) {
$this->addSingleTranslation($language, $group, $key);
} else {
$this->addGroupTranslation($language, $group, $key);
}
}
}
}
}
}
/**
* Get all translations for a given language merged with the source language.
*
* @param string $language
* @return Collection
*/
public function getSourceLanguageTranslationsWith($language)
{
$sourceTranslations = $this->allTranslationsFor($this->sourceLanguage);
$languageTranslations = $this->allTranslationsFor($language);
return $sourceTranslations->map(function ($groups, $type) use ($language, $languageTranslations) {
return $groups->map(function ($translations, $group) use ($type, $language, $languageTranslations) {
$translations = $translations->toArray();
array_walk($translations, function (&$value, &$key) use ($type, $group, $language, $languageTranslations) {
$value = [
$this->sourceLanguage => $value,
$language => $languageTranslations->get($type, collect())->get($group, collect())->get($key),
];
});
return $translations;
});
});
}
/**
* Filter all keys and translations for a given language and string.
*
* @param string $language
* @param string $filter
* @return Collection
*/
public function filterTranslationsFor($language, $filter)
{
$allTranslations = $this->getSourceLanguageTranslationsWith(($language));
if (! $filter) {
return $allTranslations;
}
return $allTranslations->map(function ($groups, $type) use ($language, $filter) {
return $groups->map(function ($keys, $group) use ($language, $filter, $type) {
return collect($keys)->filter(function ($translations, $key) use ($group, $language, $filter, $type) {
return strs_contain([$group, $key, $translations[$language], $translations[$this->sourceLanguage]], $filter);
});
})->filter(function ($keys) {
return $keys->isNotEmpty();
});
});
}
}