|
From: <be...@us...> - 2013-03-23 22:25:31
|
Revision: 11297
http://sourceforge.net/p/xoops/svn/11297
Author: beckmi
Date: 2013-03-23 22:25:26 +0000 (Sat, 23 Mar 2013)
Log Message:
-----------
Adding SmartClone
Added Paths:
-----------
XoopsModules/smartclone/
XoopsModules/smartclone/branches/
XoopsModules/smartclone/releases/
XoopsModules/smartclone/trunk/
XoopsModules/smartclone/trunk/smartclone/
XoopsModules/smartclone/trunk/smartclone/admin/
XoopsModules/smartclone/trunk/smartclone/admin/about.php
XoopsModules/smartclone/trunk/smartclone/admin/about2.php
XoopsModules/smartclone/trunk/smartclone/admin/admin.php
XoopsModules/smartclone/trunk/smartclone/admin/admin_footer.php
XoopsModules/smartclone/trunk/smartclone/admin/admin_header.php
XoopsModules/smartclone/trunk/smartclone/admin/admin_header2.php
XoopsModules/smartclone/trunk/smartclone/admin/cloneform.inc.php
XoopsModules/smartclone/trunk/smartclone/admin/index.php
XoopsModules/smartclone/trunk/smartclone/admin/main.php
XoopsModules/smartclone/trunk/smartclone/admin/menu.php
XoopsModules/smartclone/trunk/smartclone/blocks/
XoopsModules/smartclone/trunk/smartclone/blocks/index.html
XoopsModules/smartclone/trunk/smartclone/class/
XoopsModules/smartclone/trunk/smartclone/class/index.html
XoopsModules/smartclone/trunk/smartclone/class/plugins.php
XoopsModules/smartclone/trunk/smartclone/class/smartclone.php
XoopsModules/smartclone/trunk/smartclone/docs/
XoopsModules/smartclone/trunk/smartclone/docs/changelog.txt
XoopsModules/smartclone/trunk/smartclone/docs/credits.txt
XoopsModules/smartclone/trunk/smartclone/docs/index.html
XoopsModules/smartclone/trunk/smartclone/docs/install.txt
XoopsModules/smartclone/trunk/smartclone/docs/lang_diff.txt
XoopsModules/smartclone/trunk/smartclone/docs/license.txt
XoopsModules/smartclone/trunk/smartclone/docs/readme.txt
XoopsModules/smartclone/trunk/smartclone/docs/upgrade.txt
XoopsModules/smartclone/trunk/smartclone/images/
XoopsModules/smartclone/trunk/smartclone/images/blank.png
XoopsModules/smartclone/trunk/smartclone/images/cssbutton.gif
XoopsModules/smartclone/trunk/smartclone/images/index.html
XoopsModules/smartclone/trunk/smartclone/images/module_logo.gif
XoopsModules/smartclone/trunk/smartclone/images/module_logo.png
XoopsModules/smartclone/trunk/smartclone/include/
XoopsModules/smartclone/trunk/smartclone/include/common.php
XoopsModules/smartclone/trunk/smartclone/include/functions.php
XoopsModules/smartclone/trunk/smartclone/include/index.html
XoopsModules/smartclone/trunk/smartclone/index.html
XoopsModules/smartclone/trunk/smartclone/language/
XoopsModules/smartclone/trunk/smartclone/language/english/
XoopsModules/smartclone/trunk/smartclone/language/english/admin.php
XoopsModules/smartclone/trunk/smartclone/language/english/help/
XoopsModules/smartclone/trunk/smartclone/language/english/help/help.html
XoopsModules/smartclone/trunk/smartclone/language/english/help/index.html
XoopsModules/smartclone/trunk/smartclone/language/english/index.html
XoopsModules/smartclone/trunk/smartclone/language/english/mail_template/
XoopsModules/smartclone/trunk/smartclone/language/english/mail_template/global_master_submitted.tpl
XoopsModules/smartclone/trunk/smartclone/language/english/mail_template/index.html
XoopsModules/smartclone/trunk/smartclone/language/english/modinfo.php
XoopsModules/smartclone/trunk/smartclone/language/index.html
XoopsModules/smartclone/trunk/smartclone/module.css
XoopsModules/smartclone/trunk/smartclone/plugins/
XoopsModules/smartclone/trunk/smartclone/plugins/index.html
XoopsModules/smartclone/trunk/smartclone/plugins/smartclient.php
XoopsModules/smartclone/trunk/smartclone/plugins/smartcontent.php
XoopsModules/smartclone/trunk/smartclone/plugins/smartfaq.php
XoopsModules/smartclone/trunk/smartclone/plugins/smartmedia.php
XoopsModules/smartclone/trunk/smartclone/plugins/smartpartner.php
XoopsModules/smartclone/trunk/smartclone/plugins/smartsection.php
XoopsModules/smartclone/trunk/smartclone/plugins/smartshop.php
XoopsModules/smartclone/trunk/smartclone/plugins/wfdownloads.php
XoopsModules/smartclone/trunk/smartclone/templates/
XoopsModules/smartclone/trunk/smartclone/templates/index.html
XoopsModules/smartclone/trunk/smartclone/xoops_version.php
Added: XoopsModules/smartclone/trunk/smartclone/admin/about.php
===================================================================
--- XoopsModules/smartclone/trunk/smartclone/admin/about.php (rev 0)
+++ XoopsModules/smartclone/trunk/smartclone/admin/about.php 2013-03-23 22:25:26 UTC (rev 11297)
@@ -0,0 +1,30 @@
+<?php
+/*
+ * You may not change or alter any portion of this comment or credits
+ * of supporting developers from this source code or any supporting source code
+ * which is considered copyrighted (c) material of the original comment or credit authors.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+/**
+ * @copyright The XOOPS Project http://sourceforge.net/projects/xoops/
+ * @license GNU GPL 2 or later (http://www.gnu.org/licenses/gpl-2.0.html)
+ * @package
+ * @since
+ * @author XOOPS Development Team
+ * @version $Id $
+ */
+
+include_once dirname(__FILE__) . '/admin_header.php';
+
+xoops_cp_header();
+
+$aboutAdmin = new ModuleAdmin();
+
+echo $aboutAdmin->addNavigation('about.php');
+echo $aboutAdmin->renderAbout('6KJ7RW5DR3VTJ', false);
+
+include 'admin_footer.php';
\ No newline at end of file
Added: XoopsModules/smartclone/trunk/smartclone/admin/about2.php
===================================================================
--- XoopsModules/smartclone/trunk/smartclone/admin/about2.php (rev 0)
+++ XoopsModules/smartclone/trunk/smartclone/admin/about2.php 2013-03-23 22:25:26 UTC (rev 11297)
@@ -0,0 +1,16 @@
+<?php
+
+/**
+ * $Id: about.php,v 1.1 2006/11/02 17:25:04 marcan Exp $
+ * Module: SmartObject
+ * Author: The SmartFactory <www.smartfactory.ca>
+ * Licence: GNU
+ */
+//
+include_once("admin_header.php");
+
+include_once(SMARTOBJECT_ROOT_PATH . "class/smartobjectabout.php");
+$aboutObj = new SmartobjectAbout();
+$aboutObj->render();
+
+?>
\ No newline at end of file
Added: XoopsModules/smartclone/trunk/smartclone/admin/admin.php
===================================================================
--- XoopsModules/smartclone/trunk/smartclone/admin/admin.php (rev 0)
+++ XoopsModules/smartclone/trunk/smartclone/admin/admin.php 2013-03-23 22:25:26 UTC (rev 11297)
@@ -0,0 +1,159 @@
+<?php
+
+/**
+ * $Id: admin.php,v 1.1 2006/11/02 17:25:04 marcan Exp $
+ * Module: SmartClone
+ * Author: The SmartFactory <www.smartfactory.ca>
+ * Licence: GNU
+ */
+
+// $Id: admin.php,v 1.1 2006/11/02 17:25:04 marcan Exp $
+// ------------------------------------------------------------------------ //
+// XOOPS - PHP Content Management System //
+// Copyright (c) 2000 XOOPS.org //
+// <http://www.xoops.org/> //
+// ------------------------------------------------------------------------ //
+// This program is free software; you can redistribute it and/or modify //
+// it under the terms of the GNU General Public License as published by //
+// the Free Software Foundation; either version 2 of the License, or //
+// (at your option) any later version. //
+// //
+// You may not change or alter any portion of this comment or credits //
+// of supporting developers from this source code or any supporting //
+// source code which is considered copyrighted (c) material of the //
+// original comment or credit authors. //
+// //
+// This program is distributed in the hope that it will be useful, //
+// but WITHOUT ANY WARRANTY; without even the implied warranty of //
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
+// GNU General Public License for more details. //
+// //
+// You should have received a copy of the GNU General Public License //
+// along with this program; if not, write to the Free Software //
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA //
+// ------------------------------------------------------------------------ //
+// Author: Kazumi Ono (AKA onokazu) //
+// URL: http://www.myweb.ne.jp/, http://www.xoops.org/, http://jp.xoops.org/ //
+// Project: The XOOPS Project //
+// ------------------------------------------------------------------------- //
+
+if (isset($_POST['fct'])) {
+ $fct = trim($_POST['fct']);
+}
+if (isset($_GET['fct'])) {
+ $fct = trim($_GET['fct']);
+}
+if (empty($fct)) $fct = 'preferences' ;
+include "../../../mainfile.php";
+include XOOPS_ROOT_PATH."/include/cp_functions.php";
+
+include_once XOOPS_ROOT_PATH."/kernel/module.php";
+
+$admintest = 0;
+
+if (is_object($xoopsUser)) {
+ $xoopsModule =& XoopsModule::getByDirname("system");
+ if ( !$xoopsUser->isAdmin($xoopsModule->mid()) ) {
+ redirect_header(XOOPS_URL.'/user.php',3,_NOPERM);
+ exit();
+ }
+ $admintest=1;
+} else {
+ redirect_header(XOOPS_URL.'/user.php',3,_NOPERM);
+ exit();
+}
+
+// include system category definitions
+include_once XOOPS_ROOT_PATH."/modules/system/constants.php";
+$error = false;
+if ($admintest != 0) {
+ if (isset($fct) && $fct != '') {
+ if (file_exists(XOOPS_ROOT_PATH."/modules/system/admin/".$fct."/xoops_version.php")) {
+
+ include_once( XOOPS_ROOT_PATH."/modules/system/language/" . $xoopsConfig['language'] . "/admin.php" ) ;
+
+ if (file_exists(XOOPS_ROOT_PATH."/modules/system/language/".$xoopsConfig['language']."/admin/".$fct.".php")) {
+ include XOOPS_ROOT_PATH."/modules/system/language/".$xoopsConfig['language']."/admin/".$fct.".php";
+ } elseif (file_exists(XOOPS_ROOT_PATH."/modules/system/language/english/admin/".$fct.".php")) {
+ include XOOPS_ROOT_PATH."/modules/system/language/english/admin/".$fct.".php";
+ }
+ include XOOPS_ROOT_PATH."/modules/system/admin/".$fct."/xoops_version.php";
+ $sysperm_handler =& xoops_gethandler('groupperm');
+ $category = !empty($modversion['category']) ? intval($modversion['category']) : 0;
+ unset($modversion);
+ if ($category > 0) {
+ $groups =& $xoopsUser->getGroups();
+ if (in_array(XOOPS_GROUP_ADMIN, $groups) || false != $sysperm_handler->checkRight('system_admin', $category, $groups, $xoopsModule->getVar('mid'))){
+ if (file_exists("../include/{$fct}.inc.php")) {
+ include_once "../include/{$fct}.inc.php" ;
+ } else {
+ $error = true;
+ }
+ } else {
+ $error = true;
+ }
+ } elseif ($fct == 'version') {
+ if (file_exists(XOOPS_ROOT_PATH."/modules/system/admin/version/main.php")) {
+ include_once XOOPS_ROOT_PATH."/modules/system/admin/version/main.php";
+ } else {
+ $error = true;
+ }
+ } else {
+ $error = true;
+ }
+ } else {
+ $error = true;
+ }
+ } else {
+ $error = true;
+ }
+}
+
+if (false != $error) {
+ xoops_cp_header();
+ echo "<h4>System Configuration</h4>";
+ echo '<table class="outer" cellpadding="4" cellspacing="1">';
+ echo '<tr>';
+ $groups = $xoopsUser->getGroups();
+ $all_ok = false;
+ if (!in_array(XOOPS_GROUP_ADMIN, $groups)) {
+ $sysperm_handler =& xoops_gethandler('groupperm');
+ $ok_syscats =& $sysperm_handler->getItemIds('system_admin', $groups);
+ } else {
+ $all_ok = true;
+ }
+ $admin_dir = XOOPS_ROOT_PATH."/modules/system/admin";
+ $handle = opendir($admin_dir);
+ $counter = 0;
+ $class = 'even';
+ while ($file = readdir($handle)) {
+ if (strtolower($file) != 'cvs' && !preg_match("/[.]/", $file) && is_dir($admin_dir.'/'.$file)) {
+ include $admin_dir.'/'.$file.'/xoops_version.php';
+ if ($modversion['hasAdmin']) {
+ $category = isset($modversion['category']) ? intval($modversion['category']) : 0;
+ if (false != $all_ok || in_array($modversion['category'], $ok_syscats)) {
+ echo "<td class='$class' align='center' valign='bottom' width='19%'>";
+ echo "<a href='".XOOPS_URL."/modules/system/admin.php?fct=".$file."'><b>" .trim($modversion['name'])."</b></a>\n";
+ echo "</td>";
+ $counter++;
+ $class = ($class == 'even') ? 'odd' : 'even';
+ }
+ if ( $counter > 4 ) {
+ $counter = 0;
+ echo "</tr>";
+ echo "<tr>";
+ }
+ }
+ unset($modversion);
+ }
+ }
+ while ($counter < 5) {
+ echo '<td class="'.$class.'"> </td>';
+ $class = ($class == 'even') ? 'odd' : 'even';
+ $counter++;
+ }
+ echo '</tr></table>';
+ xoops_cp_footer();
+}
+
+?>
\ No newline at end of file
Added: XoopsModules/smartclone/trunk/smartclone/admin/admin_footer.php
===================================================================
--- XoopsModules/smartclone/trunk/smartclone/admin/admin_footer.php (rev 0)
+++ XoopsModules/smartclone/trunk/smartclone/admin/admin_footer.php 2013-03-23 22:25:26 UTC (rev 11297)
@@ -0,0 +1,28 @@
+<?php
+/*
+ * You may not change or alter any portion of this comment or credits
+ * of supporting developers from this source code or any supporting source code
+ * which is considered copyrighted (c) material of the original comment or credit authors.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+/**
+ * @copyright The XOOPS Project http://sourceforge.net/projects/xoops/
+ * @license GNU GPL 2 or later (http://www.gnu.org/licenses/gpl-2.0.html)
+ * @package
+ * @since
+ * @author XOOPS Development Team
+ * @version $Id $
+ */
+
+echo "<div class='adminfooter'>\n"
+ ." <div style='text-align: center;'>\n"
+ ." <a href='http://www.xoops.org' rel='external'><img src='{$pathIcon32}/xoopsmicrobutton.gif' alt='XOOPS' title='XOOPS'></a>\n"
+ ." </div>\n"
+ ." " . _AM_MODULEADMIN_ADMIN_FOOTER . "\n"
+ ."</div>";
+
+xoops_cp_footer();
\ No newline at end of file
Added: XoopsModules/smartclone/trunk/smartclone/admin/admin_header.php
===================================================================
--- XoopsModules/smartclone/trunk/smartclone/admin/admin_header.php (rev 0)
+++ XoopsModules/smartclone/trunk/smartclone/admin/admin_header.php 2013-03-23 22:25:26 UTC (rev 11297)
@@ -0,0 +1,59 @@
+<?php
+/*
+ * You may not change or alter any portion of this comment or credits
+ * of supporting developers from this source code or any supporting source code
+ * which is considered copyrighted (c) material of the original comment or credit authors.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+/**
+ * @copyright The XOOPS Project http://sourceforge.net/projects/xoops/
+ * @license GNU GPL 2 or later (http://www.gnu.org/licenses/gpl-2.0.html)
+ * @package
+ * @since
+ * @author XOOPS Development Team
+ * @version $Id $
+ */
+
+$path = dirname(dirname(dirname(dirname(__FILE__))));
+include_once $path . '/mainfile.php';
+include_once $path . '/include/cp_functions.php';
+require_once $path . '/include/cp_header.php';
+
+global $xoopsModule;
+
+$thisModuleDir = $GLOBALS['xoopsModule']->getVar('dirname');
+
+//if functions.php file exist
+//require_once dirname(dirname(__FILE__)) . '/include/functions.php';
+
+// Load language files
+xoops_loadLanguage('admin', $thisModuleDir);
+xoops_loadLanguage('modinfo', $thisModuleDir);
+xoops_loadLanguage('main', $thisModuleDir);
+
+$pathIcon16 = '../'.$xoopsModule->getInfo('icons16');
+$pathIcon32 = '../'.$xoopsModule->getInfo('icons32');
+$pathModuleAdmin = $xoopsModule->getInfo('dirmoduleadmin');
+
+include_once $GLOBALS['xoops']->path($pathModuleAdmin.'/moduleadmin.php');
+
+
+if (!defined("SMARTCLONE_NOCPFUNC")) {
+ include_once '../../../include/cp_header.php';
+}
+
+include_once XOOPS_ROOT_PATH . "/class/xoopsformloader.php";
+
+include_once XOOPS_ROOT_PATH.'/modules/smartclone/include/common.php';
+
+if( !defined("SMARTCLONE_ADMIN_URL") ){
+ define('SMARTCLONE_ADMIN_URL', SMARTCLONE_URL . "admin/");
+}
+
+if( !defined("SMARTCLONE_ADMIN_ROOT_PATH") ){
+ define('SMARTCLONE_ADMIN_ROOT_PATH', SMARTCLONE_ROOT_PATH . "admin/");
+}
\ No newline at end of file
Added: XoopsModules/smartclone/trunk/smartclone/admin/admin_header2.php
===================================================================
--- XoopsModules/smartclone/trunk/smartclone/admin/admin_header2.php (rev 0)
+++ XoopsModules/smartclone/trunk/smartclone/admin/admin_header2.php 2013-03-23 22:25:26 UTC (rev 11297)
@@ -0,0 +1,26 @@
+<?php
+
+/**
+ * $Id: admin_header.php,v 1.1 2006/11/02 17:25:04 marcan Exp $
+ * Module: SmartClone
+ * Author: The SmartFactory <www.smartfactory.ca>
+ * Licence: GNU
+ */
+
+if (!defined("SMARTCLONE_NOCPFUNC")) {
+ include_once '../../../include/cp_header.php';
+}
+
+include_once XOOPS_ROOT_PATH . "/class/xoopsformloader.php";
+
+include_once XOOPS_ROOT_PATH.'/modules/smartclone/include/common.php';
+
+if( !defined("SMARTCLONE_ADMIN_URL") ){
+ define('SMARTCLONE_ADMIN_URL', SMARTCLONE_URL . "admin/");
+}
+
+if( !defined("SMARTCLONE_ADMIN_ROOT_PATH") ){
+ define('SMARTCLONE_ADMIN_ROOT_PATH', SMARTCLONE_ROOT_PATH . "admin/");
+}
+
+?>
\ No newline at end of file
Added: XoopsModules/smartclone/trunk/smartclone/admin/cloneform.inc.php
===================================================================
--- XoopsModules/smartclone/trunk/smartclone/admin/cloneform.inc.php (rev 0)
+++ XoopsModules/smartclone/trunk/smartclone/admin/cloneform.inc.php 2013-03-23 22:25:26 UTC (rev 11297)
@@ -0,0 +1,42 @@
+<?php
+$form = new XoopsThemeForm(_AM_SCLONE_CLONE_A_MODULE, "form", xoops_getenv('PHP_SELF'));
+$form->setExtra( "enctype='multipart/form-data'" ) ;
+
+$module_select = new XoopsFormSelect('', 'module', '', 1, false);
+$plugins_handler = new SmartclonePlugins();
+$module_select->addOptionArray($plugins_handler->getPluginsArray());
+
+$plugins_tray = new XoopsFormElementTray(_AM_SCLONE_MODULE_SELECT, '');
+$plugins_tray->setDescription(_AM_SCLONE_MODULE_SELECT_DSC);
+$plugins_tray->addElement($module_select, true);
+
+include_once(SMARTOBJECT_ROOT_PATH . 'class/smarttip.php');
+$oTip = new SmartTip('smartclone_info1', _AM_SCLONE_WHERE_OTHER_MODULE, _AM_SCLONE_WHERE_OTHER_MODULE_EXP);
+$module_selec_tip = new XoopsFormLabel('', $oTip->render(false));
+$plugins_tray->addElement($module_selec_tip);
+
+$form->addElement($plugins_tray);
+
+$newname_text = new XoopsFormText(_AM_SCLONE_NEWNAME, 'newname', 50, 255, '');
+$newname_text->setDescription(_AM_SCLONE_NEWNAME_DSC);
+$form->addElement($newname_text, true);
+
+$install_check = new XoopsFormRadioYN(_AM_SCLONE_INSTALL_CHECK, 'install', true);
+$form->addElement($install_check);
+
+$form_button_tray = new XoopsFormElementTray('', '');
+$form_hidden = new XoopsFormHidden('op', '');
+$form_button_tray->addElement($form_hidden);
+
+$form_butt_create = new XoopsFormButton('', '', _GO, 'submit');
+$form_butt_create->setExtra('onclick="this.form.elements.op.value=\'doclone\'"');
+$form_button_tray->addElement($form_butt_create);
+
+$butt_cancel = new XoopsFormButton('', '', _CANCEL, 'button');
+$butt_cancel->setExtra('onclick="history.go(-1)"');
+$form_button_tray->addElement($butt_cancel);
+
+$form->addElement($form_button_tray);
+
+$form->display();
+?>
Added: XoopsModules/smartclone/trunk/smartclone/admin/index.php
===================================================================
--- XoopsModules/smartclone/trunk/smartclone/admin/index.php (rev 0)
+++ XoopsModules/smartclone/trunk/smartclone/admin/index.php 2013-03-23 22:25:26 UTC (rev 11297)
@@ -0,0 +1,32 @@
+<?php
+/*
+ * You may not change or alter any portion of this comment or credits
+ * of supporting developers from this source code or any supporting source code
+ * which is considered copyrighted (c) material of the original comment or credit authors.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+/**
+ * @copyright The XOOPS Project http://sourceforge.net/projects/xoops/
+ * @license GNU GPL 2 or later (http://www.gnu.org/licenses/gpl-2.0.html)
+ * @package
+ * @since
+ * @author XOOPS Development Team
+ * @version $Id $
+ */
+
+
+require_once dirname(dirname(dirname(dirname(__FILE__)))) . '/include/cp_header.php';
+include_once dirname(__FILE__) . '/admin_header.php';
+
+xoops_cp_header();
+
+ $indexAdmin = new ModuleAdmin();
+
+ echo $indexAdmin->addNavigation('index.php');
+ echo $indexAdmin->renderIndex();
+
+include "admin_footer.php";
\ No newline at end of file
Added: XoopsModules/smartclone/trunk/smartclone/admin/main.php
===================================================================
--- XoopsModules/smartclone/trunk/smartclone/admin/main.php (rev 0)
+++ XoopsModules/smartclone/trunk/smartclone/admin/main.php 2013-03-23 22:25:26 UTC (rev 11297)
@@ -0,0 +1,61 @@
+<?php
+
+/**
+ * $Id: index.php,v 1.3 2006/11/08 15:02:47 marcan Exp $
+ * Module: SmartClone
+ * Author: The SmartFactory <www.smartfactory.ca>
+ * Licence: GNU
+ */
+
+include_once("admin_header.php");
+include_once(SMARTCLONE_ROOT_PATH . "class/smartclone.php");
+include_once(SMARTCLONE_ROOT_PATH . 'class/plugins.php');
+
+$op = '';
+if (isset($_GET['op'])) $op = $_GET['op'];
+if (isset($_POST['op'])) $op = $_POST['op'];
+
+switch ($op) {
+ case "doclone":
+ $module = isset($_POST['module']) ? $_POST['module'] : false;
+ $newname = isset($_POST['newname']) ? $_POST['newname'] : false;
+ if ($module && $newname) {
+ $smartClone = new SmartClone($module, $newname);
+ if (!$smartClone->execute()) {
+ redirect_header(SMARTCLONE_ADMIN_URL, 3, $smartClone->getErrors());
+ exit;
+ } else {
+
+ if (isset($_POST['install']) && $_POST['install']) {
+ $url = XOOPS_URL . '/modules/system/admin.php?fct=modulesadmin&op=install&module=' . $smartClone->_newModuleName;
+ } else {
+ $url = SMARTCLONE_ADMIN_URL;
+ }
+ redirect_header($url, 3, _AM_SCLONE_SUCCESS);
+ exit;
+ }
+ } else {
+ redirect_header(SMARTCLONE_ADMIN_URL, 3, _AM_SCLONE_INVALID_SELECTION);
+ exit;
+ }
+ break;
+
+ default:
+ smart_xoops_cp_header();
+ $indexAdmin = new ModuleAdmin();
+ echo $indexAdmin->addNavigation('main.php');
+ smart_addAdminAjaxSupport();
+ smart_addStyle('smartobject');
+
+// smart_adminMenu(0, _AM_SOBJECT_INDEX);
+ smart_collapsableBar('cloneform', _AM_SCLONE_CLONEFORM_TILE, _AM_SCLONE_CLONEFORM_DSC);
+
+ include_once(SMARTCLONE_ADMIN_ROOT_PATH . "cloneform.inc.php");
+
+ smart_close_collapsable('cloneform');
+// smart_modFooter();
+// xoops_cp_footer();
+ include_once 'admin_footer.php';
+ break;
+}
+?>
\ No newline at end of file
Added: XoopsModules/smartclone/trunk/smartclone/admin/menu.php
===================================================================
--- XoopsModules/smartclone/trunk/smartclone/admin/menu.php (rev 0)
+++ XoopsModules/smartclone/trunk/smartclone/admin/menu.php 2013-03-23 22:25:26 UTC (rev 11297)
@@ -0,0 +1,64 @@
+<?php
+
+/**
+ * $Id: menu.php,v 1.1 2006/11/02 17:25:04 marcan Exp $
+ * Module: SmartClone
+ * Author: The SmartFactory <www.smartfactory.ca>
+ * Licence: GNU
+ */
+
+defined("XOOPS_ROOT_PATH") or die("XOOPS root path not defined");
+
+$path = dirname(dirname(dirname(dirname(__FILE__))));
+include_once $path . '/mainfile.php';
+
+$dirname = basename(dirname(dirname(__FILE__)));
+$module_handler = xoops_gethandler('module');
+$module = $module_handler->getByDirname($dirname);
+$pathIcon32 = $module->getInfo('icons32');
+$pathModuleAdmin = $module->getInfo('dirmoduleadmin');
+$pathLanguage = $path . $pathModuleAdmin;
+
+
+if (!file_exists($fileinc = $pathLanguage . '/language/' . $GLOBALS['xoopsConfig']['language'] . '/' . 'main.php')) {
+ $fileinc = $pathLanguage . '/language/english/main.php';
+}
+
+include_once $fileinc;
+
+$adminmenu = array();
+$i=0;
+$adminmenu[$i]["title"] = _AM_MODULEADMIN_HOME;
+$adminmenu[$i]['link'] = "admin/index.php";
+$adminmenu[$i]["icon"] = $pathIcon32 . '/home.png';
+$i++;
+$adminmenu[$i]['title'] = _MI_SCLONE_ADMENU1;
+$adminmenu[$i]['link'] = "admin/main.php";
+$adminmenu[$i]["icon"] = $pathIcon32 . '/manage.png';
+
+$i++;
+$adminmenu[$i]['title'] = _AM_MODULEADMIN_ABOUT;
+$adminmenu[$i]["link"] = "admin/about.php";
+$adminmenu[$i]["icon"] = $pathIcon32 . '/about.png';
+//$i++;
+//$adminmenu[$i]['title'] = _AM_MODULEADMIN_ABOUT;
+//$adminmenu[$i]['link'] = "admin/about2.php";
+//$adminmenu[$i]["icon"] = $pathIcon32 . '/about.png';
+
+//-----------------------------
+//$i++;
+//$adminmenu[$i]['title'] = _MI_SCLONE_CLONE_A_MODULE;
+//$adminmenu[$i]['link'] = "admin/index.php";
+//
+//if (isset($xoopsModule) && $xoopsModule->getVar('dirname') == 'smartclone') {
+// $i++;
+// $headermenu[$i]['title'] = _PREFERENCES;
+// $headermenu[$i]['link'] = '../../system/admin.php?fct=preferences&op=showmod&mod=' . $xoopsModule->getVar('mid');
+// $i++;
+// $headermenu[$i]['title'] = _CO_SOBJECT_UPDATE_MODULE;
+// $headermenu[$i]['link'] = XOOPS_URL . "/modules/system/admin.php?fct=modulesadmin&op=update&module=" . $xoopsModule->getVar('dirname');
+// $i++;
+// $headermenu[$i]['title'] = _AM_SOBJECT_ABOUT;
+// $headermenu[$i]['link'] = SMARTCLONE_URL . "admin/about2.php";
+//}
+//?>
\ No newline at end of file
Added: XoopsModules/smartclone/trunk/smartclone/blocks/index.html
===================================================================
--- XoopsModules/smartclone/trunk/smartclone/blocks/index.html (rev 0)
+++ XoopsModules/smartclone/trunk/smartclone/blocks/index.html 2013-03-23 22:25:26 UTC (rev 11297)
@@ -0,0 +1 @@
+ <script>history.go(-1);</script>
\ No newline at end of file
Added: XoopsModules/smartclone/trunk/smartclone/class/index.html
===================================================================
--- XoopsModules/smartclone/trunk/smartclone/class/index.html (rev 0)
+++ XoopsModules/smartclone/trunk/smartclone/class/index.html 2013-03-23 22:25:26 UTC (rev 11297)
@@ -0,0 +1 @@
+ <script>history.go(-1);</script>
\ No newline at end of file
Added: XoopsModules/smartclone/trunk/smartclone/class/plugins.php
===================================================================
--- XoopsModules/smartclone/trunk/smartclone/class/plugins.php (rev 0)
+++ XoopsModules/smartclone/trunk/smartclone/class/plugins.php 2013-03-23 22:25:26 UTC (rev 11297)
@@ -0,0 +1,33 @@
+<?php
+class SmartclonePlugins {
+
+ var $pluginPatterns = false;
+
+ function getPlugin($dirname) {
+ $pluginName = SMARTCLONE_ROOT_PATH . 'plugins/' . $dirname . '.php';
+ if (file_exists($pluginName)) {
+ include_once($pluginName);
+ $this->pluginPatterns = $pluginPatterns;
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ function getPluginsArray() {
+ include_once(XOOPS_ROOT_PATH . "/class/xoopslists.php");
+ $aFiles = XoopsLists::getFileListAsArray(SMARTCLONE_ROOT_PATH . 'plugins/');
+ $ret = array();
+ foreach($aFiles as $file) {
+ if (substr($file, strlen($file) - 4, 4) == '.php') {
+ $pluginName = str_replace('.php', '', $file);
+ $module_xoops_version_file = XOOPS_ROOT_PATH . "/modules/$pluginName/xoops_version.php";
+ if (file_exists($module_xoops_version_file)) {
+ $ret[$pluginName] = $pluginName;
+ }
+ }
+ }
+ return $ret;
+ }
+}
+?>
\ No newline at end of file
Added: XoopsModules/smartclone/trunk/smartclone/class/smartclone.php
===================================================================
--- XoopsModules/smartclone/trunk/smartclone/class/smartclone.php (rev 0)
+++ XoopsModules/smartclone/trunk/smartclone/class/smartclone.php 2013-03-23 22:25:26 UTC (rev 11297)
@@ -0,0 +1,236 @@
+<?php
+
+// work around for PHP < 5.0.x
+if(!function_exists('file_put_contents')) {
+ function file_put_contents($filename, $data, $file_append = false) {
+ $fp = fopen($filename, (!$file_append ? 'w+' : 'a+'));
+ if(!$fp) {
+ trigger_error('file_put_contents cannot write in file "' . $filename . '"', E_USER_ERROR);
+ return;
+ }
+ fputs($fp, $data);
+ fclose($fp);
+ }
+}
+
+class SmartClone {
+ var $_fromModule;
+ var $_toModule;
+ var $_errors = array();
+ var $_sCloNe;
+ var $_sCLONE;
+ var $_sclone;
+ var $_sClone;
+ var $_sMODULE;
+ var $_sModule;
+ var $_patterns;
+ var $_patKeys;
+ var $_patValues;
+ var $_logs = array();
+ var $_newModuleName = false;
+ var $_newModuleURL = false;
+ var $_newPath;
+
+ function __construct($fromModule, $toModule) {
+ $this->_fromModule = $fromModule;
+ $this->_toModule = trim($toModule);
+
+ $this->addLog('FromModule : ' . $this->_fromModule);
+ $this->addLog('ToModule : ' . $this->_toModule);
+ }
+ function execute() {
+ if (function_exists('mb_convert_encoding')) {
+ $this->_toModule = mb_convert_encoding($this->_toModule, "", "auto");
+ }
+ $this->_toModule = str_replace('-', 'xyz', $this->_toModule);
+ $this->_toModule = preg_replace("/[[:punct:]]/", "", $this->_toModule);
+ $this->_toModule = str_replace('xyz', '-', $this->_toModule);
+ $this->_toModule = preg_replace('/ /', '_', $this->_toModule);
+
+ $this->addLog('ToModule name, once it has been sanitized : ' . $this->_toModule);
+
+ // Check wether the new module to be created already exists
+ if (is_dir(XOOPS_ROOT_PATH . '/modules/' . $this->_toModule)) {
+ $this->setError(sprintf(_AM_SCLONE_NEW_MODULE_ALREADY_EXISTS, $this->_toModule));
+ return false;
+ }
+ $this->_sCloNe = $this->_toModule;
+ $this->addLog('ToModule : ' . $this->_sCloNe);
+
+ $this->_sCLONE = strtoupper(preg_replace("/-/", "_", $this->_toModule));
+ $this->addLog('TOMODULE : ' . $this->_sCLONE);
+
+ $this->_sclone = strtolower(preg_replace("/-/", "_", $this->_toModule));
+ $this->addLog('tomodule : ' . $this->_sclone);
+
+ $this->_sClone = ucfirst(strtolower($this->_toModule));
+ $this->addLog('Tomodule : ' . $this->_sClone);
+
+ $this->_sMODULE = strtoupper($this->_fromModule);
+ $this->addLog('FROMMODULE : ' . $this->_sMODULE);
+
+ $this->_sModule = ucfirst($this->_fromModule);
+ $this->addLog('Frommodule : ' . $this->_sModule);
+
+ // first one must be module directory name
+ $this->_patterns = array (
+ $this->_fromModule => $this->_sclone,
+ $this->_sMODULE => $this->_sCLONE,
+ $this->_sModule => $this->_sClone,
+ );
+
+ // Look for a plugin for this fromModule
+ $plugins_handler = new SmartclonePlugins();
+ if ($plugins_handler->getPlugin($this->_fromModule) && $plugins_handler->pluginPatterns) {
+
+ foreach($plugins_handler->pluginPatterns as $aPattern) {
+ switch($aPattern['replacement']) {
+
+ case 'ModuleName' :
+ $this->_patterns[$aPattern['key']] = $this->prefixSuffix($this->_sCloNe, $aPattern);
+ break;
+
+ case 'Modulename' :
+ $this->_patterns[$aPattern['key']] = $this->prefixSuffix($this->_sClone, $aPattern);
+ break;
+
+ case 'modulename' :
+ $this->_patterns[$aPattern['key']] = $this->prefixSuffix($this->_sclone, $aPattern);
+ break;
+
+ case 'MODULENAME' :
+ $this->_patterns[$aPattern['key']] = $this->prefixSuffix($this->_SCLONE, $aPattern);
+ break;
+
+ case 'CONSTANT' :
+ $this->_patterns[$aPattern['key']] = $this->getConstantPattern($aPattern, $aPattern);
+ break;
+
+ case 'CUSTOM' :
+ if (function_exists($aPattern['function'])) {
+ $function = $aPattern['function'];
+ $this->_patterns[$aPattern['key']] = $this->prefixSuffix($function($this->_sCloNe), $aPattern);
+ }
+
+ break;
+ }
+ }
+ }
+
+ $this->_patKeys = array_keys($this->_patterns);
+ $this->_patValues = array_values($this->_patterns);
+
+ // Create clone
+ $module_dir = XOOPS_ROOT_PATH . '/modules';
+ $fileperm = fileperms($module_dir);
+ $this->addLog('Original permissions of folder "' . XOOPS_ROOT_PATH . '/modules' . '" : ' . $fileperm);
+
+ if (chmod($module_dir, 0777)) {
+ $this->cloneFileFolder($module_dir . "/" . $this->_fromModule);
+ } else {
+ $this->setError(_AM_SCLONE_CHANGE_PERMISSION_FAILED);
+ return false;
+ }
+ $this->storeLogsToFile();
+ chmod($module_dir, $fileperm);
+ return true;
+ }
+ function cloneFileFolder($path) {
+ $this->addLog("Cloning '" . $this->relativePath($path) . "'");
+
+ $newPath = str_replace($this->_patKeys[0], $this->_patValues[0], $path);
+
+ if (!$this->_newModuleName) {
+ $this->_newModuleName = str_replace(XOOPS_ROOT_PATH . '/modules/', '', $newPath);
+ $this->_newModuleURL = XOOPS_URL . '/modules/' . $this->_newModuleName;
+ $this->_newPath = $newPath;
+ }
+
+ $this->addLog("-- New path : " . $this->relativePath($newPath));
+
+ if (is_dir($path)) {
+ // Create new dir
+ mkdir($newPath);
+ $this->addLog("-- Creating folder '" . $this->relativePath($newPath) . "'");
+ // check all files in dir, and process it
+ if ($handle = opendir($path)) {
+ while ($file = readdir($handle)) {
+ if ($file != '.' && $file != '..') {
+ $this->cloneFileFolder("$path/$file");
+ }
+ }
+ closedir($handle);
+ }
+ } else {
+ if (preg_match('/(.jpg|.gif|.png|.zip)$/i', $path)) {
+ $this->addLog("-- Copying file '" . $this->relativePath($newPath) . "'");
+ copy($path, $newPath);
+ } else {
+ // file, read it
+ $content = file_get_contents($path);
+ $content = str_replace($this->_patKeys, $this->_patValues, $content); // Rename Clone values
+ $this->addLog("-- Editing the content of '" . $this->relativePath($newPath) . "'");
+ file_put_contents($newPath, $content);
+ }
+ }
+ }
+
+ function getConstantPattern($aPattern=false) {
+ // Return the last 8 char of $this->_sCLONE
+ if (strlen($this->_sCLONE) <= 8) {
+ return $this->_sCLONE;
+ }
+ $ret = strrev($this->_sCLONE);
+ $ret = substr($ret, 0, 8);
+ $ret = strrev($ret);
+ if ($aPattern) {
+ $ret = $this->prefixSuffix($ret, $aPattern);
+ }
+ return $ret;
+ }
+
+ function prefixSuffix($text, $aPattern) {
+ if (isset($aPattern['prefix'])) {
+ $text = $aPattern['prefix'] . $text;
+ }
+ if (isset($aPattern['suffix'])) {
+ $text = $text . $aPattern['suffix'] ;
+ }
+ return $text;
+ }
+
+ function setError($text) {
+ $this->_errors[] = $text;
+ }
+
+ function getErrors() {
+ $ret = '';
+ foreach ($this->_errors as $error) {
+ $ret .= "$error <br />";
+ }
+ return $ret;
+ }
+
+ function addLog($text) {
+ $this->_logs[] = $text;
+ }
+
+ function getLogs() {
+ $ret = '';
+ foreach ($this->_logs as $log) {
+ $ret .= "$log\r\n";
+ }
+ return $ret;
+ }
+
+ function relativePath($path) {
+ return str_replace(XOOPS_ROOT_PATH . '/modules/', '', $path);
+ }
+
+ function storeLogsToFile() {
+ $filename = $this->_newPath ."/cloning.log";
+ return file_put_contents($filename, $this->getLogs());
+ }
+}
+
+?>
\ No newline at end of file
Added: XoopsModules/smartclone/trunk/smartclone/docs/changelog.txt
===================================================================
--- XoopsModules/smartclone/trunk/smartclone/docs/changelog.txt (rev 0)
+++ XoopsModules/smartclone/trunk/smartclone/docs/changelog.txt 2013-03-23 22:25:26 UTC (rev 11297)
@@ -0,0 +1,11 @@
+---------------------------------------
+1.10 Beta 1 2013-03-23
+---------------------------------------
+
+- Converted to XOOPS 2.5.5 Admin GUI (Mamba)
+
+---------------------------------------
+1.00 Beta 1 2006-11-02
+---------------------------------------
+
+- First public Release (Marcan)
Added: XoopsModules/smartclone/trunk/smartclone/docs/credits.txt
===================================================================
--- XoopsModules/smartclone/trunk/smartclone/docs/credits.txt (rev 0)
+++ XoopsModules/smartclone/trunk/smartclone/docs/credits.txt 2013-03-23 22:25:26 UTC (rev 11297)
@@ -0,0 +1,9 @@
+Credits
+===============
+
+This module was made possible by 2 great developers. The original cloning script was developed by Sudhaker for the SmartSection module.
+It was then improved by Solo who encapsulated Sudhaker's code into an easy web form interface for his Edito module.
+It was only after Solo have shown Marcan his latest Edito that he had the idea to create a module that could clone any module
+in a '1 click operation'. Many thanks to Sudhaker and Solo for they made this module possible!
+
+Version 1.10 was updated to XOOPS 2.5.0 Standard GUI by Mamba
\ No newline at end of file
Added: XoopsModules/smartclone/trunk/smartclone/docs/index.html
===================================================================
--- XoopsModules/smartclone/trunk/smartclone/docs/index.html (rev 0)
+++ XoopsModules/smartclone/trunk/smartclone/docs/index.html 2013-03-23 22:25:26 UTC (rev 11297)
@@ -0,0 +1 @@
+ <script>history.go(-1);</script>
\ No newline at end of file
Added: XoopsModules/smartclone/trunk/smartclone/docs/install.txt
===================================================================
--- XoopsModules/smartclone/trunk/smartclone/docs/install.txt (rev 0)
+++ XoopsModules/smartclone/trunk/smartclone/docs/install.txt 2013-03-23 22:25:26 UTC (rev 11297)
@@ -0,0 +1,6 @@
+INSTALL/UNISTALL
+=================
+
+No special measures necessary, follow the standard installation process and extract the module folder into the ../modules directory. Install the module through Admin -> System Module -> Modules.
+
+Detailed instructions on installing modules are available in the XOOPS Operations Manual: http://goo.gl/adT2i
\ No newline at end of file
Added: XoopsModules/smartclone/trunk/smartclone/docs/lang_diff.txt
===================================================================
--- XoopsModules/smartclone/trunk/smartclone/docs/lang_diff.txt (rev 0)
+++ XoopsModules/smartclone/trunk/smartclone/docs/lang_diff.txt 2013-03-23 22:25:26 UTC (rev 11297)
@@ -0,0 +1,11 @@
+LANGUAGE DIFFERENCES
+=====================
+
+Below are language differences from a version to next version.
+
+Legend :
++ Added
+- Removed
+* Modified
+x renamed
+
Added: XoopsModules/smartclone/trunk/smartclone/docs/license.txt
===================================================================
--- XoopsModules/smartclone/trunk/smartclone/docs/license.txt (rev 0)
+++ XoopsModules/smartclone/trunk/smartclone/docs/license.txt 2013-03-23 22:25:26 UTC (rev 11297)
@@ -0,0 +1,339 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
Added: XoopsModules/smartclone/trunk/smartclone/docs/readme.txt
================...
[truncated message content] |