Separated documentation and revised modules info
This commit is contained in:
parent
95cbb8a5f2
commit
4fe068fd14
66 changed files with 149 additions and 1974 deletions
1138
CHANGELOG.txt
1138
CHANGELOG.txt
File diff suppressed because it is too large
Load diff
94
doc/CHANGELOG.txt
Normal file
94
doc/CHANGELOG.txt
Normal file
|
@ -0,0 +1,94 @@
|
|||
SuiteDesk 0.1.0, 2017-07-24
|
||||
---------------------------
|
||||
- Initial release:
|
||||
* Based on Drupal 6.38 - Final release (2016-02-24)
|
||||
* Main modules:
|
||||
Advanced CSS/JS Aggregation
|
||||
+ Advanced CSS/JS Aggregation 6.x-1.9
|
||||
|
||||
CCK
|
||||
+ CCK 6.x-3.0-alpha4
|
||||
+ Autocomplete Widgets 6.x-1.4
|
||||
+ Computed Field 6.x-1.0
|
||||
+ Content Taxonomy 6.x-1.0-rc2
|
||||
+ FileField 6.x-3.14
|
||||
+ Link 6.x-2.11
|
||||
+ Viewfield 6.x-2.0
|
||||
|
||||
Core - extended
|
||||
+ Administer Users by Role 6.x-1.4
|
||||
+ Administration menu 6.x-1.9
|
||||
+ Autosave 6.x-2.11
|
||||
+ Better Formats 6.x-1.2
|
||||
+ BookMadeSimple 6.x-3.4
|
||||
+ Clone module 6.x-1.3
|
||||
+ Custom Error 6.x-1.4
|
||||
+ Diff 6.x-2.3
|
||||
+ Extended Path Aliases 6.x-1.3
|
||||
+ Frequently Asked Questions 6.x-1.13
|
||||
+ Lexicon 6.x-1.4
|
||||
+ Link checker 6.x-2.8
|
||||
+ Node Comment 6.x-3.0-beta1
|
||||
+ Pathauto 6.x-1.6
|
||||
+ Recently read 6.x-1.0-beta1
|
||||
+ Role Delegation 6.x-1.4
|
||||
+ Search Restrict 6.x-1.5
|
||||
+ Token 6.x-1.19
|
||||
+ View revisions by content type 6.x-1.1
|
||||
+ Vocabulary Permissions Per Role 6.x-1.1
|
||||
+ Watcher 6.x-1.4
|
||||
|
||||
Custom Breadcrumbs
|
||||
+ Custom Breadcrumbs 6.x-2.0-rc1
|
||||
|
||||
Custom Search
|
||||
+ Custom Search 6.x-1.13
|
||||
|
||||
Date/Time
|
||||
+ Date 6.x-2.10
|
||||
+ Calendar 6.x-2.4
|
||||
|
||||
Image
|
||||
+ ImageAPI 6.x-1.10
|
||||
+ ImageCache 6.x-2.0-rc1
|
||||
|
||||
Input filters
|
||||
+ GeSHi Filter 6.x-1.5
|
||||
+ HTML Purifier 6.x-2.4
|
||||
+ Pathologic 6.x-3.4
|
||||
|
||||
Multilanguage
|
||||
+ Internationalization 6.x-1.10
|
||||
+ Transliteration 6.x-3.1
|
||||
|
||||
Printer, email and PDF versions
|
||||
+ Printer-friendly pages 6.x-1.19
|
||||
|
||||
Security
|
||||
+ Generate Password 6.x-1.4
|
||||
+ Password policy 6.x-1.11
|
||||
+ Secure Password Hashes 6.x-2.1
|
||||
+ Secure Pages 6.x-2.1
|
||||
+ Secure Pages Hijack Prevention 6.x-2.0-rc1
|
||||
|
||||
Storm
|
||||
+ Storm 6.x-2.2
|
||||
+ Storm Quick TimeTracker 6.x-2.x-dev
|
||||
|
||||
User interface
|
||||
+ CKEditor 6.x-1.15
|
||||
+ CKEditor Link 6.x-2.4
|
||||
+ External Links 6.x-1.17
|
||||
+ jQuery UI 6.x-1.5
|
||||
+ Lightbox2 6.x-1.11
|
||||
|
||||
Views
|
||||
+ Views 6.x-2.18
|
||||
|
||||
* Main libraries:
|
||||
+ CKEditor 4.6.1
|
||||
+ GeSHi - Generic Syntax Highlighter 1.0.8.11
|
||||
+ HTML Purifier Library 4.8.0
|
||||
+ jQuery UI 1.6
|
||||
+ TCPDF 6.2.6
|
||||
+ wkhtmltopdf 0.12.4
|
|
@ -1,6 +1,6 @@
|
|||
name = Administration menu
|
||||
description = "Provides a dropdown menu to most administrative tasks and other common destinations (to users with the proper permissions)."
|
||||
package = Core - optional
|
||||
package = Core - extended
|
||||
core = 6.x
|
||||
|
||||
; Information added by Drupal.org packaging script on 2015-02-21
|
||||
|
@ -8,4 +8,3 @@ version = "6.x-1.9"
|
|||
core = "6.x"
|
||||
project = "admin_menu"
|
||||
datestamp = "1424535792"
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
name = Node Comment
|
||||
description = Allows users to comment on and discuss published content using nodes.
|
||||
package = Core - optional
|
||||
package = Core - extended
|
||||
dependencies[] = views
|
||||
dependencies[] = comment
|
||||
core = 6.x
|
||||
|
@ -9,4 +9,3 @@ version = "6.x-3.0-beta1"
|
|||
core = "6.x"
|
||||
project = "nodecomment"
|
||||
datestamp = "1353097067"
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
name = Extended Path Aliases
|
||||
description = Automatically extend path aliases to include tabs, like "about-us/edit" for "node/123/edit". Allow these aliases to be entered in page specification wild-cards ("about-us*"), e.g for block visibility.
|
||||
package = Core - extended
|
||||
core = "6.x"
|
||||
; While you will need to enable the core Path module to enter aliases,
|
||||
; programmatically path_alias_xt has no dependency on it. Existing aliases
|
||||
|
@ -10,4 +11,3 @@ version = "6.x-1.3"
|
|||
core = "6.x"
|
||||
project = "path_alias_xt"
|
||||
datestamp = "1382565626"
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
name = Pathauto
|
||||
description = Provides a mechanism for modules to automatically generate aliases for the content they manage.
|
||||
package = Core - extended
|
||||
dependencies[] = path
|
||||
dependencies[] = token
|
||||
core = 6.x
|
||||
|
@ -10,4 +11,3 @@ version = "6.x-1.6"
|
|||
core = "6.x"
|
||||
project = "pathauto"
|
||||
datestamp = "1320076535"
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
name = Transliteration
|
||||
description = Converts non-latin text to US-ASCII and sanitizes file names.
|
||||
package = Multilanguage
|
||||
core = 6.x
|
||||
|
||||
|
||||
|
@ -8,4 +9,3 @@ version = "6.x-3.1"
|
|||
core = "6.x"
|
||||
project = "transliteration"
|
||||
datestamp = "1338540716"
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
; $Id: administerusersbyrole.info,v 1.1.2.2 2009/06/29 16:06:09 smokris Exp $
|
||||
name = Administer Users by Role
|
||||
description = "Allows users with 'administer users' permission and a role (specified in 'Permissions') to edit/delete other users with a specified role. Also provides control over user creation."
|
||||
package = Core - extended
|
||||
core = 6.x
|
||||
|
||||
; Information added by drupal.org packaging script on 2009-06-29
|
||||
|
@ -8,4 +9,3 @@ version = "6.x-1.4"
|
|||
core = "6.x"
|
||||
project = "administerusersbyrole"
|
||||
datestamp = "1246292114"
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
name = Autosave
|
||||
description = Saves node edits in the background in case browser dies while editing.
|
||||
|
||||
package = Other
|
||||
package = Core - extended
|
||||
project = autosave
|
||||
|
||||
core = 6.x
|
||||
|
@ -13,4 +13,3 @@ version = "6.x-2.11"
|
|||
core = "6.x"
|
||||
project = "autosave"
|
||||
datestamp = "1344266211"
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
; $Id: better_formats.info,v 1.1.2.2 2009/02/25 06:44:17 dragonwize Exp $
|
||||
name = Better Formats
|
||||
description = Enhances the core input format system by managing input format defaults and settings.
|
||||
package = Core - extended
|
||||
core = 6.x
|
||||
|
||||
; Information added by drupal.org packaging script on 2010-02-05
|
||||
|
@ -8,4 +9,3 @@ version = "6.x-1.2"
|
|||
core = "6.x"
|
||||
project = "better_formats"
|
||||
datestamp = "1265402405"
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
name = BookMadeSimple
|
||||
description = Automatic creation of a book and simple creation of child pages.
|
||||
package = Content
|
||||
package = Core - extended
|
||||
dependencies[] = book
|
||||
core=6.x
|
||||
; Information added by drupal.org packaging script on 2008-01-11
|
||||
|
@ -20,4 +20,3 @@ version = "6.x-3.4"
|
|||
core = "6.x"
|
||||
project = "book_made_simple"
|
||||
datestamp = "1348472235"
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
name = Custom Error
|
||||
description = Enables the creation of custom error pages for 404 and 403 errors, as well as redirects for 404s.
|
||||
package = Core - extended
|
||||
core=6.x
|
||||
|
||||
; Information added by Drupal.org packaging script on 2014-08-17
|
||||
|
@ -7,4 +8,3 @@ version = "6.x-1.4"
|
|||
core = "6.x"
|
||||
project = "customerror"
|
||||
datestamp = "1408264129"
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
name = Diff
|
||||
description = Show difference between node revisions.
|
||||
package = Core - extended
|
||||
core = 6.x
|
||||
|
||||
; Information added by drupal.org packaging script on 2011-08-07
|
||||
|
@ -7,4 +8,3 @@ version = "6.x-2.3"
|
|||
core = "6.x"
|
||||
project = "diff"
|
||||
datestamp = "1312697033"
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
name = Frequently Asked Questions
|
||||
description = "Manages configuration of questions for a FAQ page."
|
||||
package = Core - extended
|
||||
core = 6.x
|
||||
|
||||
; Information added by drupal.org packaging script on 2012-02-22
|
||||
|
@ -7,4 +8,3 @@ version = "6.x-1.13"
|
|||
core = "6.x"
|
||||
project = "faq"
|
||||
datestamp = "1329951344"
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
name = "GeSHi field"
|
||||
description = "Provides a CCK field for source code with GeSHI syntax highlighting."
|
||||
package = "Filters"
|
||||
package = "Input filters"
|
||||
core = 6.x
|
||||
dependencies[] = content
|
||||
dependencies[] = geshifilter
|
||||
|
@ -10,4 +10,3 @@ version = "6.x-1.5"
|
|||
core = "6.x"
|
||||
project = "geshifilter"
|
||||
datestamp = "1363644611"
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
name = "GeSHi Filter"
|
||||
description = "Provides a filter to highlight source code using the GeSHi library (Generic Syntax Highlighter)"
|
||||
package = "Filters"
|
||||
package = "Input filters"
|
||||
core = 6.x
|
||||
|
||||
; Information added by drupal.org packaging script on 2013-03-18
|
||||
|
@ -8,4 +8,3 @@ version = "6.x-1.5"
|
|||
core = "6.x"
|
||||
project = "geshifilter"
|
||||
datestamp = "1363644611"
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
name = "GeSHi node"
|
||||
description = "Provides source code node with GeSHi syntax highlighting."
|
||||
package = "Filters"
|
||||
package = "Input filters"
|
||||
dependencies[] = geshifilter
|
||||
core = 6.x
|
||||
|
||||
|
@ -9,4 +9,3 @@ version = "6.x-1.5"
|
|||
core = "6.x"
|
||||
project = "geshifilter"
|
||||
datestamp = "1363644611"
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
; $Id: htmlpurifier.info,v 1.6 2008/04/24 04:13:09 ezyang Exp $
|
||||
name = "HTML Purifier"
|
||||
description = "Filter that removes malicious HTML and ensures standards compliant output."
|
||||
package = "Input filters"
|
||||
core = 6.x
|
||||
php = 5.0.5
|
||||
|
||||
|
@ -9,4 +10,3 @@ version = "6.x-2.4"
|
|||
core = "6.x"
|
||||
project = "htmlpurifier"
|
||||
datestamp = "1287798330"
|
||||
|
||||
|
|
|
@ -1,293 +0,0 @@
|
|||
<?php
|
||||
// Core: Id: drupal_web_test_case.php,v 1.96 2009/04/22 09:57:10 dries Exp
|
||||
/**
|
||||
* @file
|
||||
* Provide required modifications to Drupal 7 core DrupalWebTestCase in order
|
||||
* for it to function properly in Drupal 6.
|
||||
*
|
||||
* Copyright 2008-2009 by Jimmy Berry ("boombatower", http://drupal.org/user/214218)
|
||||
*/
|
||||
|
||||
require_once drupal_get_path('module', 'simpletest') . '/drupal_web_test_case.php';
|
||||
|
||||
/**
|
||||
* Test case for typical Drupal tests.
|
||||
*/
|
||||
class Drupali18nTestCase extends DrupalWebTestCase {
|
||||
// We may want to install the site in a different language
|
||||
var $install_locale = 'en';
|
||||
|
||||
/**
|
||||
* Adds a language
|
||||
*
|
||||
* @param $langcode
|
||||
* @param $default
|
||||
* Whether this is the default language
|
||||
* @param $load
|
||||
* Whether to load available translations for that language
|
||||
*/
|
||||
function addLanguage($langcode, $default = FALSE, $load = TRUE) {
|
||||
require_once './includes/locale.inc';
|
||||
// Enable installation language as default site language.
|
||||
locale_add_language($langcode, NULL, NULL, NULL, NULL, NULL, 1, $default);
|
||||
// Reset language list
|
||||
language_list('language', TRUE);
|
||||
// We may need to refresh default language
|
||||
drupal_init_language();
|
||||
// @todo import po files for this language
|
||||
}
|
||||
|
||||
/**
|
||||
* Create translation set from a node
|
||||
*
|
||||
* @param $source
|
||||
* Source node
|
||||
* @param $languages
|
||||
* Optional list of language codes
|
||||
*/
|
||||
function drupalCreateTranslations(&$source, $languages = NULL) {
|
||||
$languages = $languages ? $languages : array_keys(language_list());
|
||||
if (empty($source->tnid)) {
|
||||
db_query("UPDATE {node} SET tnid = %d, translate = %d WHERE nid = %d", $source->nid, 0, $source->nid);
|
||||
$source->tnid = $source->nid;
|
||||
}
|
||||
$translations[$source->language] = $source;
|
||||
foreach ($languages as $lang) {
|
||||
if ($lang != $source->language) {
|
||||
$translations[$lang] = $this->drupalCreateNode(array('type' => $source->type, 'language' => $lang, 'translation_source' => $source, 'status' => $source->status, 'promote' => $source->promote, 'uid' => $source->uid));
|
||||
}
|
||||
}
|
||||
return $translations;
|
||||
}
|
||||
|
||||
/**
|
||||
* Enable language switcher block
|
||||
*/
|
||||
function enableBlock($module, $delta, $region = 'left') {
|
||||
db_query("UPDATE {blocks} SET status = %d, weight = %d, region = '%s', throttle = %d WHERE module = '%s' AND delta = '%s' AND theme = '%s'", 1, 0, $region, 0, $module, $delta, variable_get('theme_default', 'garland'));
|
||||
cache_clear_all();
|
||||
}
|
||||
/**
|
||||
* Reset theme to default so we can play with blocks
|
||||
*/
|
||||
function initTheme() {
|
||||
global $theme, $theme_key;
|
||||
unset($theme);
|
||||
unset($theme_key);
|
||||
init_theme();
|
||||
_block_rehash();
|
||||
}
|
||||
/**
|
||||
* Generates a random database prefix, runs the install scripts on the
|
||||
* prefixed database and enable the specified modules. After installation
|
||||
* many caches are flushed and the internal browser is setup so that the
|
||||
* page requests will run on the new prefix. A temporary files directory
|
||||
* is created with the same name as the database prefix.
|
||||
*
|
||||
* @param ...
|
||||
* List of modules to enable for the duration of the test.
|
||||
*/
|
||||
function setUp() {
|
||||
global $db_prefix, $user, $language; // $language (Drupal 6).
|
||||
global $install_locale;
|
||||
|
||||
// Store necessary current values before switching to prefixed database.
|
||||
$this->db_prefix_original = $db_prefix;
|
||||
$clean_url_original = variable_get('clean_url', 0);
|
||||
|
||||
// Generate temporary prefixed database to ensure that tests have a clean starting point.
|
||||
$db_prefix = 'simpletest' . mt_rand(1000, 1000000);
|
||||
|
||||
include_once './includes/install.inc';
|
||||
|
||||
drupal_install_system();
|
||||
|
||||
// Add the specified modules to the list of modules in the default profile.
|
||||
$args = func_get_args();
|
||||
// Add language and basic i18n modules
|
||||
$install_locale = $this->install_locale;
|
||||
$i18n_modules = array('locale', 'translation', 'i18n', 'i18n_test');
|
||||
$modules = array_unique(array_merge(drupal_verify_profile('default', $this->install_locale), $args, $i18n_modules));
|
||||
drupal_install_modules($modules);
|
||||
|
||||
// Install locale
|
||||
if ($this->install_locale != 'en') {
|
||||
$this->addLanguage($this->install_locale, TRUE);
|
||||
}
|
||||
// Run default profile tasks.
|
||||
$task = 'profile';
|
||||
default_profile_tasks($task, '');
|
||||
|
||||
// Rebuild caches.
|
||||
actions_synchronize();
|
||||
_drupal_flush_css_js();
|
||||
$this->refreshVariables();
|
||||
$this->checkPermissions(array(), TRUE);
|
||||
user_access(NULL, NULL, TRUE); // Drupal 6.
|
||||
|
||||
// Log in with a clean $user.
|
||||
$this->originalUser = $user;
|
||||
// drupal_save_session(FALSE);
|
||||
// $user = user_load(1);
|
||||
session_save_session(FALSE);
|
||||
$user = user_load(array('uid' => 1));
|
||||
|
||||
// Restore necessary variables.
|
||||
variable_set('install_profile', 'default');
|
||||
variable_set('install_task', 'profile-finished');
|
||||
variable_set('clean_url', $clean_url_original);
|
||||
variable_set('site_mail', 'simpletest@example.com');
|
||||
|
||||
// Use temporary files directory with the same prefix as database.
|
||||
$this->originalFileDirectory = file_directory_path();
|
||||
variable_set('file_directory_path', file_directory_path() . '/' . $db_prefix);
|
||||
$directory = file_directory_path();
|
||||
// Create the files directory.
|
||||
file_check_directory($directory, FILE_CREATE_DIRECTORY | FILE_MODIFY_PERMISSIONS);
|
||||
|
||||
set_time_limit($this->timeLimit);
|
||||
|
||||
// Some more includes
|
||||
require_once 'includes/language.inc';
|
||||
// Refresh theme
|
||||
$this->initTheme();
|
||||
// Set path languages so we can retrieve pages in different languages
|
||||
variable_set('language_negotiation', LANGUAGE_NEGOTIATION_PATH);
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete created files and temporary files directory, delete the tables created by setUp(),
|
||||
* and reset the database prefix.
|
||||
*/
|
||||
protected function tearDown() {
|
||||
parent::tearDown();
|
||||
|
||||
// Reset language list
|
||||
language_list('language', TRUE);
|
||||
drupal_init_language();
|
||||
if (module_exists('locale')) {
|
||||
locale(NULL, NULL, TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves a Drupal path or an absolute path with language
|
||||
*/
|
||||
protected function i18nGet($langcode, $path = '', array $options = array(), array $headers = array()) {
|
||||
$options += array('language' => $this->getLanguage($langcode));
|
||||
return $this->drupalGet($path, $options, $headers);
|
||||
}
|
||||
/**
|
||||
* Get language object for langcode
|
||||
*/
|
||||
public function getLanguage($langcode) {
|
||||
if (is_object($langcode)) {
|
||||
return $langcode;
|
||||
}
|
||||
else {
|
||||
$language_list = language_list();
|
||||
return $language_list[$langcode];
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Switch global language
|
||||
*/
|
||||
public function switchLanguage($newlang = NULL) {
|
||||
$newlang = $newlang ? $newlang : $this->install_locale;
|
||||
$GLOBALS['language'] = $this->getLanguage($newlang);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all languages that are not default
|
||||
*/
|
||||
public function getOtherLanguages() {
|
||||
$languages = language_list();
|
||||
unset($languages[language_default('language')]);
|
||||
return $languages;
|
||||
}
|
||||
/**
|
||||
* Create and store one translation into the db
|
||||
*/
|
||||
public function i18nstringsCreateTranslation($name, $lang, $length = 20) {
|
||||
$translation = $this->randomName($length, "i18n-$lang-");
|
||||
$count = self::i18nstringsSaveTranslation($name, $lang, $translation);
|
||||
$this->assertTrue($count, "A translation($lang) has been created for string $name");
|
||||
return $translation;
|
||||
}
|
||||
/**
|
||||
* Translate one string into the db
|
||||
*/
|
||||
public static function i18nstringsSaveTranslation($name, $lang, $translation, $update = FALSE) {
|
||||
$source = i18nstrings_get_source($name);
|
||||
if ($source) {
|
||||
if ($update) {
|
||||
db_query("UPDATE {locales_target} SET translation = '%s' WHERE lid = %d AND language = '%s'", $translation, $source->lid, $lang);
|
||||
} else {
|
||||
db_query("INSERT INTO {locales_target} (translation, lid, language) VALUES ('%s', %d, '%s')", $translation, $source->lid, $lang);
|
||||
}
|
||||
return db_affected_rows();
|
||||
}
|
||||
else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Print out a variable for debugging
|
||||
*/
|
||||
function printDebug($data, $title = '') {
|
||||
$string = is_array($data) || is_object($data) ? print_r($data, TRUE) : $data;
|
||||
$output = $title ? $title . ':' . $string : $string;
|
||||
//$this->assertTrue(TRUE, $output);
|
||||
$this->assertTrue(TRUE, $output, 'Debug');
|
||||
}
|
||||
/**
|
||||
* Debug dump object with some formatting
|
||||
*/
|
||||
function printObject($object, $title = 'Object') {
|
||||
$output = $this->formatTable($object);
|
||||
$this->printDebug($output, $title);
|
||||
}
|
||||
|
||||
/**
|
||||
* Print out current HTML page
|
||||
*/
|
||||
function printPage() {
|
||||
$this->printDebug($this->drupalGetContent());
|
||||
}
|
||||
|
||||
// Dump table contents
|
||||
function dumpTable($table) {
|
||||
$result = db_query('SELECT * FROM {' . $table . '}');
|
||||
$output = 'Table dump <strong>' . $table . '</strong>:';
|
||||
while ($row = db_fetch_array($result)) {
|
||||
$rows[] = $row;
|
||||
if (empty($header)) {
|
||||
$header = array_keys($row);
|
||||
}
|
||||
}
|
||||
if (!empty($rows)) {
|
||||
$output .= theme('table', $header, $rows);
|
||||
} else {
|
||||
$output .= ' No rows';
|
||||
}
|
||||
$this->assertTrue(TRUE, $output);
|
||||
}
|
||||
|
||||
/**
|
||||
* Format object as table, recursive
|
||||
*/
|
||||
function formatTable($object) {
|
||||
foreach ($object as $key => $value) {
|
||||
$rows[] = array(
|
||||
$key,
|
||||
is_array($value) || is_object($value) ? $this->formatTable($value) : $value,
|
||||
);
|
||||
}
|
||||
if (!empty($rows)) {
|
||||
return theme('table', array(), $rows);
|
||||
}
|
||||
else {
|
||||
return 'No properties';
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,84 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Class for testing messaging module.
|
||||
*
|
||||
* Tests basic API functions
|
||||
*/
|
||||
|
||||
require_once 'drupal_i18n_test_case.php';
|
||||
|
||||
class i18n_API_Tests extends Drupali18nTestCase {
|
||||
|
||||
function getInfo() {
|
||||
return array(
|
||||
'name' => 'Internationalization API',
|
||||
'group' => 'Internationalization',
|
||||
'description' => 'Internationalization API functions'
|
||||
);
|
||||
}
|
||||
|
||||
function setUp() {
|
||||
parent::setUp('i18n', 'locale');
|
||||
$this->addLanguage('es');
|
||||
$this->addLanguage('de');
|
||||
// A language with two letter code may help too
|
||||
$this->addLanguage('pt-br');
|
||||
|
||||
//variable_set('i18n_variables', array('site_name','site_frontpage',));
|
||||
|
||||
// Log in user with access content permission
|
||||
$user = $this->drupalCreateUser(array('access comments', 'access content'));
|
||||
$this->drupalLogin($user);
|
||||
}
|
||||
|
||||
function testBasicAPI() {
|
||||
$language_count = count(language_list());
|
||||
$this->assertTrue($language_count > 1, 'Multiple languages created: ' . $language_count);
|
||||
$this->assertEqual(i18n_get_lang(), 'en', 'Default language (en) properly set.');
|
||||
|
||||
// Set site name for each language and check pages later
|
||||
foreach (language_list() as $lang) {
|
||||
i18n_variable_set('site_name', "Drupal-$lang->name", $lang->language);
|
||||
}
|
||||
|
||||
// Enable language switcher block
|
||||
//$this->enableBlock('locale', 0);
|
||||
//$this->dumpTable('blocks');
|
||||
|
||||
// Create some content and check selection modes
|
||||
variable_set('language_content_type_story', 1);
|
||||
$neutral = $this->drupalCreateNode(array('type' => 'story', 'promote' => 1));
|
||||
$source = $this->drupalCreateNode(array('type' => 'story', 'promote' => 1, 'language' => i18n_default_language()));
|
||||
$translations = $this->drupalCreateTranslations($source);
|
||||
// This fails because the _get_translations() function has static caching
|
||||
//$this->assertEqual(count(translation_node_get_translations($source->tnid)), $language_count, "Created $language_count $source->type translations.");
|
||||
$this->assertEqual(count($translations), $language_count, "Created $language_count $source->type translations.");
|
||||
|
||||
// Default selection module, only language neutral and current
|
||||
variable_set('i18n_selection_mode', 'simple');
|
||||
foreach (language_list() as $lang) {
|
||||
$this->drupalGet('', array('language' => $lang));
|
||||
$this->assertText("Drupal-$lang->name", 'Checked translated site name: Drupal-' . $lang->name);
|
||||
$display = array($translations[$lang->language], $neutral);
|
||||
$hide = $translations;
|
||||
unset($hide[$lang->language]);
|
||||
$this->assertContent($display, $hide);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Check some nodes are displayed, some are not
|
||||
*/
|
||||
function assertContent($display, $hide = array()) {
|
||||
$languages = language_list();
|
||||
foreach ($display as $node) {
|
||||
$name = $node->language ? $languages[$node->language]->name : 'Language neutral';
|
||||
$this->assertText($node->title, 'Content displayed for ' . $name);
|
||||
}
|
||||
foreach ($hide as $node) {
|
||||
$name = $node->language ? $languages[$node->language]->name : 'Language neutral';
|
||||
$this->assertNoText($node->title, 'Content not displayed for ' . $name);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,160 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Class for testing messaging module.
|
||||
*
|
||||
* Tests basic API functions
|
||||
*/
|
||||
|
||||
require_once 'i18n_strings.test';
|
||||
|
||||
class i18n_Blocks_Test extends Drupali18nTestCase {
|
||||
|
||||
function getInfo() {
|
||||
return array(
|
||||
'name' => 'Block translation',
|
||||
'group' => 'Internationalization',
|
||||
'description' => 'Block translation functions'
|
||||
);
|
||||
}
|
||||
|
||||
function setUp() {
|
||||
parent::setUp('118n', 'locale', 'i18nstrings', 'i18nblocks');
|
||||
$this->addLanguage('es');
|
||||
$this->addLanguage('de');
|
||||
// Create and login user
|
||||
$admin_user = $this->drupalCreateUser(array('administer blocks'));
|
||||
$this->drupalLogin($admin_user);
|
||||
}
|
||||
|
||||
function testBlockTranslation() {
|
||||
// Create a translatable block
|
||||
$box = $this->i18nCreateBox(array('language' => I18N_BLOCK_LOCALIZE));
|
||||
$i18nblock = i18nblocks_load('block', $box->bid);
|
||||
$this->assertTrue($i18nblock->ibid && $i18nblock->language == I18N_BLOCK_LOCALIZE, "The block has been created with the right i18n settings.");
|
||||
// Create translations for title and body, source strings should be already there
|
||||
$translations = $this->i18nTranslateBlock('block', $box-bid, array('title', 'body'));
|
||||
// Now set a language for the block and confirm it shows just for that one (without translation)
|
||||
$languages = $this->getOtherLanguages();
|
||||
$setlanguage = array_shift($languages);
|
||||
$otherlanguage = array_shift($languages);
|
||||
$this->i18nUpdateBlock('block', $box->bid, array('language' => $setlanguage->language));
|
||||
// Do not show in default language
|
||||
$this->drupalGet('');
|
||||
$this->assertNoText($box->title);
|
||||
// Show in block's language but not translated
|
||||
$this->i18nGet($setlanguage);
|
||||
$this->assertText($box->title);
|
||||
// Do not show in the other language
|
||||
$this->i18nGet($otherlanguage);
|
||||
$this->assertNoText($box->title);
|
||||
$this->assertNoText($translations[$otherlanguage->language]['title']);
|
||||
|
||||
// Add a custom title to any other block: Navigation (user, 1)
|
||||
$title = $this->randomName(10);
|
||||
$this->i18nUpdateBlock('user', 1, array('title' => $title));
|
||||
$this->assertText($title, "The new custom title is displayed on the home page.");
|
||||
$translate = $this->i18nTranslateBlock('user', 1, array('title'));
|
||||
$this->drupalGet('');
|
||||
|
||||
// Refresh block strings, the ones for the first box should be gone. Not the others
|
||||
$box2 = $this->i18nCreateBox(array('language' => I18N_BLOCK_LOCALIZE));
|
||||
$translations = $this->i18nTranslateBlock('block', $box2->bid, array('title', 'body'));
|
||||
i18nstrings_refresh_group('blocks', TRUE);
|
||||
$this->assertFalse(i18nstrings_get_source("blocks:block:$box->bid:title", $box->title), "The string for the box title is gone.");
|
||||
$this->assertFalse(i18nstrings_get_source("blocks:block:$box->bid:body", $box->body), "The string for the box body is gone.");
|
||||
$this->assertTrue(i18nstrings_get_source("blocks:user:1:title"), "We have a string for the Navigation block title");
|
||||
$this->assertTrue(i18nstrings_get_source("blocks:block:$box2->bid:title", $box2->title), "The string for the second box title is still there.");
|
||||
$this->assertTrue(i18nstrings_get_source("blocks:block:$box2->bid:body", $box2->body), "The string for the second box body is still there.");
|
||||
// Test a block with filtering and input formats
|
||||
$box3 = $this->i18nCreateBox(array(
|
||||
'title' => '<div><script>alert(0)</script>Title</script>',
|
||||
'body' => "One line\nTwo lines<script>alert(1)</script>",
|
||||
'language' => I18N_BLOCK_LOCALIZE,
|
||||
));
|
||||
$language = current($this->getOtherLanguages());
|
||||
// We add language name to the title just to make sure we get the right translation later
|
||||
$this->i18nstringsSaveTranslation("blocks:block:$box3->bid:title", $language->language, $box3->title . $language->name);
|
||||
$this->i18nstringsSaveTranslation("blocks:block:$box3->bid:body", $language->language, $box3->body);
|
||||
// This should be the actual HTML displayed
|
||||
$title = check_plain($box3->title);
|
||||
$body = check_markup($box3->body);
|
||||
$this->drupalGet('');
|
||||
$this->assertRaw($title, "Title being displayed for default language: " . $title);
|
||||
$this->assertRaw($body, "Body being displayed for default language: " . check_plain($body));
|
||||
$this->i18nGet($language);
|
||||
$this->assertRaw($title . $language->name, "Translated title displayed with right filtering.");
|
||||
$this->assertRaw($body, "Translated body displayed with right filtering.");
|
||||
}
|
||||
|
||||
/**
|
||||
* Translate block fields to all languages
|
||||
*/
|
||||
function i18nTranslateBlock($module, $delta, $fields = array('title', 'body')) {
|
||||
foreach ($this->getOtherLanguages() as $language) {
|
||||
foreach ($fields as $key) {
|
||||
$text[$key] = $this->i18nstringsCreateTranslation("blocks:$module:$delta:$key", $language->language);
|
||||
}
|
||||
// Now check translated strings display on page
|
||||
$this->i18nGet($language->language, '');
|
||||
foreach ($text as $string) {
|
||||
$this->assertText($string);
|
||||
}
|
||||
$translations[$language->language] = $text;
|
||||
}
|
||||
return $translations;
|
||||
}
|
||||
/**
|
||||
* Test creating custom block (i.e. box), moving it to a specific region and then deleting it.
|
||||
*/
|
||||
function i18nCreateBox($box = array(), $region = 'left', $check_display = TRUE) {
|
||||
// Add a new box by filling out the input form on the admin/build/block/add page.
|
||||
$box += array(
|
||||
'info' => $this->randomName(8),
|
||||
'title' => $this->randomName(8),
|
||||
'body' => $this->randomName(32),
|
||||
);
|
||||
$this->drupalPost('admin/build/block/add', $box, t('Save block'));
|
||||
// Confirm that the box has been created, and then query the created bid.
|
||||
$this->assertText(t('The block has been created.'), 'Box successfully created.');
|
||||
$bid = db_result(db_query("SELECT bid FROM {boxes} WHERE info = '%s'", array($box['info'])));
|
||||
// Check to see if the box was created by checking that it's in the database..
|
||||
$this->assertNotNull($bid, 'Box found in database');
|
||||
// Display the block on left region
|
||||
$this->i18nUpdateBlockRegion('block', $bid, $region);
|
||||
if ($check_display) {
|
||||
// Confirm that the box is being displayed.
|
||||
$this->assertText(check_plain($box['title']), 'Box successfully being displayed on the page.');
|
||||
}
|
||||
$box['bid'] = $block['delta'] = $bid;
|
||||
$box['module'] = 'block';
|
||||
return (object)$box;
|
||||
}
|
||||
/**
|
||||
* Update block
|
||||
*/
|
||||
function i18nUpdateBlock($module, $delta, $update = array()) {
|
||||
$this->drupalPost("admin/build/block/configure/$module/$delta", $update, t('Save block'));
|
||||
$this->assertText(t('The block configuration has been saved.'));
|
||||
}
|
||||
/**
|
||||
* Update block region
|
||||
*/
|
||||
function i18nUpdateBlockRegion($module, $delta, $region) {
|
||||
// Set the created box to a specific region.
|
||||
// TODO: Implement full region checking.
|
||||
$edit = array();
|
||||
$edit[$module . '_'. $delta .'[region]'] = $region;
|
||||
$this->drupalPost('admin/build/block', $edit, t('Save blocks'));
|
||||
// Confirm that the box was moved to the proper region.
|
||||
$this->assertText(t('The block settings have been updated.'), "Box successfully moved to $region region.");
|
||||
}
|
||||
/**
|
||||
* Delete block
|
||||
*/
|
||||
function i18nDeleteBlock($bid) {
|
||||
// Delete the created box & verify that it's been deleted and no longer appearing on the page.
|
||||
$this->drupalPost('admin/build/block/delete/'. $bid, array(), t('Delete'));
|
||||
$this->assertRaw(t('The block %title has been removed.', array('%title' => $box['info'])), t('Box successfully deleted.'));
|
||||
$this->assertNoText(t($box['title']), t('Box no longer appears on page.'));
|
||||
}
|
||||
}
|
|
@ -1,102 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Class for testing i18nstrings and modules using these features
|
||||
*
|
||||
* Tests basic API functions
|
||||
*/
|
||||
|
||||
require_once 'drupal_i18n_test_case.php';
|
||||
|
||||
class i18n_Strings_Test extends Drupali18nTestCase {
|
||||
|
||||
function getInfo() {
|
||||
return array(
|
||||
'name' => 'String translation API',
|
||||
'group' => 'Internationalization',
|
||||
'description' => 'User defined strings translation functions'
|
||||
);
|
||||
}
|
||||
|
||||
function setUp() {
|
||||
parent::setUp('i18n', 'locale', 'i18nstrings');
|
||||
$this->addLanguage('es');
|
||||
$this->addLanguage('de');
|
||||
// A language with two letter code may help too
|
||||
$this->addLanguage('pt-br');
|
||||
// Set path languages so we can retrieve pages in different languages
|
||||
variable_set('language_negotiation', LANGUAGE_NEGOTIATION_PATH);
|
||||
//variable_set('i18n_variables', array('site_name','site_frontpage',));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test base i18nstrings API
|
||||
*/
|
||||
function testStringsAPI() {
|
||||
// Create a bunch of strings for three languages
|
||||
$strings = $this->stringCreateAll(10);
|
||||
|
||||
// Save source strings and store translations
|
||||
foreach ($strings['en'] as $key => $string) {
|
||||
$name = "test:string:$key:name";
|
||||
i18nstrings_update($name, $string);
|
||||
$count = $this->stringSaveTranslation($name, 'es', $strings['es'][$key]);
|
||||
$count += $this->stringSaveTranslation($name, 'pt-br', $strings['pt-br'][$key]);
|
||||
$this->assertEqual($count, 2, "Two translatins have been saved");
|
||||
}
|
||||
// Check translations
|
||||
$language_list = language_list();
|
||||
foreach (array('pt-br', 'es') as $lang) {
|
||||
$language = $language_list[$lang];
|
||||
foreach ($strings[$lang] as $key => $value) {
|
||||
$name = "test:string:$key:name";
|
||||
$translation = i18nstrings($name, 'NOT FOUND', $lang);
|
||||
$this->assertEqual($translation, $value, "The right $language->language translation has been retrieved for $name, $translation");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Create strings for all languages
|
||||
*/
|
||||
public static function stringCreateAll($number = 10, $length = 100) {
|
||||
foreach (language_list() as $lang => $language) {
|
||||
$strings[$lang] = self::stringCreateArray($number, $length);
|
||||
}
|
||||
return $strings;
|
||||
}
|
||||
/**
|
||||
* Create a bunch of random strings to test the API
|
||||
*/
|
||||
public static function stringCreateArray($number = 10, $length = 100) {
|
||||
for ($i=1 ; $i <= $number ; $i++) {
|
||||
$strings[$i] = self::randomName($length);
|
||||
}
|
||||
return $strings;
|
||||
}
|
||||
/**
|
||||
* Create and store one translation into the db
|
||||
*/
|
||||
public static function stringCreateTranslation($name, $lang, $length = 20) {
|
||||
$translation = $this->randomName($length);
|
||||
if (self::stringSaveTranslation($name, $lang, $translation)) {
|
||||
return $translation;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Translate one string into the db
|
||||
*/
|
||||
public static function stringSaveTranslation($name, $lang, $translation, $update = FALSE) {
|
||||
$source = i18nstrings_get_source($name);
|
||||
if ($source) {
|
||||
if ($update) {
|
||||
db_query("UPDATE {locales_target} SET translation = '%s' WHERE lid = %d AND language = '%s'", $translation, $source->lid, $lang);
|
||||
} else {
|
||||
db_query("INSERT INTO {locales_target} (translation, lid, language) VALUES ('%s', %d, '%s')", $translation, $source->lid, $lang);
|
||||
}
|
||||
return db_affected_rows();
|
||||
}
|
||||
else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,58 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Class for testing messaging module.
|
||||
*
|
||||
* Tests basic API functions
|
||||
*/
|
||||
|
||||
require_once 'i18n_strings.test';
|
||||
|
||||
class i18n_Taxonomy_Test extends Drupali18nTestCase {
|
||||
|
||||
function getInfo() {
|
||||
return array(
|
||||
'name' => 'Taxonomy translation',
|
||||
'group' => 'Internationalization',
|
||||
'description' => 'Taxonomy translation functions'
|
||||
);
|
||||
}
|
||||
|
||||
function setUp() {
|
||||
parent::setUp('i18nstrings', 'taxonomy', 'i18ntaxonomy');
|
||||
$this->addLanguage('es');
|
||||
$this->addLanguage('de');
|
||||
}
|
||||
|
||||
function testTaxonomyTranslationAPI() {
|
||||
// Create a vocabulary with some terms
|
||||
$number = 4;
|
||||
$vocab = $this->drupalCreateVocabulary(array('i18nmode' => I18N_TAXONOMY_LOCALIZE));
|
||||
$this->assertEqual(i18ntaxonomy_vocabulary($vocab-vid), I18N_TAXONOMY_LOCALIZE, 'A vocabulary has been created and it is localizable.');
|
||||
$terms = $this->drupalCreateTerms($number, array('vid' => $vocab->vid));
|
||||
$this->assertEqual(count($terms), $number, "Four translatable terms have been created.");
|
||||
// Create and Save Spanish translation for all of them
|
||||
$count = 0;
|
||||
$lang = 'es';
|
||||
foreach ($terms as $term) {
|
||||
$translations[$term->tid] = $this->randomName(10);
|
||||
// Save Spanish translation
|
||||
$translations[$term->tid] = $this->i18nstringsCreateTranslation("taxonomy:term:$term->tid:name", $lang);
|
||||
}
|
||||
}
|
||||
// Create vocabulary with given fields
|
||||
function drupalCreateVocabulary($vocab = array()) {
|
||||
$vocab += array('name' => $this->randomName(10), 'description' => $this->randomName(20));
|
||||
taxonomy_save_vocabulary($vocab);
|
||||
return (object)$vocab;
|
||||
}
|
||||
// Create term with given fields
|
||||
function drupalCreateTerms($number = 1, $data = array()) {
|
||||
$list = array();
|
||||
for ($i = 1; $i <= $number ; $i++ ) {
|
||||
$term = $data + array('name' => $this->randomName(10), 'description' => $this->randomName(20));
|
||||
taxonomy_save_term($term);
|
||||
$list[] = (object)$term;
|
||||
}
|
||||
return $list;
|
||||
}
|
||||
}
|
|
@ -1,14 +0,0 @@
|
|||
name = Internationalization tests
|
||||
description = Helper module for testing i18n (do not enable manually)
|
||||
dependencies[] = locale
|
||||
dependencies[] = translation
|
||||
dependencies[] = i18n
|
||||
package = Testing
|
||||
core = 6.x
|
||||
|
||||
; Information added by drupal.org packaging script on 2011-10-11
|
||||
version = "6.x-1.10"
|
||||
core = "6.x"
|
||||
project = "i18n"
|
||||
datestamp = "1318336004"
|
||||
|
|
@ -1,48 +0,0 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Helper module for testing i18n
|
||||
*/
|
||||
|
||||
// Add some multilingual variables, override existing ones from settings so
|
||||
// we have a known list and we don't need any addition to the settings file for testing i18n
|
||||
_i18n_test_variable_init();
|
||||
|
||||
/**
|
||||
* Implementation of hook_init()
|
||||
*/
|
||||
function i18n_test_init() {
|
||||
// We just implement this hook so this one is loaded always on bootstap
|
||||
}
|
||||
|
||||
/**
|
||||
* Set default multilingual variables and add any others defined by testing scripts
|
||||
*
|
||||
* More variables can be added using 'i18n_variables_test';
|
||||
*/
|
||||
function _i18n_test_variable_init() {
|
||||
global $conf;
|
||||
$conf['i18n_variables'] = array_merge(array('site_name', 'site_frontpage'), variable_get('i18n_variables_test', array()));
|
||||
}
|
||||
|
||||
/**
|
||||
* Implementation of hook_locale()
|
||||
*/
|
||||
function i18n_test_locale() {
|
||||
switch ($op) {
|
||||
case 'groups':
|
||||
return array('test' => t('Test'));
|
||||
case 'info':
|
||||
$info['test']['refresh callback'] = 'i18n_test_locale_refresh';
|
||||
$info['test']['format'] = FALSE;
|
||||
return $info;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Locale refresh
|
||||
*/
|
||||
function i18n_test_locale_refresh() {
|
||||
return TRUE;
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
name = ImageAPI
|
||||
description = ImageAPI supporting multiple toolkits.
|
||||
package = ImageCache
|
||||
package = Image
|
||||
core = 6.x
|
||||
php = 5.1
|
||||
|
||||
|
@ -9,4 +9,3 @@ version = "6.x-1.10"
|
|||
core = "6.x"
|
||||
project = "imageapi"
|
||||
datestamp = "1305563215"
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
name = ImageAPI GD2
|
||||
description = Uses PHP's built-in GD2 image processing support.
|
||||
package = ImageCache
|
||||
package = Image
|
||||
core = 6.x
|
||||
|
||||
; Information added by drupal.org packaging script on 2011-05-16
|
||||
|
@ -8,4 +8,3 @@ version = "6.x-1.10"
|
|||
core = "6.x"
|
||||
project = "imageapi"
|
||||
datestamp = "1305563215"
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
name = ImageAPI ImageMagick
|
||||
description = Command Line ImageMagick support.
|
||||
package = ImageCache
|
||||
package = Image
|
||||
core = 6.x
|
||||
|
||||
|
||||
|
@ -9,4 +9,3 @@ version = "6.x-1.10"
|
|||
core = "6.x"
|
||||
project = "imageapi"
|
||||
datestamp = "1305563215"
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
name = ImageCache
|
||||
description = Dynamic image manipulator and cache.
|
||||
package = ImageCache
|
||||
package = Image
|
||||
dependencies[] = imageapi
|
||||
core = 6.x
|
||||
|
||||
|
@ -9,4 +9,3 @@ version = "6.x-2.0-rc1"
|
|||
core = "6.x"
|
||||
project = "imagecache"
|
||||
datestamp = "1337742655"
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@ name = ImageCache UI
|
|||
description = ImageCache User Interface.
|
||||
dependencies[] = imagecache
|
||||
dependencies[] = imageapi
|
||||
package = ImageCache
|
||||
package = Image
|
||||
core = 6.x
|
||||
|
||||
; Information added by drupal.org packaging script on 2012-05-23
|
||||
|
@ -10,4 +10,3 @@ version = "6.x-2.0-rc1"
|
|||
core = "6.x"
|
||||
project = "imagecache"
|
||||
datestamp = "1337742655"
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
name = Lexicon
|
||||
description = Maintain a lexicon on your site.
|
||||
package = Core - extended
|
||||
dependencies[] = taxonomy
|
||||
core = 6.x
|
||||
|
||||
|
@ -9,4 +10,3 @@ version = "6.x-1.4"
|
|||
core = "6.x"
|
||||
project = "lexicon"
|
||||
datestamp = "1302799616"
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
; $Id: lightbox2.info,v 1.1.6.4 2008/07/14 11:51:34 snpower Exp $
|
||||
name = Lightbox2
|
||||
description = Enables Lightbox2 for Drupal
|
||||
package = User interface
|
||||
core = 6.x
|
||||
|
||||
; Information added by drupal.org packaging script on 2010-09-24
|
||||
|
@ -8,4 +9,3 @@ version = "6.x-1.11"
|
|||
core = "6.x"
|
||||
project = "lightbox2"
|
||||
datestamp = "1285342563"
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
name = Link checker
|
||||
description = "Periodically checks for broken links in node types, blocks and cck fields and reports the results."
|
||||
package = Core - extended
|
||||
core = 6.x
|
||||
|
||||
; Information added by Drupal.org packaging script on 2014-06-07
|
||||
|
@ -7,4 +8,3 @@ version = "6.x-2.8"
|
|||
core = "6.x"
|
||||
project = "linkchecker"
|
||||
datestamp = "1402132729"
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
; $Name$
|
||||
name = Clone module
|
||||
description = "Allows users to clone (copy then edit) an existing node."
|
||||
package = Core - extended
|
||||
core = 6.x
|
||||
|
||||
; Information added by drupal.org packaging script on 2011-07-01
|
||||
|
@ -8,4 +9,3 @@ version = "6.x-1.3"
|
|||
core = "6.x"
|
||||
project = "node_clone"
|
||||
datestamp = "1309483919"
|
||||
|
||||
|
|
|
@ -1,11 +1,10 @@
|
|||
name = Recently read
|
||||
description = Tracks the history of recently read content by each user.
|
||||
package = Core - extended
|
||||
core = 6.x
|
||||
package = Other
|
||||
|
||||
; Information added by drupal.org packaging script on 2012-03-02
|
||||
version = "6.x-1.0-beta1"
|
||||
core = "6.x"
|
||||
project = "recently_read"
|
||||
datestamp = "1330713350"
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
; $Id: role_delegation.info,v 1.2 2008/06/12 04:00:35 davidlesieur Exp $
|
||||
name = "Role Delegation"
|
||||
description = "Allows site administrators to grant some roles the authority to assign selected roles to users."
|
||||
package = Core - extended
|
||||
core = "6.x"
|
||||
|
||||
|
||||
|
@ -9,4 +10,3 @@ version = "6.x-1.4"
|
|||
core = "6.x"
|
||||
project = "role_delegation"
|
||||
datestamp = "1291919534"
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
name = Search Restrict
|
||||
description = "Exclude specific content from search results if user doesn't have privileges."
|
||||
package = Core - extended
|
||||
dependencies[] = search
|
||||
core = 6.x
|
||||
|
||||
|
@ -8,4 +9,3 @@ version = "6.x-1.5"
|
|||
core = "6.x"
|
||||
project = "search_restrict"
|
||||
datestamp = "1346261003"
|
||||
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
name = Search Restrict Apache Solr
|
||||
description = "Exclude specific content from Apache Solr search results if user doesn't have privileges."
|
||||
package = Core - extended
|
||||
dependencies[] = apachesolr
|
||||
dependencies[] = search_restrict
|
||||
dependencies[] = search_restrict
|
||||
core = 6.x
|
||||
|
||||
; Information added by drupal.org packaging script on 2012-08-29
|
||||
|
@ -9,4 +10,3 @@ version = "6.x-1.5"
|
|||
core = "6.x"
|
||||
project = "search_restrict"
|
||||
datestamp = "1346261003"
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
name = SuiteDesk
|
||||
name = Storm
|
||||
description = "Project Management Application (base module - utility for other SuiteDesk modules)."
|
||||
core = 6.x
|
||||
package = Storm
|
||||
|
@ -8,4 +8,3 @@ version = "6.x-2.2"
|
|||
core = "6.x"
|
||||
project = "storm"
|
||||
datestamp = "1375697500"
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
name = SuiteDesk Dok
|
||||
name = Storm Dok
|
||||
description = "Allows creation of documents about organizations, projects or tasks."
|
||||
dependencies[] = storm
|
||||
dependencies[] = stormorganization
|
||||
|
@ -6,3 +6,5 @@ dependencies[] = stormproject
|
|||
dependencies[] = stormtask
|
||||
package = Storm
|
||||
core = 6.x
|
||||
|
||||
version = "6.x-2.2"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
name = SuiteDesk Event
|
||||
name = Storm Event
|
||||
description = "Allows creation of events and personal calendar."
|
||||
dependencies[] = storm
|
||||
dependencies[] = stormorganization
|
||||
|
@ -6,3 +6,5 @@ dependencies[] = stormproject
|
|||
dependencies[] = stormtask
|
||||
package = Storm
|
||||
core = 6.x
|
||||
|
||||
version = "6.x-2.2"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
name = SuiteDesk Expense
|
||||
name = Storm Expense
|
||||
description = "Allows recording of expenses based on organizations, projects, tasks and tickets."
|
||||
dependencies[] = storm
|
||||
dependencies[] = stormorganization
|
||||
|
@ -13,4 +13,3 @@ version = "6.x-2.2"
|
|||
core = "6.x"
|
||||
project = "storm"
|
||||
datestamp = "1375697500"
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
name = SuiteDesk Idea
|
||||
name = Storm Idea
|
||||
description = "Allows creation of personal quick notes."
|
||||
dependencies[] = storm
|
||||
package = Storm
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
name = SuiteDesk Invoice
|
||||
name = Storm Invoice
|
||||
description = "Allows invoices to be created based on organizations and projects."
|
||||
dependencies[] = storm
|
||||
dependencies[] = stormorganization
|
||||
|
@ -11,4 +11,3 @@ version = "6.x-2.2"
|
|||
core = "6.x"
|
||||
project = "storm"
|
||||
datestamp = "1375697500"
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
name = SuiteDesk Note
|
||||
name = Storm Note
|
||||
description = "Allows creation of notes about organizations, projects or tasks."
|
||||
dependencies[] = storm
|
||||
dependencies[] = stormorganization
|
||||
|
@ -12,4 +12,3 @@ version = "6.x-2.2"
|
|||
core = "6.x"
|
||||
project = "storm"
|
||||
datestamp = "1375697500"
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
name = SuiteDesk Organization
|
||||
name = Storm Organization
|
||||
description = "Allows storing of organizations for use within SuiteDesk"
|
||||
dependencies[] = storm
|
||||
package = Storm
|
||||
|
@ -9,4 +9,3 @@ version = "6.x-2.2"
|
|||
core = "6.x"
|
||||
project = "storm"
|
||||
datestamp = "1375697500"
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
name = SuiteDesk Person
|
||||
name = Storm Person
|
||||
description = "Allows storage of people within organizations, and linking of these to Drupal user accounts."
|
||||
dependencies[] = storm
|
||||
dependencies[] = stormorganization
|
||||
|
@ -10,4 +10,3 @@ version = "6.x-2.2"
|
|||
core = "6.x"
|
||||
project = "storm"
|
||||
datestamp = "1375697500"
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
name = SuiteDesk Project
|
||||
name = Storm Project
|
||||
description = "Allows recording of projects based on SuiteDesk Organizations"
|
||||
dependencies[] = storm
|
||||
dependencies[] = stormorganization
|
||||
|
@ -10,4 +10,3 @@ version = "6.x-2.2"
|
|||
core = "6.x"
|
||||
project = "storm"
|
||||
datestamp = "1375697500"
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
name = SuiteDesk Project Clone
|
||||
name = Storm Project Clone
|
||||
description = "Allows users to clone entire projects."
|
||||
dependencies[] = book
|
||||
dependencies[] = clone
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
name = SuiteDesk Task
|
||||
name = Storm Task
|
||||
description = "Allows recording of tasks for SuiteDesk Organizations and Projects"
|
||||
dependencies[] = storm
|
||||
dependencies[] = stormorganization
|
||||
|
@ -11,4 +11,3 @@ version = "6.x-2.2"
|
|||
core = "6.x"
|
||||
project = "storm"
|
||||
datestamp = "1375697500"
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
|
||||
name = SuiteDesk Team
|
||||
name = Storm Team
|
||||
description = "Allows recording of teams made up of SuiteDesk Organizations and SuiteDesk People."
|
||||
core = 6.x
|
||||
package = Storm
|
||||
|
@ -13,4 +12,3 @@ version = "6.x-2.2"
|
|||
core = "6.x"
|
||||
project = "storm"
|
||||
datestamp = "1375697500"
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
name = SuiteDesk Ticket
|
||||
name = Storm Ticket
|
||||
description = "Allows creation of tickets for SuiteDesk Projects and Tasks"
|
||||
dependencies[] = storm
|
||||
dependencies[] = stormorganization
|
||||
|
@ -12,4 +12,3 @@ version = "6.x-2.2"
|
|||
core = "6.x"
|
||||
project = "storm"
|
||||
datestamp = "1375697500"
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
name = SuiteDesk Timetracking
|
||||
name = Storm Timetracking
|
||||
description = "Allows recording of times worked based on project, task and/or ticket"
|
||||
dependencies[] = storm
|
||||
dependencies[] = stormorganization
|
||||
|
@ -13,4 +13,3 @@ version = "6.x-2.2"
|
|||
core = "6.x"
|
||||
project = "storm"
|
||||
datestamp = "1375697500"
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
name = Token
|
||||
description = Provides a shared API for replacement of textual placeholders with actual data.
|
||||
package = Core - extended
|
||||
core = 6.x
|
||||
|
||||
; Information added by drupal.org packaging script on 2012-09-12
|
||||
|
@ -7,4 +8,3 @@ version = "6.x-1.19"
|
|||
core = "6.x"
|
||||
project = "token"
|
||||
datestamp = "1347470077"
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
name = TokenSTARTER
|
||||
description = Provides additional tokens and a base on which to build your own tokens.
|
||||
package = Core - extended
|
||||
dependencies[] = token
|
||||
core = 6.x
|
||||
|
||||
|
@ -8,4 +9,3 @@ version = "6.x-1.19"
|
|||
core = "6.x"
|
||||
project = "token"
|
||||
datestamp = "1347470077"
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
name = Token actions
|
||||
description = Provides enhanced versions of core Drupal actions using the Token module.
|
||||
package = Core - extended
|
||||
dependencies[] = token
|
||||
core = 6.x
|
||||
|
||||
|
@ -8,4 +9,3 @@ version = "6.x-1.19"
|
|||
core = "6.x"
|
||||
project = "token"
|
||||
datestamp = "1347470077"
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
; $Id: view_revisions_by_content_type.info,v 1.1 2009/09/27 22:07:01 wimleers Exp $
|
||||
name = View revisions by content type
|
||||
description = "Provides per-content type 'view revisions' permissions."
|
||||
package = Core - extended
|
||||
|
||||
core = 6.x
|
||||
|
||||
|
@ -9,4 +10,3 @@ version = "6.x-1.1"
|
|||
core = "6.x"
|
||||
project = "view_revisions_by_content_type"
|
||||
datestamp = "1288362052"
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
name = Vocabulary Permissions Per Role
|
||||
description = "Allow adding to/editing terms of/removing terms from vocabularies per role."
|
||||
package = Core - extended
|
||||
core = 6.x
|
||||
dependencies[] = taxonomy
|
||||
|
||||
|
@ -9,4 +10,3 @@ version = "6.x-1.1"
|
|||
core = "6.x"
|
||||
project = "vppr"
|
||||
datestamp = "1349516215"
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
; $Id: watcher.info,v 1.2.4.2 2009/02/26 17:03:48 solipsist Exp $
|
||||
name = "Watcher"
|
||||
description = "Watcher enables your site's users to watch nodes for changes and new comments and be notified about them."
|
||||
package = Other
|
||||
package = Core - extended
|
||||
core = 6.x
|
||||
dependencies[] = node
|
||||
dependencies[] = token
|
||||
|
@ -11,4 +11,3 @@ version = "6.x-1.4"
|
|||
core = "6.x"
|
||||
project = "watcher"
|
||||
datestamp = "1288126235"
|
||||
|
||||
|
|
Reference in a new issue