Der Artikel “Installation” wird bereitgestellt von:
BuI Hinsche GmbH – Softwareentwicklung und Design. Plugins, Module, Templates
Sie können das Plugin entweder selbst installieren oder unseren Installationsservice bestellen.
Bei Bestellung unseres Installationsservices
Falls wir die Installation für Sie übernehmen sollen, benötigen wir folgende Daten von Ihnen:
- die URL des Shops
- FTP-Zugangsdaten (Server, Username, Passwort)
- Datenbankzugangsdaten (Datenbankserver, Datenbankname, Username, Passwort)
- Shopadmin: E-Mail-Adresse, Passwort (bis Version 3.0.4 SP2.1)
Senden Sie diese Daten am besten gleich bei Beauftragung des Installationsservice mit.
Nicht im Installationsangebot enthalten sind jegliche programmiertechnischen und grafischen Anpassungen, die nichts mit der Einbindung des Moduls zu tun haben. Diese führen zu einem zusätzlichen Auftrag, für die wir Ihnen gerne ein separates Angebot unterbreiten.
Eigene Installation
Übersicht
Schritt 1 – Datensicherung
Schritt 2 – Datenbankänderungen
Schritt 3 – Kopieren der Dateien
Schritt 4 – Dateien anpassen
Schritt 5 – Template–Anpassungen
Schritt 1 – Datensicherung
Datenbanksicherung: Shop oder über PhpMyAdmin/ MySqlDumper etc.
Dateisicherung: Alle betroffenen Dateien sichern!
Schritt 2 – Datenbankänderungen
SQL-Anweisungen über PhpMyAdmin ausführen:
Bitte benutzen sie dafür die beiliegende Datei newsmodul.sql, um die News-Datenbankerweiterungen zu importieren. (Achtung: alle newsbezogenen SQL-Tabellen und Werte werden gelöscht!)
Schritt 3 – Kopieren der Dateien
Hinweis: Es liegen auch Dateien mit der Endung .php.txt oder .html.txt vor. Diese Dateien entsprechen den Modifikationen und müssen nur umbenannt werden, wenn Sie keine weiteren Module installiert haben.
Kopieren der Dateien aus dem Paket in der entsprechenden Ordnerstruktur des Shops.
Komplette Ordner kopieren:
images/news_categories/
images/news_images/
und die Zugriffsrechte auf 777 (chmod) setzen
template//modules/news/
template//img/news
Schritt 4 – Dateien anpassen
Hinweis: es liegen auch Dateien mit der Endung .php.txt vor. Diese Dateien entsprechen den Modifikationen und müssen nur umbenannt werden, wenn sie keine weiteren Module installiert haben.
Wenn Sie diese Dateien verwenden, dann können sie diesen Schritt <Dateien anpassen> überspringen.
Datei: admin/includes/application_top.php
Dateiende: suchen nach
?>
davor einfügen
// newsmodul
include_once('application_news_top.php');
Datei: admin/includes/colum_left.php
suche Zeile: 34
if (($_SESSION['customers_status']['customers_status_id'] == '0') && ($admin_access['products_expected'] == '1')) echo '<a href="' . xtc_href_link(FILENAME_PRODUCTS_EXPECTED, '', 'NONSSL') . '" class="menuBoxContentLink"> -' . BOX_PRODUCTS_EXPECTED . '</a><br>';
danach einfügen:
if (($_SESSION['customers_status']['customers_status_id'] == '0') && ($admin_access['news_categories'] == '1')) {
echo ('<div class="dataTableHeadingContent"><b>'.BOX_HEADING_NEWS.'</b></div>');
echo'<a href="' .xtc_href_link(FILENAME_NEWS_CATEGORIES) . '" class="menuBoxContentLink"> -' .TEXT_MODULE_NEWS_CATEGORIES . '</a><br>';
echo '<a href="' . xtc_href_link(FILENAME_CONFIGURATION, 'gID=44', 'NONSSL') . '" class="menuBoxContentLink"> -' . BOX_CONFIGURATION_44 . '</a><br>';
echo '<a href="' . xtc_href_link(FILENAME_CONFIGURATION, 'gID=45', 'NONSSL') . '" class="menuBoxContentLink"> -' . BOX_CONFIGURATION_45 . '</a><br>';
}
if ($_SESSION['temp_news_link']) {
echo'<a href="' .xtc_href_link(FILENAME_NEWS_CATEGORIES) . '?action=multi_action" class="menuBoxContentLink"> -' .TEXT_NEWS_TO_LINK_EDIT . '</a><br>';
}
Datei: admin/includes/functions/html_output.php
suche Zeile: 303
$nav.= xtc_image(DIR_WS_ICONS . 'sort_up.gif', '', '20' ,'20').'</a></div>';
break;
danach einfügen:
// changes newsmodul
case FILENAME_NEWS_CATEGORIES:
$nav='<br><div><a href="'.xtc_href_link(FILENAME_NEWS_CATEGORIES,'sorting='.$sort.'&'.xtc_get_all_get_params(array('action','sorting'))).'">';
$nav.=xtc_image(DIR_WS_ICONS . 'sort_down.gif', '', '20' ,'20').'</a>';
$nav.='<a href="'.xtc_href_link(FILENAME_NEWS_CATEGORIES,'sorting='.$sort.'-desc&'.xtc_get_all_get_params(array('action','sorting'))).'">';
$nav.= xtc_image(DIR_WS_ICONS . 'sort_up.gif', '', '20' ,'20').'</a></div>';
break;
Datei: admin/includes/modules/new_category.php
suche Zeile: 138
echo '<td><span class="main">'.xtc_draw_pull_down_menu('categories_template',$files,$default_value);
?>
</span></td></tr>
danach einfügen:
<!-- changes newsmodul -->
<tr>
<?php
echo '<td class="main">'.TEXT_CHOOSE_INFO_TEMPLATE_NEWS_LISTING.':</td>';
echo '<td><span class="main">'.xtc_pull_down_news_listing_template($cInfo->news_listing_template, 'news_listing_template',array(array('id' => '','text' => TEXT_SELECT)));
?>
</span></td>
</tr>
<tr>
<?php
echo '<td class="main">'.TEXT_CHOOSE_INFO_TEMPLATE_NEWS_CATEGORIE.':</td>';
echo '<td><span class="main">'.xtc_pull_down_news_categories_listing_template($cInfo->news_categories_template, 'news_categories_template',array(array('id' => '','text' => TEXT_SELECT)));
?>
</span></td>
</tr>
<!-- changes news end -->
Datei: admin/includes/modules/new_product.php
suche Zeile: 138
echo '<td><span class="main">'.xtc_draw_pull_down_menu('options_template', $files, $default_value);
?>
</span></td>
</tr>
danach einfügen:
<!-- changes newsmodul -->
<tr>
<?php
echo '<td class="main">'.TEXT_CHOOSE_INFO_TEMPLATE_NEWS_LISTING.':</td>';
echo '<td><span class="main">'.xtc_pull_down_news_listing_template($pInfo->news_listing_template, 'news_listing_template',array(array('id' => '','text' => TEXT_SELECT)));
?>
</span></td>
</tr>
<tr>
<?php
echo '<td class="main">'.TEXT_CHOOSE_INFO_TEMPLATE_NEWS_CATEGORIE.':</td>';
echo '<td><span class="main">'.xtc_pull_down_news_categories_listing_template($pInfo->news_categories_template, 'news_categories_template',array(array('id' => '','text' => TEXT_SELECT)));
?>
</span></td>
</tr>
<!-- changes newsmodul end -->
Datei: admin/includes/classes/categories.php
suchen Zeile: 166
$sql_data_array = array_merge($sql_data_array,$permission_array);
danach einfügen:
// newsmodul
$sql_tpl_data_array = array ('news_categories_template' => xtc_db_prepare_input($categories_data['news_categories_template']), 'news_listing_template' => xtc_db_prepare_input($categories_data['news_listing_template']));
$sql_data_array = array_merge($sql_data_array,$sql_tpl_data_array);
// newsmodul_end
suchen nach Zeile:
$products_id = $new_pid_query_values['Auto_increment'];
}
danach einfügen:
// newsmodul
$sql_tpl_data_array = array ('news_categories_template' => xtc_db_prepare_input($products_data['news_categories_template']), 'news_listing_template' => xtc_db_prepare_input($products_data['news_listing_template']));
$sql_data_array = array_merge($sql_data_array,$sql_tpl_data_array);
// newsmodul_end
Datei: inc/xtc_wysiwyg.inc.php
suche Zeile: 137
break;
danach einfügen:
case 'news_categories_description':
$val ='var oFCKeditor = new FCKeditor( \'news_categories_description['.$langID.']\', \'550\', \'300\' ) ;
oFCKeditor.BasePath = "'.$path.'" ;
oFCKeditor.Config["LinkBrowserURL"] = "'.$filemanager.$file_path.'" ;
oFCKeditor.Config["ImageBrowserURL"] = "'.$filemanager.$image_path.'" ;
oFCKeditor.Config["AutoDetectLanguage"] = false ;
oFCKeditor.Config["DefaultLanguage"] = "'.$lang.'" ;
oFCKeditor.ReplaceTextarea() ;
';
break;
// WYSIWYG editor products_description textarea named products_description_langID
case 'news_description':
$val ='var oFCKeditor = new FCKeditor( \'news_description_'.$langID.'\', \'100%\', \'400\' ) ;
oFCKeditor.BasePath = "'.$path.'" ;
oFCKeditor.Config["LinkBrowserURL"] = "'.$filemanager.$file_path.'" ;
oFCKeditor.Config["ImageBrowserURL"] = "'.$filemanager.$image_path.'" ;
oFCKeditor.Config["AutoDetectLanguage"] = false ;
oFCKeditor.Config["DefaultLanguage"] = "'.$lang.'" ;
oFCKeditor.ReplaceTextarea() ;
';
break;
// WYSIWYG editor products short description textarea named
products_short_description_langID
case 'news_short_description':
$val ='var oFCKeditor = new FCKeditor( \'news_short_description_'.$langID.'\', \'550\', \'300\' ) ;
oFCKeditor.BasePath = "'.$path.'" ;
oFCKeditor.Config["LinkBrowserURL"] = "'.$filemanager.$file_path.'" ;
oFCKeditor.Config["ImageBrowserURL"] = "'.$filemanager.$image_path.'" ;
oFCKeditor.Config["AutoDetectLanguage"] = false ;
oFCKeditor.Config["DefaultLanguage"] = "'.$lang.'" ;
oFCKeditor.ReplaceTextarea() ;
';
break;
Datei: includes/header.php
suche Zeile:
<?php include(DIR_WS_MODULES.FILENAME_METATAGS); ?>
ersetzen durch:
<?php
// changes newsmodul
if (basename($PHP_SELF) == FILENAME_NEWS) {
if (is_object($news_list))
echo $news_list->generateMetatags();
} else {
include(DIR_WS_MODULES.FILENAME_METATAGS);
}
// changes newsmodul end
?>
Datei: includes/center_modules.php
suche Zeile: 22
return $module;
davor einfügen:
require(DIR_WS_MODULES . FILENAME_NEWS); // NEWS
Datei: includes/application_top.php
Dateiende: suchen nach
?>
danach einfügen:
// newsmodul
include_once('application_news_top.php');
Datei: includes/modules/product_listing.php
suche:
require_once (DIR_FS_INC.'xtc_get_vpe_name.inc.php');
danach einfügen:
require_once (DIR_WS_CLASSES.'news.php');
suche Zeile 40:
$category_query = xtDBquery("select
cd.categories_description,
cd.categories_name,
cd.categories_heading_title,
c.listing_template,
danach einfügen:
c.news_categories_template, /* changes newsmodul */
c.news_listing_template, /* changes newsmodul */
suche Zeile: 53
$category = xtc_db_fetch_array($category_query,true);
danach einfügen:
////////////////////////////////////////////////////////////////////
// Newsmodul
// wenn aktiv
if(NEWS_MODUL_ON == 'true') {
$news = new news();
if (basename($PHP_SELF) != FILENAME_ADVANCED_SEARCH_RESULT) {
$news->calendar('smarty',MODULE_NEWS_TEMPLATE_NEWS_CALENDAR_SHOP);
$news->getNews2ProductListing($category['news_listing_template'] != '' ? $category['news_listing_template'] : MODULE_NEWS_DEFAULT_TEMPLATE_NEWS_TO_PRODUCT_LISTING, $current_category_id);
$news->getNewsCategories2ProductListing ($category['news_categories_template'] != '' ? $category['news_categories_template'] : MODULE_NEWS_DEFAULT_TEMPLATE_NEWS_CATEGORIES_TO_PRODUCT_LISTING, $current_category_id);
} elseif (basename($PHP_SELF) == FILENAME_ADVANCED_SEARCH_RESULT) {
$news->get_search_result ();
$module_smarty->assign('MODULE_news', $news->smarty_moduldata[2]['news_search_result']);
}
} // aktiv eof
// Newsmodul end
////////////////////////////////////////////////////////////////////
Datei: includes/modules/default.php
zeile: 32
require_once (DIR_FS_INC.'xtc_check_categories_status.inc.php');
danach einfügen:
////////////////////////////////////////////////////////////////////
// Newsmodul
require_once(DIR_WS_CLASSES . 'news.php');
////////////////////////////////////////////////////////////////////
suche Seile: 40:
if (xtc_check_categories_status($current_category_id) >= 1) {
danach einfügen:
////////////////////////////////////////////////////////////////////
// Newsmodul
// wenn aktiv
if(NEWS_MODUL_ON == 'true') {
$news = new news();
$news->calendar('smarty',MODULE_NEWS_TEMPLATE_NEWS_CALENDAR_SHOP);
$news->getNews2CategorieListing (MODULE_NEWS_DEFAULT_TEMPLATE_NEWS_TO_PRODUCT_LISTING, $current_category_id);
$news->getNewsCategories2CategorieListing (MODULE_NEWS_DEFAULT_TEMPLATE_NEWS_CATEGORIES_TO_PRODUCT_LISTING, $current_category_id);
} // aktiv eof
// Newsmodul end
////////////////////////////////////////////////////////////////////
suche Zeile 63:
$category_query = "select
cd.categories_description,
cd.categories_name,
cd.categories_heading_title,
c.categories_template,
danach einfügen:
c.news_categories_template, /* changes newsmodul */
c.news_listing_template, /* changes newsmodul */
suche Seile: 78:
$category = xtc_db_fetch_array($category_query, true);
danach einfügen:
////////////////////////////////////////////////////////////////////
// Newsmodul
// wenn aktiv
if(NEWS_MODUL_ON == 'true') {
$news = new news();
$news->calendar('smarty',MODULE_NEWS_TEMPLATE_NEWS_CALENDAR_SHOP);
$news->getNews2CategorieListing ($category['news_listing_template'] != '' ? $category['news_listing_template'] : MODULE_NEWS_DEFAULT_TEMPLATE_NEWS_TO_PRODUCT_CATEGORY, $current_category_id);
$news->getNewsCategories2CategorieListing ($category['news_categories_template'] != '' ? $category['news_categories_template'] : MODULE_NEWS_DEFAULT_TEMPLATE_NEWS_CATEGORIES_TO_PRODUCT_CATEGORY, $current_category_id);
} // aktiv eof
// Newsmodul end
////////////////////////////////////////////////////////////////////
Datei: includes/modules/error_handler.php
Suche Zeile: 14
$module_smarty->assign('tpl_path','templates/'.CURRENT_TEMPLATE.'/');
danach einfügen:
////////////////////////////////////////////////////////////////////
// Newsmodul
// wenn aktiv
if(NEWS_MODUL_ON == 'true') {
$news = new news();
if (basename($PHP_SELF) == FILENAME_ADVANCED_SEARCH_RESULT) {
$news->get_search_result ();
$module_smarty->assign('MODULE_news', $news->smarty_moduldata[2]['news_search_result']);
} elseif (!empty($current_category_id)) {
$news->getNews2CategorieListing ('news_startpage.html', $current_category_id, 'module_smarty');
$news->getNewsCategories2CategorieListing ('news_categories_startpage.html', $current_category_id, 'module_smarty');
}
} // aktiv eof
// Newsmodul end
////////////////////////////////////////////////////////////////////
Datei: includes/modules/product_info.php
suche Zeile: 28
require_once (DIR_FS_INC.'get_cross_sell_name.inc.php');
danach einfügen:
////////////////////////////////////////////////////////////////////
// Newsmodul
require_once(DIR_WS_CLASSES . 'news.php');
////////////////////////////////////////////////////////////////////
suche Zeile: 46
} else {
danach einfügen:
////////////////////////////////////////////////////////////////////
// Newsmodul
// wenn aktiv
if(NEWS_MODUL_ON == 'true') {
$tpl_news_query = xtDBquery("select news_categories_template, news_listing_template
from ".TABLE_PRODUCTS." where products_id = '".$product->data['products_id']."' LIMIT 1");
$tpl_news = xtc_db_fetch_array($tpl_news_query, true);
$news = new news();
$news->getNewsCategories2ProductInfo ($tpl_news['news_categories_template'] != '' ? $tpl_news['news_categories_template'] : MODULE_NEWS_DEFAULT_TEMPLATE_NEWS_CATEGORIES_TO_PRODUCT_INFO, $product->data['products_id']);
$news->getNews2ProductInfo ($tpl_news['news_listing_template'] != '' ? $tpl_news['news_listing_template'] : MODULE_NEWS_DEFAULT_TEMPLATE_NEWS_TO_PRODUCT_INFO, $product->data['products_id']);
$news->display();
} // aktiv eof
// Newsmodul end
////////////////////////////////////////////////////////////////////
Schritt 5 – Template-Anpassungen
jeweils immer gleich im entsprechenden Template darunter einfügen:
Hinweis: Diese Änderungen beziehen sich auf das xtc4 Template! Es liegen auch Dateien mit der Endung .html.txt vor (Standard-Template xtc4). Diese Dateien entsprechen den Modifikationen und müssen nur umbenannt werden, falls Sie keine weiteren Module installiert haben. Wenn Sie diese Dateien verwenden, dann können sie diesen Schritt 5 auslassen.
{if $MODULE_news_caregories}
<tr>
<td class="main"><br />{$MODULE_news_caregories}</td>
</tr>
{/if}
{if $MODULE_news}
<tr>
<td class="main"><br />{$MODULE_news}</td>
</tr>
{/if}
Template: module/product_listing/ *
Zeile: 79
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>{$NAVIGATION}</td>
</tr>
Template: module/categorie_listing/ *
Zeile: 52
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>{$MODULE_new_products}</td>
</tr>
Template: module/product_info/ *
Zeile: 142
{$FORM_END}
<table width="100%" border="0">
Template: module/main_content.html
Zeile: 27
<tr>
<td class="main">{$MODULE_upcoming_products}</td>
</tr>
Ihnen stehen folgende Variablen im Template zur Verfügung:
News
‘NEWS_ID’, ‘NEWS_DATE_ADDED’, ‘NEWS_DATE_RELEASE’, ‘NEWS_DATE_FROM’, ‘NEWS_DATE_TO’, ‘NEWS_TITLE’ ,’NEWS_HEADING’ ,’NEWS_SHORT_DESCRIPTION’, ‘NEWS_DESCRIPTION’, ‘NEWS_IMAGE’, ‘NEWS_POPUP_LINK’, ‘NEWS_TEMPLATE’, ‘NEWS_META_KEYWORDS’,’NEWS_META_DESCRIPTION’, ‘NEWS_META_TITLE’, ‘NEWS_FSK18′, ‘NEWS_VIEWED’ , ‘NEWS_URL’ , ‘NEWS_RATING_STARS’, ‘_PRODUCTS’ (array), ‘_CATEGORIES’ (array) ,’NEWS_PRINT’ , ‘NEWS_LINK’
News – Kategorie
‘CAT_NEWS_ID’, ‘CAT_NEWS_DATE_ADDED’, ‘CAT_NEWS_NAME’, ‘CAT_NEWS_TITEL’, ‘CAT_NEWS_DESCRIPTION’, ‘CAT_NEWS_IMAGE’, ‘CAT_NEWS_TEMPLATE’, ‘NEWS_LISTING_TEMPLATE’ ,’CAT_NEWS_META_KEYWORDS’, ‘_PRODUCTS’ (array), ‘_CATEGORIES’ (array), ‘CAT_NEWS_META_DESCRIPTION’, ‘CAT_NEWS_META_TITLE’, ‘CAT_NEWS_PARENT_ID’ , ‘CAT_NEWS_LINK’
Hinweis: diese Variablen werden mit {$<Variable>} angegeben.
Tip: Achten Sie dabei auf ‘foreach’-Schleifen!
(z.B. ‘{foreach name=news item=news_data from=$_CAT_NEWS_LISTING}’)
Dann werden die Variablen mit {$news_data.<Variable>} angegeben.
Tip 2: (betrifft Design-Modifikationen für den Kalender) Schau Sie sich die txt-Dateien im Ordner templates/xtc4/img/calendar/ an.


