[TEP-COMMIT] [CVS admin] create an administration tool version of the languages class, which extends

hpdl-OfajU3CKLf1/[email protected] 29 Nov 2004 14:36:21 -0000
Newsgroups gmane.comp.web.oscommerce.cvs
Message-ID <[email protected]>
<html>
<head>
<style><!--
  body {background-color:#ffffff;}
  .file {border:1px solid #eeeeee;margin-top:1em;margin-bottom:1em;}
  .pathname {font-family:monospace; float:right;}
  .fileheader {margin-bottom:.5em;}
  .diff {margin:0;}
  .tasklist {padding:4px;border:1px dashed #000000;margin-top:1em;}
  .tasklist ul {margin-top:0;margin-bottom:0;}
  tr.alt {background-color:#eeeeee}
  #added {background-color:#ddffdd;}
  #addedchars {background-color:#99ff99;font-weight:bolder;}
  tr.alt #added {background-color:#ccf7cc;}
  #removed {background-color:#ffdddd;}
  #removedchars {background-color:#ff9999;font-weight:bolder;}
  tr.alt #removed {background-color:#f7cccc;}
  #info {color:#888888;}
  #context {background-color:#eeeeee;}
  td {padding-left:.3em;padding-right:.3em;}
  tr.head {border-bottom-width:1px;border-bottom-style:solid;}
  tr.head td {padding:0;padding-top:.2em;}
  .task {background-color:#ffff00;}
  .comment {padding:4px;border:1px dashed #000000;background-color:#ffffdd}
  .error {color:red;}
  hr {border-width:0px;height:2px;background:black;}
--></style>
</head>
<body>
<table cellspacing="0" cellpadding="0" border="0" rules="cols">
<tr class="head"><td colspan="4">Commit in <b><tt>admin/admin</tt></b><span id="info"> on MAIN</span></td></tr>
<tr><td><tt><a href="#file1">languages.php</a></tt></td><td align="right" id="added">+9</td><td align="right" id="removed">-278</td><td nowrap="nowrap" align="center"><a href="http://cvs.oscommerce.com/viewcvs.cgi/admin/admin/languages.php?rev=1.38&amp;content-type=text/vnd.viewcvs-markup">1.38</a> <a href="http://cvs.oscommerce.com/viewcvs.cgi/admin/admin/languages.php.diff?r1=1.38&amp;r2=1.39">-&gt;</a> <a href="http://cvs.oscommerce.com/viewcvs.cgi/admin/admin/languages.php?rev=1.39&amp;content-type=text/vnd.viewcvs-markup">1.39</a></td></tr>
<tr class="alt"><td><tt>includes/<a href="#file2">application_top.php</a></tt></td><td align="right" id="added">+2</td><td align="right" id="removed">-2</td><td nowrap="nowrap" align="center"><a href="http://cvs.oscommerce.com/viewcvs.cgi/admin/admin/includes/application_top.php?rev=1.182&amp;content-type=text/vnd.viewcvs-markup">1.182</a> <a href="http://cvs.oscommerce.com/viewcvs.cgi/admin/admin/includes/application_top.php.diff?r1=1.182&amp;r2=1.183">-&gt;</a> <a href="http://cvs.oscommerce.com/viewcvs.cgi/admin/admin/includes/application_top.php?rev=1.183&amp;content-type=text/vnd.viewcvs-markup">1.183</a></td></tr>
<tr><td><tt>includes/classes/<a href="#file3">language.php</a></tt></td><td align="right" id="added">+363</td><td></td><td nowrap="nowrap" align="center"><a href="http://cvs.oscommerce.com/viewcvs.cgi/admin/admin/includes/classes/language.php?rev=1.2&amp;content-type=text/vnd.viewcvs-markup">1.2</a> <a href="http://cvs.oscommerce.com/viewcvs.cgi/admin/admin/includes/classes/language.php.diff?r1=1.2&amp;r2=1.3">-&gt;</a> <a href="http://cvs.oscommerce.com/viewcvs.cgi/admin/admin/includes/classes/language.php?rev=1.3&amp;content-type=text/vnd.viewcvs-markup">1.3</a></td></tr>
<tr><td></td><td align="right" id="added">+374</td><td align="right" id="removed">-280</td><td></td></tr>
</table>
<small id="info">3 modified files</small><br />
<pre class="comment">
create an administration tool version of the languages class, which extends
on the catalog class version, where administration logic is kept
</pre>
<hr /><a name="file1" /><div class="file">
<span class="pathname"><a href="http://cvs.oscommerce.com/viewcvs.cgi/admin">admin</a>/<a href="http://cvs.oscommerce.com/viewcvs.cgi/admin/admin">admin</a><br /></span>
<div class="fileheader"><big><b>languages.php</b></big> <small id="info"><a href="http://cvs.oscommerce.com/viewcvs.cgi/admin/admin/languages.php?rev=1.38&amp;content-type=text/vnd.viewcvs-markup">1.38</a> <a href="http://cvs.oscommerce.com/viewcvs.cgi/admin/admin/languages.php.diff?r1=1.38&amp;r2=1.39">-&gt;</a> <a href="http://cvs.oscommerce.com/viewcvs.cgi/admin/admin/languages.php?rev=1.39&amp;content-type=text/vnd.viewcvs-markup">1.39</a></small></div>
<pre class="diff"><small id="info">diff -u -r1.38 -r1.39
--- languages.php	2004/11/29 00:14:16	1.38
+++ languages.php	2004/11/29 14:36:10	1.39
@@ -23,297 +23,28 @@
</small></pre><pre class="diff" id="context">   if (!empty($action)) {
     switch ($action) {
       case 'save':
</pre><pre class="diff" id="removed">-        $error = false;
</pre><pre class="diff" id="added">+        $default = (isset($_POST['default']) &amp;&amp; ($_POST['default'] == 'on')) ? true : false;
</pre><pre class="diff" id="context"> 
</pre><pre class="diff" id="removed">-        $osC_Database-&gt;startTransaction();
-
</pre><pre class="diff" id="context">         if (isset($_GET['lID']) &amp;&amp; is_numeric($_GET['lID'])) {
</pre><pre class="diff" id="removed">-          $Qlanguage = $osC_Database-&gt;query('update :table_languages set name = :name, code = :code, image = :image, directory = :directory, sort_order = :sort_order where languages_id = :languages_id');
-          $Qlanguage-&gt;bindInt(':languages_id', $_GET['lID']);
</pre><pre class="diff" id="added">+          $result = $osC_Language-&gt;update($_GET['lID'], $_POST, $default);
</pre><pre class="diff" id="context">         } else {
</pre><pre class="diff" id="removed">-          $Qlanguage = $osC_Database-&gt;query('insert into :table_languages (name, code, image, directory, sort_order) values (:name, :code, :image, :directory, :sort_order)');
-        }
-        $Qlanguage-&gt;bindTable(':table_languages', TABLE_LANGUAGES);
-        $Qlanguage-&gt;bindValue(':name', $_POST['name']);
-        $Qlanguage-&gt;bindValue(':code', $_POST['code']);
-        $Qlanguage-&gt;bindValue(':image', $_POST['image']);
-        $Qlanguage-&gt;bindValue(':directory', $_POST['directory']);
-        $Qlanguage-&gt;bindInt(':sort_order', $_POST['sort_order']);
-        $Qlanguage-&gt;execute();
-
-        if ($osC_Database-&gt;isError() === false) {
-          if (isset($_GET['lID']) &amp;&amp; is_numeric($_GET['lID'])) {
-            $language_id = $_GET['lID'];
-          } else {
-            $language_id = $osC_Database-&gt;nextID();
-            $default_language = $osC_Language-&gt;get(DEFAULT_LANGUAGE);
-
-// create additional categories_description records
-            $Qcategories = $osC_Database-&gt;query('select categories_id, categories_name from :table_categories_description where language_id = :language_id');
-            $Qcategories-&gt;bindTable(':table_categories_description', TABLE_CATEGORIES_DESCRIPTION);
-            $Qcategories-&gt;bindInt(':language_id', $default_language['id']);
-            $Qcategories-&gt;execute();
-
-            while ($Qcategories-&gt;next()) {
-              $Qinsert = $osC_Database-&gt;query('insert into :table_categories_description (categories_id, language_id, categories_name) values (:categories_id, :language_id, :categories_name)');
-              $Qinsert-&gt;bindTable(':table_categories_description', TABLE_CATEGORIES_DESCRIPTION);
-              $Qinsert-&gt;bindInt(':categories_id', $Qcategories-&gt;valueInt('categories_id'));
-              $Qinsert-&gt;bindInt(':language_id', $language_id);
-              $Qinsert-&gt;bindValue(':categories_name', $Qcategories-&gt;value('categories_name'));
-              $Qinsert-&gt;execute();
-
-              if ($osC_Database-&gt;isError()) {
-                $error = true;
-                break;
-              }
-            }
-
-            if ($error === false) {
-// create additional products_description records
-              $Qproducts = $osC_Database-&gt;query('select products_id, products_name, products_description, products_url from :table_products_description where language_id = :language_id');
-              $Qproducts-&gt;bindTable(':table_products_description', TABLE_PRODUCTS_DESCRIPTION);
-              $Qproducts-&gt;bindInt(':language_id', $default_language['id']);
-              $Qproducts-&gt;execute();
-
-              while ($Qproducts-&gt;next()) {
-                $Qinsert = $osC_Database-&gt;query('insert into :table_products_description (products_id, language_id, products_name, products_description, products_url) values (:products_id, :language_id, :products_name, :products_description, :products_url)');
-                $Qinsert-&gt;bindTable(':table_products_description', TABLE_PRODUCTS_DESCRIPTION);
-                $Qinsert-&gt;bindInt(':products_id', $Qproducts-&gt;valueInt('products_id'));
-                $Qinsert-&gt;bindInt(':language_id', $language_id);
-                $Qinsert-&gt;bindInt(':products_name', $Qproducts-&gt;value('products_name'));
-                $Qinsert-&gt;bindInt(':products_description', $Qproducts-&gt;value('products_description'));
-                $Qinsert-&gt;bindInt(':products_url', $Qproducts-&gt;value('products_url'));
-                $Qinsert-&gt;execute();
-
-                if ($osC_Database-&gt;isError()) {
-                  $error = true;
-                  break;
-                }
-              }
-            }
-
-            if ($error === false) {
-// create additional products_options records
-              $Qoptions = $osC_Database-&gt;query('select products_options_id, products_options_name from :table_products_options where language_id = :language_id');
-              $Qoptions-&gt;bindTable(':table_products_options', TABLE_PRODUCTS_OPTIONS);
-              $Qoptions-&gt;bindInt(':language_id', $default_language['id']);
-              $Qoptions-&gt;execute();
-
-              while ($Qoptions-&gt;next()) {
-                $Qinsert = $osC_Database-&gt;query('insert into :table_products_options (products_options_id, language_id, products_options_name) values (:products_options_id, :language_id, :products_options_name)');
-                $Qinsert-&gt;bindTable(':table_products_options', TABLE_PRODUCTS_OPTIONS);
-                $Qinsert-&gt;bindInt(':products_options_id', $Qoptions-&gt;valueInt('products_options_id'));
-                $Qinsert-&gt;bindInt(':language_id', $language_id);
-                $Qinsert-&gt;bindValue(':products_options_name', $Qoptions-&gt;value('products_options_name'));
-                $Qinsert-&gt;execute();
-
-                if ($osC_Database-&gt;isError()) {
-                  $error = true;
-                  break;
-                }
-              }
-            }
-
-            if ($error === false) {
-// create additional products_options_values records
-              $Qvalues = $osC_Database-&gt;query('select products_options_values_id, products_options_values_name from :table_products_options_values where language_id = :language_id');
-              $Qvalues-&gt;bindTable(':table_products_options_values', TABLE_PRODUCTS_OPTIONS_VALUES);
-              $Qvalues-&gt;bindInt(':language_id', $default_language['id']);
-              $Qvalues-&gt;execute();
-
-              while ($Qvalues-&gt;next()) {
-                $Qinsert = $osC_Database-&gt;query('insert into :table_products_options_values (products_options_values_id, language_id, products_options_values_name) values (:products_options_values_id, :language_id, :products_options_values_name)');
-                $Qinsert-&gt;bindTable(':table_products_options_values', TABLE_PRODUCTS_OPTIONS_VALUES);
-                $Qinsert-&gt;bindInt(':products_options_values_id', $Qvalues-&gt;valueInt('products_options_values_id'));
-                $Qinsert-&gt;bindInt(':language_id', $language_id);
-                $Qinsert-&gt;bindValue(':products_options_values_name', $Qvalues-&gt;value('products_options_values_name'));
-                $Qinsert-&gt;execute();
-
-                if ($osC_Database-&gt;isError()) {
-                  $error = true;
-                  break;
-                }
-              }
-            }
-
-            if ($error === false) {
-// create additional manufacturers_info records
-              $Qmanufacturers = $osC_Database-&gt;query('select manufacturers_id, manufacturers_url from :table_manufacturers_info where languages_id = :languages_id');
-              $Qmanufacturers-&gt;bindTable(':table_manufacturers_info', TABLE_MANUFACTURERS_INFO);
-              $Qmanufacturers-&gt;bindInt(':languages_id', $default_language['id']);
-              $Qmanufacturers-&gt;execute();
-
-              while ($Qmanufacturers-&gt;next()) {
-                $Qinsert = $osC_Database-&gt;query('insert into :table_manufacturers_info (manufacturers_id, languages_id, manufacturers_url) values (:manufacturers_id, :languages_id, :manufacturers_url)');
-                $Qinsert-&gt;bindTable(':table_manufacturers_info', TABLE_MANUFACTURERS_INFO);
-                $Qinsert-&gt;bindInt(':manufacturers_id', $Qmanufacturers-&gt;valueInt('manufacturers_id'));
-                $Qinsert-&gt;bindInt(':languages_id', $language_id);
-                $Qinsert-&gt;bindValue(':manufacturers_url', $Qmanufacturers-&gt;value('manufacturers_url'));
-                $Qinsert-&gt;execute();
-
-                if ($osC_Database-&gt;isError()) {
-                  $error = true;
-                  break;
-                }
-              }
-            }
-
-            if ($error === false) {
-// create additional orders_status records
-              $Qstatus = $osC_Database-&gt;query('select orders_status_id, orders_status_name from :table_orders_status where language_id = :language_id');
-              $Qstatus-&gt;bindTable(':table_orders_status', TABLE_ORDERS_STATUS);
-              $Qstatus-&gt;bindInt(':language_id', $default_language['id']);
-              $Qstatus-&gt;execute();
-
-              while ($Qstatus-&gt;next()) {
-                $Qinsert = $osC_Database-&gt;query('insert into :table_orders_status (orders_status_id, language_id, orders_status_name) values (:orders_status_id, :language_id, :orders_status_name)');
-                $Qinsert-&gt;bindTable(':table_orders_status', TABLE_ORDERS_STATUS);
-                $Qinsert-&gt;bindInt(':orders_status_id', $Qstatus-&gt;valueInt('orders_status_id'));
-                $Qinsert-&gt;bindInt(':language_id', $language_id);
-                $Qinsert-&gt;bindValue(':orders_status_name', $Qstatus-&gt;value('orders_status_name'));
-                $Qinsert-&gt;execute();
-
-                if ($osC_Database-&gt;isError()) {
-                  $error = true;
-                  break;
-                }
-              }
-            }
-          }
-        } else {
-          $error = true;
-        }
-
-        if ($error === false) {
-          if ( (isset($_POST['default']) &amp;&amp; ($_POST['default'] == 'on')) || (isset($_POST['is_default']) &amp;&amp; ($_POST['is_default'] == 'true') &amp;&amp; ($_POST['code'] != DEFAULT_LANGUAGE)) ) {
-            $Qupdate = $osC_Database-&gt;query('update :table_configuration set configuration_value = :configuration_value where configuration_key = :configuration_key');
-            $Qupdate-&gt;bindTable(':table_configuration', TABLE_CONFIGURATION);
-            $Qupdate-&gt;bindValue(':configuration_value', $_POST['code']);
-            $Qupdate-&gt;bindValue(':configuration_key', 'DEFAULT_LANGUAGE');
-            $Qupdate-&gt;execute();
-
-            if ($osC_Database-&gt;isError() === false) {
-              if ($Qupdate-&gt;affectedRows()) {
-                osC_Cache::clear('configuration');
-              }
-            } else {
-              $error = true;
-            }
-          }
</pre><pre class="diff" id="added">+          $result = $osC_Language-&gt;insert($_POST, $default);
</pre><pre class="diff" id="context">         }
</pre><pre class="diff" id="removed">-
-        if ($error === false) {
-          $osC_Database-&gt;commitTransaction();
</pre><pre class="diff" id="context"> 
</pre><pre class="diff" id="removed">-          osC_Cache::clear('languages');
-
</pre><pre class="diff" id="added">+        if ($result === true) {
</pre><pre class="diff" id="context">           $osC_MessageStack-&gt;add_session('header', SUCCESS_DB_ROWS_UPDATED, 'success');
         } else {
</pre><pre class="diff" id="removed">-          $osC_Database-&gt;rollbackTransaction();
-
</pre><pre class="diff" id="context">           $osC_MessageStack-&gt;add_session('header', ERROR_DB_ROWS_NOT_UPDATED, 'error');
         }
 
</pre><pre class="diff" id="removed">-        tep_redirect(tep_href_link(FILENAME_LANGUAGES, 'page=' . $_GET['page']<span id="removedchars">&nbsp;.&nbsp;'&amp;lID='&nbsp;.&nbsp;$language_id</span>));
</pre><pre class="diff" id="added">+        tep_redirect(tep_href_link(FILENAME_LANGUAGES, 'page=' . $_GET['page']));
</pre><pre class="diff" id="context">         break;
       case 'deleteconfirm':
         if (isset($_GET['lID']) &amp;&amp; is_numeric($_GET['lID'])) {
</pre><pre class="diff" id="removed">-          $Qcheck = $osC_Database-&gt;query('select code from :table_languages where languages_id = :languages_id');
-          $Qcheck-&gt;bindTable(':table_languages', TABLE_LANGUAGES);
-          $Qcheck-&gt;bindInt(':languages_id', $_GET['lID']);
-          $Qcheck-&gt;execute();
-
-          if ($Qcheck-&gt;value('code') != DEFAULT_LANGUAGE) {
-            $error = false;
-
-            $osC_Database-&gt;startTransaction();
-
-            $Qcategories = $osC_Database-&gt;query('delete from :table_categories_description where language_id = :language_id');
-            $Qcategories-&gt;bindTable(':table_categories_description', TABLE_CATEGORIES_DESCRIPTION);
-            $Qcategories-&gt;bindInt(':language_id', $_GET['lID']);
-            $Qcategories-&gt;execute();
-
-            if ($osC_Database-&gt;isError()) {
-              $error = true;
-            }
-
-            if ($error === false) {
-              $Qproducts = $osC_Database-&gt;query('delete from :table_products_description where language_id = :language_id');
-              $Qproducts-&gt;bindTable(':table_products_description', TABLE_PRODUCTS_DESCRIPTION);
-              $Qproducts-&gt;bindInt(':language_id', $_GET['lID']);
-              $Qproducts-&gt;execute();
-
-              if ($osC_Database-&gt;isError()) {
-                $error = true;
-              }
-            }
-
-            if ($error === false) {
-              $Qproducts = $osC_Database-&gt;query('delete from :table_products_options where language_id = :language_id');
-              $Qproducts-&gt;bindTable(':table_products_options', TABLE_PRODUCTS_OPTIONS);
-              $Qproducts-&gt;bindInt(':language_id', $_GET['lID']);
-              $Qproducts-&gt;execute();
-
-              if ($osC_Database-&gt;isError()) {
-                $error = true;
-              }
-            }
-
-            if ($error === false) {
-              $Qproducts = $osC_Database-&gt;query('delete from :table_products_options_values where language_id = :language_id');
-              $Qproducts-&gt;bindTable(':table_products_options_values', TABLE_PRODUCTS_OPTIONS_VALUES);
-              $Qproducts-&gt;bindInt(':language_id', $_GET['lID']);
-              $Qproducts-&gt;execute();
-
-              if ($osC_Database-&gt;isError()) {
-                $error = true;
-              }
-            }
-
-            if ($error === false) {
-              $Qmanufacturers = $osC_Database-&gt;query('delete from :table_manufacturers_info where languages_id = :languages_id');
-              $Qmanufacturers-&gt;bindTable(':table_manufacturers_info', TABLE_MANUFACTURERS_INFO);
-              $Qmanufacturers-&gt;bindInt(':languages_id', $_GET['lID']);
-              $Qmanufacturers-&gt;execute();
-
-              if ($osC_Database-&gt;isError()) {
-                $error = true;
-              }
-            }
-
-            if ($error === false) {
-              $Qstatus = $osC_Database-&gt;query('delete from :table_orders_status where language_id = :language_id');
-              $Qstatus-&gt;bindTable(':table_orders_status', TABLE_ORDERS_STATUS);
-              $Qstatus-&gt;bindInt(':language_id', $_GET['lID']);
-              $Qstatus-&gt;execute();
-
-              if ($osC_Database-&gt;isError()) {
-                $error = true;
-              }
-            }
-
-            if ($error === false) {
-              $Qlanguages = $osC_Database-&gt;query('delete from :table_languages where languages_id = :languages_id');
-              $Qlanguages-&gt;bindTable(':table_languages', TABLE_LANGUAGES);
-              $Qlanguages-&gt;bindInt(':languages_id', $_GET['lID']);
-              $Qlanguages-&gt;execute();
-
-              if ($osC_Database-&gt;isError()) {
-                $error = true;
-              }
-            }
-
-            if ($error === false) {
-              $osC_Database-&gt;commitTransaction();
-
-              osC_Cache::clear('languages');
-
-              $osC_MessageStack-&gt;add_session('header', SUCCESS_DB_ROWS_UPDATED, 'success');
-            } else {
-              $osC_Database-&gt;rollbackTransaction();
-
-              $osC_MessageStack-&gt;add_session('header', ERROR_DB_ROWS_NOT_UPDATED, 'error');
-            }
</pre><pre class="diff" id="added">+          if ($osC_Language-&gt;remove($_GET['lID'])) {
+            $osC_MessageStack-&gt;add_session('header', SUCCESS_DB_ROWS_UPDATED, 'success');
+          } else {
+            $osC_MessageStack-&gt;add_session('header', ERROR_DB_ROWS_NOT_UPDATED, 'error');
</pre><pre class="diff" id="context">           }
         }
 
</pre></div>
<hr /><a name="file2" /><div class="file">
<span class="pathname"><a href="http://cvs.oscommerce.com/viewcvs.cgi/admin">admin</a>/<a href="http://cvs.oscommerce.com/viewcvs.cgi/admin/admin">admin</a>/<a href="http://cvs.oscommerce.com/viewcvs.cgi/admin/admin/includes">includes</a><br /></span>
<div class="fileheader"><big><b>application_top.php</b></big> <small id="info"><a href="http://cvs.oscommerce.com/viewcvs.cgi/admin/admin/includes/application_top.php?rev=1.182&amp;content-type=text/vnd.viewcvs-markup">1.182</a> <a href="http://cvs.oscommerce.com/viewcvs.cgi/admin/admin/includes/application_top.php.diff?r1=1.182&amp;r2=1.183">-&gt;</a> <a href="http://cvs.oscommerce.com/viewcvs.cgi/admin/admin/includes/application_top.php?rev=1.183&amp;content-type=text/vnd.viewcvs-markup">1.183</a></small></div>
<pre class="diff"><small id="info">diff -u -r1.182 -r1.183
--- application_top.php	2004/11/24 15:56:41	1.182
+++ application_top.php	2004/11/29 14:36:11	1.183
@@ -91,8 +91,8 @@
</small></pre><pre class="diff" id="context">   $osC_Session-&gt;start();
 
 // set the language
</pre><pre class="diff" id="removed">-  require('../includes/classes/language.php');
-  $osC_Language = new osC_Language();
</pre><pre class="diff" id="added">+  require('includes/classes/language.php');
+  $osC_Language = new osC_Language_Admin();
</pre><pre class="diff" id="context"> 
   if (isset($_GET['language']) &amp;&amp; !empty($_GET['language'])) {
     $osC_Language-&gt;set($_GET['language']);
</pre></div>
<hr /><a name="file3" /><div class="file">
<span class="pathname"><a href="http://cvs.oscommerce.com/viewcvs.cgi/admin">admin</a>/<a href="http://cvs.oscommerce.com/viewcvs.cgi/admin/admin">admin</a>/<a href="http://cvs.oscommerce.com/viewcvs.cgi/admin/admin/includes">includes</a>/<a href="http://cvs.oscommerce.com/viewcvs.cgi/admin/admin/includes/classes">classes</a><br /></span>
<div class="fileheader"><big><b>language.php</b></big> <small id="info"><a href="http://cvs.oscommerce.com/viewcvs.cgi/admin/admin/includes/classes/language.php?rev=1.2&amp;content-type=text/vnd.viewcvs-markup">1.2</a> <a href="http://cvs.oscommerce.com/viewcvs.cgi/admin/admin/includes/classes/language.php.diff?r1=1.2&amp;r2=1.3">-&gt;</a> <a href="http://cvs.oscommerce.com/viewcvs.cgi/admin/admin/includes/classes/language.php?rev=1.3&amp;content-type=text/vnd.viewcvs-markup">1.3</a></small></div>
<pre class="diff"><small id="info">diff -N language.php
--- /dev/null	Mon Nov 29 15:36:13 2004
+++ /tmp/cvsAAAc.a4Lk	Mon Nov 29 15:36:15 2004
@@ -0,0 +1,363 @@
</small></pre><pre class="diff" id="added">+&lt;?php
+/*
+  $Id$
+
+  osCommerce, Open Source E-Commerce Solutions
+  http://www.oscommerce.com
+
+  Copyright (c) 2004 osCommerce
+
+  Released under the GNU General Public License
+*/
+
+  require('../includes/classes/language.php');
+
+  class osC_Language_Admin extends osC_Language {
+
+/* Class constructor */
+
+    function osC_Language_Admin() {
+      $this-&gt;osC_Language();
+    }
+
+    function insert($language, $default = false) {
+      global $osC_Database;
+
+      $error = false;
+
+      $osC_Database-&gt;startTransaction();
+
+      $Qlanguage = $osC_Database-&gt;query('insert into :table_languages (name, code, image, directory, sort_order) values (:name, :code, :image, :directory, :sort_order)');
+      $Qlanguage-&gt;bindTable(':table_languages', TABLE_LANGUAGES);
+      $Qlanguage-&gt;bindValue(':name', $language['name']);
+      $Qlanguage-&gt;bindValue(':code', $language['code']);
+      $Qlanguage-&gt;bindValue(':image', $language['image']);
+      $Qlanguage-&gt;bindValue(':directory', $language['directory']);
+      $Qlanguage-&gt;bindInt(':sort_order', $language['sort_order']);
+      $Qlanguage-&gt;execute();
+
+      if ($osC_Database-&gt;isError() === false) {
+        $language_id = $osC_Database-&gt;nextID();
+        $default_language = $this-&gt;get(DEFAULT_LANGUAGE);
+
+// create additional categories_description records
+        $Qcategories = $osC_Database-&gt;query('select categories_id, categories_name from :table_categories_description where language_id = :language_id');
+        $Qcategories-&gt;bindTable(':table_categories_description', TABLE_CATEGORIES_DESCRIPTION);
+        $Qcategories-&gt;bindInt(':language_id', $default_language['id']);
+        $Qcategories-&gt;execute();
+
+        while ($Qcategories-&gt;next()) {
+          $Qinsert = $osC_Database-&gt;query('insert into :table_categories_description (categories_id, language_id, categories_name) values (:categories_id, :language_id, :categories_name)');
+          $Qinsert-&gt;bindTable(':table_categories_description', TABLE_CATEGORIES_DESCRIPTION);
+          $Qinsert-&gt;bindInt(':categories_id', $Qcategories-&gt;valueInt('categories_id'));
+          $Qinsert-&gt;bindInt(':language_id', $language_id);
+          $Qinsert-&gt;bindValue(':categories_name', $Qcategories-&gt;value('categories_name'));
+          $Qinsert-&gt;execute();
+
+          if ($osC_Database-&gt;isError()) {
+            $error = true;
+            break;
+          }
+        }
+
+        if ($error === false) {
+// create additional products_description records
+          $Qproducts = $osC_Database-&gt;query('select products_id, products_name, products_description, products_url from :table_products_description where language_id = :language_id');
+          $Qproducts-&gt;bindTable(':table_products_description', TABLE_PRODUCTS_DESCRIPTION);
+          $Qproducts-&gt;bindInt(':language_id', $default_language['id']);
+          $Qproducts-&gt;execute();
+
+          while ($Qproducts-&gt;next()) {
+            $Qinsert = $osC_Database-&gt;query('insert into :table_products_description (products_id, language_id, products_name, products_description, products_url) values (:products_id, :language_id, :products_name, :products_description, :products_url)');
+            $Qinsert-&gt;bindTable(':table_products_description', TABLE_PRODUCTS_DESCRIPTION);
+            $Qinsert-&gt;bindInt(':products_id', $Qproducts-&gt;valueInt('products_id'));
+            $Qinsert-&gt;bindInt(':language_id', $language_id);
+            $Qinsert-&gt;bindInt(':products_name', $Qproducts-&gt;value('products_name'));
+            $Qinsert-&gt;bindInt(':products_description', $Qproducts-&gt;value('products_description'));
+            $Qinsert-&gt;bindInt(':products_url', $Qproducts-&gt;value('products_url'));
+            $Qinsert-&gt;execute();
+
+            if ($osC_Database-&gt;isError()) {
+              $error = true;
+              break;
+            }
+          }
+        }
+
+        if ($error === false) {
+// create additional products_options records
+          $Qoptions = $osC_Database-&gt;query('select products_options_id, products_options_name from :table_products_options where language_id = :language_id');
+          $Qoptions-&gt;bindTable(':table_products_options', TABLE_PRODUCTS_OPTIONS);
+          $Qoptions-&gt;bindInt(':language_id', $default_language['id']);
+          $Qoptions-&gt;execute();
+
+          while ($Qoptions-&gt;next()) {
+            $Qinsert = $osC_Database-&gt;query('insert into :table_products_options (products_options_id, language_id, products_options_name) values (:products_options_id, :language_id, :products_options_name)');
+            $Qinsert-&gt;bindTable(':table_products_options', TABLE_PRODUCTS_OPTIONS);
+            $Qinsert-&gt;bindInt(':products_options_id', $Qoptions-&gt;valueInt('products_options_id'));
+            $Qinsert-&gt;bindInt(':language_id', $language_id);
+            $Qinsert-&gt;bindValue(':products_options_name', $Qoptions-&gt;value('products_options_name'));
+            $Qinsert-&gt;execute();
+
+            if ($osC_Database-&gt;isError()) {
+              $error = true;
+              break;
+            }
+          }
+        }
+
+        if ($error === false) {
+// create additional products_options_values records
+          $Qvalues = $osC_Database-&gt;query('select products_options_values_id, products_options_values_name from :table_products_options_values where language_id = :language_id');
+          $Qvalues-&gt;bindTable(':table_products_options_values', TABLE_PRODUCTS_OPTIONS_VALUES);
+          $Qvalues-&gt;bindInt(':language_id', $default_language['id']);
+          $Qvalues-&gt;execute();
+
+          while ($Qvalues-&gt;next()) {
+            $Qinsert = $osC_Database-&gt;query('insert into :table_products_options_values (products_options_values_id, language_id, products_options_values_name) values (:products_options_values_id, :language_id, :products_options_values_name)');
+            $Qinsert-&gt;bindTable(':table_products_options_values', TABLE_PRODUCTS_OPTIONS_VALUES);
+            $Qinsert-&gt;bindInt(':products_options_values_id', $Qvalues-&gt;valueInt('products_options_values_id'));
+            $Qinsert-&gt;bindInt(':language_id', $language_id);
+            $Qinsert-&gt;bindValue(':products_options_values_name', $Qvalues-&gt;value('products_options_values_name'));
+            $Qinsert-&gt;execute();
+
+            if ($osC_Database-&gt;isError()) {
+              $error = true;
+              break;
+            }
+          }
+        }
+
+        if ($error === false) {
+// create additional manufacturers_info records
+          $Qmanufacturers = $osC_Database-&gt;query('select manufacturers_id, manufacturers_url from :table_manufacturers_info where languages_id = :languages_id');
+          $Qmanufacturers-&gt;bindTable(':table_manufacturers_info', TABLE_MANUFACTURERS_INFO);
+          $Qmanufacturers-&gt;bindInt(':languages_id', $default_language['id']);
+          $Qmanufacturers-&gt;execute();
+
+          while ($Qmanufacturers-&gt;next()) {
+            $Qinsert = $osC_Database-&gt;query('insert into :table_manufacturers_info (manufacturers_id, languages_id, manufacturers_url) values (:manufacturers_id, :languages_id, :manufacturers_url)');
+            $Qinsert-&gt;bindTable(':table_manufacturers_info', TABLE_MANUFACTURERS_INFO);
+            $Qinsert-&gt;bindInt(':manufacturers_id', $Qmanufacturers-&gt;valueInt('manufacturers_id'));
+            $Qinsert-&gt;bindInt(':languages_id', $language_id);
+            $Qinsert-&gt;bindValue(':manufacturers_url', $Qmanufacturers-&gt;value('manufacturers_url'));
+            $Qinsert-&gt;execute();
+
+            if ($osC_Database-&gt;isError()) {
+              $error = true;
+              break;
+            }
+          }
+        }
+
+        if ($error === false) {
+// create additional orders_status records
+          $Qstatus = $osC_Database-&gt;query('select orders_status_id, orders_status_name from :table_orders_status where language_id = :language_id');
+          $Qstatus-&gt;bindTable(':table_orders_status', TABLE_ORDERS_STATUS);
+          $Qstatus-&gt;bindInt(':language_id', $default_language['id']);
+          $Qstatus-&gt;execute();
+
+          while ($Qstatus-&gt;next()) {
+            $Qinsert = $osC_Database-&gt;query('insert into :table_orders_status (orders_status_id, language_id, orders_status_name) values (:orders_status_id, :language_id, :orders_status_name)');
+            $Qinsert-&gt;bindTable(':table_orders_status', TABLE_ORDERS_STATUS);
+            $Qinsert-&gt;bindInt(':orders_status_id', $Qstatus-&gt;valueInt('orders_status_id'));
+            $Qinsert-&gt;bindInt(':language_id', $language_id);
+            $Qinsert-&gt;bindValue(':orders_status_name', $Qstatus-&gt;value('orders_status_name'));
+            $Qinsert-&gt;execute();
+
+            if ($osC_Database-&gt;isError()) {
+              $error = true;
+              break;
+            }
+          }
+        }
+      } else {
+        $error = true;
+      }
+
+      if ($error === false) {
+        if ($default === true) {
+          $Qupdate = $osC_Database-&gt;query('update :table_configuration set configuration_value = :configuration_value where configuration_key = :configuration_key');
+          $Qupdate-&gt;bindTable(':table_configuration', TABLE_CONFIGURATION);
+          $Qupdate-&gt;bindValue(':configuration_value', $language['code']);
+          $Qupdate-&gt;bindValue(':configuration_key', 'DEFAULT_LANGUAGE');
+          $Qupdate-&gt;execute();
+
+          if ($osC_Database-&gt;isError() === false) {
+            if ($Qupdate-&gt;affectedRows()) {
+              osC_Cache::clear('configuration');
+            }
+          } else {
+            $error = true;
+          }
+        }
+      }
+
+      if ($error === false) {
+        $osC_Database-&gt;commitTransaction();
+
+        osC_Cache::clear('languages');
+
+        return true;
+      } else {
+        $osC_Database-&gt;rollbackTransaction();
+      }
+
+      return false;
+    }
+
+    function update($id, $language, $default = false) {
+      global $osC_Database;
+
+      $error = false;
+
+      $osC_Database-&gt;startTransaction();
+
+      $Qlanguage = $osC_Database-&gt;query('update :table_languages set name = :name, code = :code, image = :image, directory = :directory, sort_order = :sort_order where languages_id = :languages_id');
+      $Qlanguage-&gt;bindTable(':table_languages', TABLE_LANGUAGES);
+      $Qlanguage-&gt;bindValue(':name', $language['name']);
+      $Qlanguage-&gt;bindValue(':code', $language['code']);
+      $Qlanguage-&gt;bindValue(':image', $language['image']);
+      $Qlanguage-&gt;bindValue(':directory', $language['directory']);
+      $Qlanguage-&gt;bindInt(':sort_order', $language['sort_order']);
+      $Qlanguage-&gt;bindInt(':languages_id', $id);
+      $Qlanguage-&gt;execute();
+
+      if ($osC_Database-&gt;isError()) {
+        $error = true;
+      }
+
+      if ($error === false) {
+        if ($default === true) {
+          $Qupdate = $osC_Database-&gt;query('update :table_configuration set configuration_value = :configuration_value where configuration_key = :configuration_key');
+          $Qupdate-&gt;bindTable(':table_configuration', TABLE_CONFIGURATION);
+          $Qupdate-&gt;bindValue(':configuration_value', $language['code']);
+          $Qupdate-&gt;bindValue(':configuration_key', 'DEFAULT_LANGUAGE');
+          $Qupdate-&gt;execute();
+
+          if ($osC_Database-&gt;isError() === false) {
+            if ($Qupdate-&gt;affectedRows()) {
+              osC_Cache::clear('configuration');
+            }
+          } else {
+            $error = true;
+          }
+        }
+      }
+
+      if ($error === false) {
+        $osC_Database-&gt;commitTransaction();
+
+        osC_Cache::clear('languages');
+
+        return true;
+      } else {
+        $osC_Database-&gt;rollbackTransaction();
+      }
+
+      return false;
+    }
+
+    function remove($id) {
+      global $osC_Database;
+
+      $Qcheck = $osC_Database-&gt;query('select code from :table_languages where languages_id = :languages_id');
+      $Qcheck-&gt;bindTable(':table_languages', TABLE_LANGUAGES);
+      $Qcheck-&gt;bindInt(':languages_id', $id);
+      $Qcheck-&gt;execute();
+
+      if ($Qcheck-&gt;value('code') != DEFAULT_LANGUAGE) {
+        $error = false;
+
+        $osC_Database-&gt;startTransaction();
+
+        $Qcategories = $osC_Database-&gt;query('delete from :table_categories_description where language_id = :language_id');
+        $Qcategories-&gt;bindTable(':table_categories_description', TABLE_CATEGORIES_DESCRIPTION);
+        $Qcategories-&gt;bindInt(':language_id', $id);
+        $Qcategories-&gt;execute();
+
+        if ($osC_Database-&gt;isError()) {
+          $error = true;
+        }
+
+        if ($error === false) {
+          $Qproducts = $osC_Database-&gt;query('delete from :table_products_description where language_id = :language_id');
+          $Qproducts-&gt;bindTable(':table_products_description', TABLE_PRODUCTS_DESCRIPTION);
+          $Qproducts-&gt;bindInt(':language_id', $id);
+          $Qproducts-&gt;execute();
+
+          if ($osC_Database-&gt;isError()) {
+            $error = true;
+          }
+        }
+
+        if ($error === false) {
+          $Qproducts = $osC_Database-&gt;query('delete from :table_products_options where language_id = :language_id');
+          $Qproducts-&gt;bindTable(':table_products_options', TABLE_PRODUCTS_OPTIONS);
+          $Qproducts-&gt;bindInt(':language_id', $id);
+          $Qproducts-&gt;execute();
+
+          if ($osC_Database-&gt;isError()) {
+            $error = true;
+          }
+        }
+
+        if ($error === false) {
+          $Qproducts = $osC_Database-&gt;query('delete from :table_products_options_values where language_id = :language_id');
+          $Qproducts-&gt;bindTable(':table_products_options_values', TABLE_PRODUCTS_OPTIONS_VALUES);
+          $Qproducts-&gt;bindInt(':language_id', $id);
+          $Qproducts-&gt;execute();
+
+          if ($osC_Database-&gt;isError()) {
+            $error = true;
+          }
+        }
+
+        if ($error === false) {
+          $Qmanufacturers = $osC_Database-&gt;query('delete from :table_manufacturers_info where languages_id = :languages_id');
+          $Qmanufacturers-&gt;bindTable(':table_manufacturers_info', TABLE_MANUFACTURERS_INFO);
+          $Qmanufacturers-&gt;bindInt(':languages_id', $id);
+          $Qmanufacturers-&gt;execute();
+
+          if ($osC_Database-&gt;isError()) {
+            $error = true;
+          }
+        }
+
+        if ($error === false) {
+          $Qstatus = $osC_Database-&gt;query('delete from :table_orders_status where language_id = :language_id');
+          $Qstatus-&gt;bindTable(':table_orders_status', TABLE_ORDERS_STATUS);
+          $Qstatus-&gt;bindInt(':language_id', $id);
+          $Qstatus-&gt;execute();
+
+          if ($osC_Database-&gt;isError()) {
+            $error = true;
+          }
+        }
+
+        if ($error === false) {
+          $Qlanguages = $osC_Database-&gt;query('delete from :table_languages where languages_id = :languages_id');
+          $Qlanguages-&gt;bindTable(':table_languages', TABLE_LANGUAGES);
+          $Qlanguages-&gt;bindInt(':languages_id', $id);
+          $Qlanguages-&gt;execute();
+
+          if ($osC_Database-&gt;isError()) {
+            $error = true;
+          }
+        }
+
+        if ($error === false) {
+          $osC_Database-&gt;commitTransaction();
+
+          osC_Cache::clear('languages');
+
+          return true;
+        } else {
+          $osC_Database-&gt;rollbackTransaction();
+        }
+      }
+
+      return false;
+    }
+  }
+?&gt;
</pre></div>
<center><small><a href="http://www.badgers-in-foil.co.uk/projects/cvsspam/" title="commit -&gt; email">CVSspam</a> 0.2.9</small></center>
</body></html>


-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now. 
http://productguide.itmanagersjournal.com/