Page MenuHomeDevCentral

No OneTemporary

diff --git a/PolylangHelperFunctions.php b/PolylangHelperFunctions.php
index 37a7573..31c9aea 100644
--- a/PolylangHelperFunctions.php
+++ b/PolylangHelperFunctions.php
@@ -1,105 +1,100 @@
<?php
/**
* Polylang community package for WP-CLI
*
* Helper global functions
*
* This is a temporary file, pending integration to Polylang API (api.php).
* As this API uses global functions starting with pll_, we follow the convention.
*
* @package WP-CLI
* @subpackage Polylang
* @author Sébastien Santoro aka Dereckson <dereckson@espace-win.org>
* @license http://www.opensource.org/licenses/bsd-license.php BSD
* @filesource
*/
/**
* Gets an array with the cached infomrmation about installed languages.
*
* @return array the installed languages, each item a PLL_Language object
*/
function pll_get_languages_list () {
global $polylang;
return $polylang->model->get_languages_list();
}
/**
* Gets default language information
*
* @param string $language_code ISO 639 or locale code
* @return array|null the default information for the the specified language, or null if it doesn't exist
*/
function pll_get_default_language_information($language_code) {
global $polylang;
- require(PLL_ADMIN_INC.'/languages.php');
+ require(PLL_SETTINGS_INC.'/languages.php');
foreach ($languages as $language) {
- if ($language[0] == $language_code || $language[1] == $language_code) {
- $rtl = (count($language) > 3) && ($language[3] == 'rtl');
- return array(
- 'code' => $language[0],
- 'locale' => $language[1],
- 'name' => $language[2],
- 'rtl' => $rtl
- );
+ if ( isset($language['code']) && $language['code'] == $language_code
+ || isset($language['locale']) && $language['locale'] == $language_code) {
+ return $language;
}
}
return null;
}
/**
* Determines if the specified language code is a valid one.
*
* @param string $language_code ISO 639 or locale code
* @return bool true if the language code is valid; otherwise, false.
*/
function pll_is_valid_language_code($language_code) {
return pll_get_default_language_information($language_code) !== null;
}
/**
* Adds a language with the default locale, name and direction.
*
* @param string $language_code ISO 639 or locale code
* @param int $language_order language order [optional]
* @param int &$error_code the error code, or 0 if the operation is successful
* @return bool true if the language has been added; false if an error has occured
*/
function pll_add_language($language_code, $language_order = 0, &$error_code = 0) {
global $polylang;
$adminModel = new PLL_Admin_Model($polylang->options);
$info = pll_get_default_language_information($language_code);
$args = array(
- name => $info['name'],
- slug => $info['code'],
- locale => $info['locale'],
- rtl => $info['rtl'] ? 1 : 0,
- term_group => $language_order
+ 'name' => $info['name'],
+ 'slug' => $info['code'],
+ 'locale' => $info['locale'],
+ 'rtl' => ($info['dir'] == 'rtl' ? 1 : 0),
+ 'term_group' => $language_order
);
$error_code = $adminModel->add_language($args);
return $error_code !== 0;
}
/**
* Determines whether a language is currently installed.
*
* @param string $language_code The language slug
* @return bool true if the language is installed; otherwise, false.
*/
function pll_is_language_installed($language_code) {
global $polylang;
$languages = $polylang->model->get_languages_list();
foreach ($languages as $language) {
if ($language->slug == $language_code) {
return true;
}
}
return false;
}
diff --git a/Polylang_Command.php b/Polylang_Command.php
index 12ab4d0..6666cd8 100644
--- a/Polylang_Command.php
+++ b/Polylang_Command.php
@@ -1,187 +1,186 @@
<?php
/**
* Polylang community package for WP-CLI
*
* Polylang_Command class — `wp polylang` commands
*
* @package WP-CLI
* @subpackage Polylang
* @author Sébastien Santoro aka Dereckson <dereckson@espace-win.org>
* @license http://www.opensource.org/licenses/bsd-license.php BSD
* @filesource
*/
if (!defined('WP_CLI')) {
return;
}
require_once 'PolylangHelperFunctions.php';
/**
* Implements polylang command, to interact with the Polylang plug-in.
*/
class Polylang_Command extends WP_CLI_Command {
/**
* Prints the languages currently available
*
* ## EXAMPLES
*
* wp polylang languages
*
- * @synopsis
* @alias langs
*/
function languages ($args, $assocArgs) {
$languages = pll_get_languages_list();
if (!count($languages)) {
WP_CLI::success("Less than two languages are currently configurated.");
return;
}
$default = pll_default_language();
foreach ($languages as $language) {
$line = "$language->slug — $language->name";
if ($language->slug == $default) {
$line .= ' [DEFAULT]';
}
WP_CLI::line($line);
}
}
/**
* Gets the site homepage URL in the specified language
*
* ## OPTIONS
*
* <language-code>
* : The language to get the home URL to.
*
* ## EXAMPLES
*
* wp polylang home
* wp polylang home fr
*
* @synopsis [<language-code>]
*/
function home ($args, $assocArgs) {
$lang = (count($args) == 1) ? $args[0] : '';
$url = pll_home_url($lang);
WP_CLI::line($url);
}
/**
* Gets a post or a term in the specified language
*
* ## OPTIONS
*
* <data-type>
* : 'post' or 'term'
*
* <data-id>
* : the ID of the object to get
*
* <language-count>
* : the language (if omitted, will be returned in the default language)
*
* ## EXAMPLES
*
* wp polylang get post 1 fr
*
* @synopsis <data-type> <data-id> [<language-code>]
*/
function get($args, $assocArgs) {
$lang = (count($args) == 2) ? '' : $args[2];
switch ($what = $args[0]) {
case 'post':
case 'term':
$method = 'pll_get_' . $what;
break;
default:
WP_CLI::error("Expected: wp polylang get <post or term> ..., not '$what'");
}
$id = $method($args[1], $lang);
WP_CLI::line($id);
}
/**
* Adds, gets information about or removes a language
*
* ## OPTIONS
*
* <operation>
* : the language operation (add, info, del)
*
* <language-code>
* : the language code
*
* <order>
* : for add operation, indicates the order of the language
*
* ## EXAMPLES
*
* wp polylang language add fr
* wp polylang language add nl 2
* wp polylang language info vec
* wp polylang language del vec
*
* @synopsis <operation> <language-code> [<order>]
* @alias lang
*/
function language ($args, $assocArgs) {
$language_code = $args[1];
$language_order = (count($args) == 3) ? $args[2] : 0;
$language_info = pll_get_default_language_information($language_code);
if ($language_info === null) {
WP_CLI::error("$language_code isn't a valid language code.");
return;
}
$language_installed = pll_is_language_installed($language_code);
switch ($args[0]) {
case 'info':
WP_CLI::line('Code: ' . $language_info['code']);
WP_CLI::line('Locale ' . $language_info['locale']);
WP_CLI::line('Name: ' . $language_info['name']);
- WP_CLI::line('RTL: ' . ($language_info['rtl'] ? 'yes' : 'no'));
+ WP_CLI::line('Dir: ' . $language_info['dir']);
WP_CLI::line('Installed: ' . ($language_installed ? 'yes' : 'no'));
break;
case 'add':
if ($language_installed) {
WP_CLI::warning("This language is already installed.");
return;
}
if (pll_add_language($language_code, $language_order, $error_code)) {
WP_CLI::success("Language added.");
return;
}
WP_CLI::error("Can't add the language.");
break;
case 'del':
if (!$language_installed) {
WP_CLI::warning("This language isn't installed.");
return;
}
WP_CLI::error("Not implemented: del language");
break;
default:
WP_CLI::error("Unknown command: polylang language $args[0]. Expected: add/del/info.");
}
}
}
WP_CLI::add_command('polylang', 'Polylang_Command');
WP_CLI::add_command('pll', 'Polylang_Command'); //alias for the users expecting to use the API shortname.
diff --git a/composer.json b/composer.json
index 7eff6d7..18c9b69 100644
--- a/composer.json
+++ b/composer.json
@@ -1,27 +1,35 @@
{
- "name": "dereckson/wp-cli-polylang",
+ "name": "superhuit-ch/wp-cli-polylang",
"type": "wp-cli-package",
"description": "Add a `wp polylang` command to support the Polylang plug-in",
"keywords": [
"wp-cli",
"polylang",
"i18n"
],
"homepage": "https://github.com/dereckson/wp-cli-polylang",
"license": "GPLv2",
- "authors": [{
+ "authors": [
+ {
"name": "Sébastien Santoro aka Dereckson",
"email": "dereckson@espace-win.org",
"homepage": "http://www.dereckson.be",
"role": "Developer"
- }],
+ },
+ {
+ "name": "Superhuit",
+ "email": "tech@superhuit.ch",
+ "homepage": "https://superhuit.ch",
+ "role": "Developer"
+ }
+ ],
"require": {
"php": ">=5.3.0"
},
"autoload": {
"files": [
"PolylangHelperFunctions.php",
"Polylang_Command.php"
]
}
}

File Metadata

Mime Type
text/x-diff
Expires
Thu, Sep 18, 16:19 (2 h, 52 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2991067
Default Alt Text
(10 KB)

Event Timeline