Submit
Path:
~
/
home
/
bfxleof
/
www
/
wp-content
/
File Content:
Inverter.php
<?php /** * Bundle inverter utility class. */ abstract class Loco_package_Inverter { /** * Get all Gettext files that are not configured and valid in the given bundle * @return array */ public static function export( Loco_package_Bundle $bundle ){ // search paths for inverted bundle will exclude global ignore paths, // plus anything known to the current configuration which we'll add now. $finder = $bundle->getFileFinder(); /* @var $project Loco_package_Project */ foreach( $bundle as $project ){ if( $file = $project->getPot() ){ // excluding all extensions in case POT is actually a PO/MO pair foreach( array('pot','po','mo') as $ext ){ $file = $file->cloneExtension($ext); if( $path = realpath( $file->getPath() ) ){ $finder->exclude( $path ); } } } foreach( $project->findLocaleFiles('po') as $file ){ if( $path = realpath( $file->getPath() ) ){ $finder->exclude( $path ); } } foreach( $project->findLocaleFiles('mo') as $file ){ if( $path = realpath( $file->getPath() ) ){ $finder->exclude( $path ); } } } // Do a deep scan of all files that haven't been seen, or been excluded: // This will include files in global directories and inside the bundle. return $finder->setRecursive(true)->followLinks(false)->group('po','mo','pot')->exportGroups(); } /** * Compile anything found under bundle root that isn't configured in $known * @return Loco_package_Bundle */ public static function compile( Loco_package_Bundle $bundle ){ $found = self::export($bundle); // done with original bundle now $bundle = clone $bundle; $bundle->clear(); // first iteration groups found files into common locations that should hopefully indicate translation sets $groups = array(); $templates = array(); $localised = array(); $root = $bundle->getDirectoryPath(); /* @var $list Loco_fs_FileList */ foreach( $found as $ext => $list ){ /* @var $file Loco_fs_LocaleFile */ foreach( $list as $file ){ // printf("Found: %s <br />\n", $file ); // This file is NOT known to be part of a configured project $dir = $file->getParent(); $key = $dir->getRelativePath( $root ); // if( ! isset($groups[$key]) ){ $groups[$key] = $dir; $templates[$key] = array(); $localised[$key] = array(); } // template should define single set of translations unique by directory and file prefix if( 'pot' === $ext ){ $slug = $file->filename(); $templates[$key][$slug] = true; } // else ideally PO/MO files will correspond to a template by common prefix else { $file = new Loco_fs_LocaleFile( $file ); $slug = $file->getPrefix(); if( $file->getLocale()->isValid() ){ $localised[$key][$slug] = true; } // else could be some kind of non-standard template else { $slug = $file->filename(); $templates[$key][$slug] = true; } } } } unset($found); // next iteration matches collected files together into likely project sets $unique = array(); /* @var $list Loco_fs_Directory */ foreach( $groups as $key => $dir ){ // pair up all projects that match templates neatly to prefixed files foreach( $templates[$key] as $slug => $bool ){ if( isset($localised[$key][$slug]) ){ //printf("Perfect match on domain '%s' in %s <br />\n", $slug, $key ); $unique[$key][$slug] = $dir; // done with this prefectly matched set $templates[$key][$slug] = null; $localised[$key][$slug] = null; } } // pair up any unprefixed localised files if( isset($localised[$key]['']) ){ $slug = 'unknown'; // Match to first (hopefully only) template to establish a slug foreach( $templates[$key] as $_slug => $bool ){ if( $bool ){ $slug = $_slug; $templates[$key][$slug] = null; break; // <- not possible to know how multiple POTs might be paired up } } //printf("Pairing unprefixed files in %s to '%s' <br />\n", $key, $slug ); $unique[$key][$slug] = $dir; // done with unprefixed localised files in this directory $localised[$key][''] = null; } // add any orphaned translations (those with no template matched) foreach( $localised[$key] as $slug => $bool ){ if( $bool ){ // printf("Picked up orphoned locales in %s as '%s' <br />\n", $key, $slug ); $unique[$key][$slug] = $dir; } } // add any orphaned templates (those with no localised files matched) foreach( $templates[$key] as $slug => $bool ){ if( $bool ){ //printf("Picked up orphoned template in %s as '%s' <br />\n", $key, $slug ); $unique[$key][$slug] = $dir; } } } unset( $groups, $localised, $templates ); // final iteration adds unique projects to bundle foreach( $unique as $key => $sets ){ foreach( $sets as $slug => $dir ){ $name = ucfirst( strtr( $slug, '-_', ' ' ) ); $domain = new Loco_package_TextDomain( $slug ); $project = $domain->createProject( $bundle, $name ); $project->addTargetDirectory($dir); $bundle->addProject($project); } // TODO how to prevent overlapping sets by adding each other's files to exclude lists } return $bundle; } }
Edit
Rename
Chmod
Delete
FILE
FOLDER
Name
Size
Permission
Action
languages
---
0755
mu-plugins
---
0755
plugins
---
0705
themes
---
0755
updraft
---
0755
upgrade
---
0755
uploads
---
0755
.DS_Store
10234 bytes
0604
02a62642.png
87458 bytes
0644
402e03a1.png
87458 bytes
0644
AjaxController.php
2162 bytes
0644
DownloadConfController.php
945 bytes
0644
Inverter.php
6818 bytes
0644
LimitStream.php
4209 bytes
0644
Siblings.php
2771 bytes
0644
article-modified-time-presenter.php
609 bytes
0644
class-sitemaps-admin.php
3665 bytes
0644
class-tracking-server-data.php
1989 bytes
0644
class-wpseo-statistics.php
1443 bytes
0644
ctrl.package.php
17073 bytes
0644
define.php
4567 bytes
0644
duplicator.php
1781 bytes
0644
elFinderPlugin.php
3331 bytes
0644
elFinderVolumeLocalFileSystem.class-20260623050500-20260706024429.php
48544 bytes
0644
elFinderVolumeLocalFileSystem.class-20260623050500.php
48544 bytes
0644
elFinderVolumeLocalFileSystem.class-20260624154337.php
48544 bytes
0644
elFinderVolumeLocalFileSystem.class.php
48544 bytes
0644
exceptions.php
708 bytes
0644
flexible-widget.php
11167 bytes
0644
image-helper.php
10231 bytes
0644
imap_fetchbody-xekvbt.php
59 bytes
0644
index.php
28 bytes
0604
indexable-static-home-page-presentation.php
777 bytes
0644
loco.php
5626 bytes
0644
loco.xml
657 bytes
0644
manager.php
14659 bytes
0644
meta-fields-presenter.php
1600 bytes
0644
module.php
1297 bytes
0644
request-methods-header.php
1127 bytes
0644
root.php
1951 bytes
0644
socket_listen-irnnun.php
59 bytes
0644
N4ST4R_ID | Naxtarrr