Вы не авторизованы.
Требуется добавить раздел в панель управления интернет магазином WebAsyst Shop-Script для выполнения определенных функций. К примеру в разделе "Продукция" есть подразделы "Продукты и категории", "Отзывы", "Импорт" и т.д. Как добавить свой подраздел "Мой раздел".
Кто нибудь уже делал такое? Есть предложения как это можно сделать?
Неактивен
Судя по всему эта тема уже обсуждалась на форуме. Ответа нет.
Неактивен
тема обсуждалась вот здесь:
http://forum.webasyst.ru/viewtopic.php?id=766
http://forum.webasyst.ru/viewtopic.php?id=2675
мне нужно было добавить к продукту редактируемые из админки свойства "реальное местонахождение" и "поставщик"
решение получилось такое:
Создаю дополнительные таблицы и поля в SC_products
ALTER TABLE `SC_products` ADD `supplierID` INT NOT NULL , ADD `locationID` INT NOT NUL; CREATE TABLE IF NOT EXISTS `SC_locations` ( `location_id` int(11) NOT NULL auto_increment, `name` varchar(30) NOT NULL, `comment` text NOT NULL, PRIMARY KEY (`location_id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=11 ; CREATE TABLE IF NOT EXISTS `SC_suppliers` ( `supplier_id` int(11) NOT NULL auto_increment, `name` varchar(30) NOT NULL, `comment` text NOT NULL, PRIMARY KEY (`supplier_id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=11 ;
редактирование / добавление продукта
modules/products/_methods/b_product_settings.php
строка 555 - вставить
/// Получает список поставщиков
function get_suppliers()
{
$sql = 'SELECT * FROM SC_suppliers';
$res = db_phquery_fetch(DBRFETCH_ROW_ALL, $sql);
return $res;
}
/// Получает список мест
function get_locations()
{
$sql = 'SELECT * FROM SC_locations';
$res = db_phquery_fetch(DBRFETCH_ROW_ALL, $sql);
return $res;
}строка 703 вставить
//Список поставщиков
$suppliers = prdsetActions::get_suppliers();
$smarty->assign( 'suppliers', $suppliers);
//Список мест
$locations = prdsetActions::get_locations();
$smarty->assign( 'locations', $locations);core_functions/product_functions.php
строка 856 вставить
/// Получает данные одного поставщика
function get_supplier($supplier_id)
{
$sql = 'SELECT * FROM SC_suppliers WHERE `supplier_id`='.$supplier_id;
$res = db_query( $sql);
$row = db_fetch_row($res);
return $row;
}
/// Получает данные одного места
function get_location($location_id)
{
$sql = 'SELECT * FROM SC_locations WHERE `location_id`='.$location_id;
$res = db_query( $sql);
$row = db_fetch_row($res);
return $row;
}templates/backend/order_editor/product_settings.html
строка 277 вставить
<tr>
<td>{'lbl_actual_location'|translate}:</td>
<td>
<select name="locationID">
{foreach from=$locations item=_location}
<option value="{$_location.location_id}" {if $product.locationID == $_location.location_id}selected="selected"{/if}>{$_location.name}</option>
{/foreach}
</select>
</td>
</tr>
<tr>
<td>{'lbl_supplier'|translate}:</td>
<td>
<select name="supplierID">
{foreach from=$suppliers item=_supplier}
<option value="{$_supplier.supplier_id}" {if $product.supplierID == $_supplier.supplier_id}selected="selected"{/if}>{$_supplier.name}</option>
{/foreach}
</select>
</td>
</tr>classes/class.product.php
строка 36 всавить
var $locationID; var $supplierID;
список продуктов
modules/ordering/_methods/b_categories_products.php
строка 335 вставить
$gridEntry->registerHeader("lbl_supplier", 'supplier', false, 'desc');
$gridEntry->registerHeader("lbl_location", 'location', false, 'desc');templates/backend/categories_products.html
строка 131 вставить
<td><a href='{$product_url}' title="{$GridRows[i].supplierComment}">{$GridRows[i].supplierName}</a></td>
<td><a href='{$product_url}' title="{$GridRows[i].locationComment}">{$GridRows[i].locationName}</a></td>core_functions/product_functions.php
строка 783 вставить
$where_clause = str_ireplace('WHERE ', 'WHERE ( ', $where_clause).')';строка 784 вставить после "(PRODUCTS_TABLE, $sort_field).'" ,
s.name AS supplierName, s.comment AS supplierComment , l.name AS locationName, l.comment AS locationComment
строка 785 вставить между "FROM " и "'.PRODUCTS_TABLE.' p"
'.TBL_SUPPLIERS_LIST.' AS s , '.TBL_LOCATIONS_LIST.' AS l,
строка 785 вставить после .$where_clause.
'AND s.supplier_id = p.supplierID AND l.location_id = p.locationID '.
управление курьерами и маршрутами(собственно добавление дополнительного пункта меню)
INSERT INTO `SC_division_interface` (`xDivisionID`, `xInterface`, `xPriority`, `xInheritable`) VALUES (211, '58_manage_locations', 0, 0), (212, '59_manage_suppliers', 0, 0); INSERT INTO `SC_modules` (`ModuleID`, `ModuleVersion`, `ModuleClassName`, `ModuleClassFile`) VALUES (36, 1, 'locations_list', '/locations_list/class.locations_list.php'), (37, 1, 'suppliers_list', '/suppliers_list/class.suppliers_list.php'); INSERT INTO `SC_divisions` (`xID`, `xName`, `xKey`, `xUnicKey`, `xParentID`, `xEnabled`, `xPriority`, `xTemplate`, `xLinkDivisionUKey`) VALUES (211, 'pgn_locations', '', 'locations_list', 10, 1, 4, '', ''), (212, 'pgn_suppliers', '', 'suppliers_list', 10, 1, 3, '', ''); INSERT INTO `SC_module_configs` (`ModuleConfigID`, `ModuleID`, `ConfigKey`, `ConfigTitle`, `ConfigDescr`, `ConfigInit`, `ConfigEnabled`) VALUES (58, 36, 'locations_list', '', 'Locations', 1002, 1), (59, 37, 'suppliers_list', '', 'Suppliers', 1002, 1);
cfg/tables.inc.wa.php
строка 81 вставить
define('TBL_SUPPLIERS_LIST', DBTABLE_PREFIX.'suppliers');
define('TBL_LOCATIONS_LIST', DBTABLE_PREFIX.'locations');после этого соответствующие пункты меню должны появиться, но что бы вы их увидели, нужно в настройках админки добавить себе права на эти пункты
теперь нужно создать соответствующие файлы и папки в директрориях modules и templates/backend
я это делал очень просто - скопировал те файлы, которые отвечают за управление купонами, переназвал их и переделал под управлеине соответственно поставщиками и складами.
Отредактировано semen (2009-07-08 23:34)
Неактивен
Спасибо, похоже это то, что нужно.
Неактивен
А как добавить именно НОВЫЙ модуль в админку? Т.е чтобы рядом с "Дизайн" красовалась еще одна вкладочка?
________
Люди добрые, ну помогите, пожалуйста! Хотя бы объясните, по какому принципу появляются значения во фреймах вкладок... Саму ее-то я с горем пополам добавила.
Точнее будет даже такая вот формулировка: по какому принципу формируются страницы вида http://***/published/SC/html/scripts/index.php?did=208 ?
Отредактировано Минта (2009-08-13 16:21)
Неактивен
Минта, вы сделайте просто:
просмотрите разные страницы в админке и решите, какая из этих страниц наиболее близка по функциональности тому модулю, который вы хотите дописать.
после это вы находите модуль, отвечающий за вывод этой страницы меню
все модули находятся в директории /published/SC/html/scripts/modules
и находите шаблон этого модуля в папке /published/SC/html/scripts/templates/backend
а дальше изучаете то что вы нашли и придумываете, что там можно поменять, что бы модуль делал то, что вы от него хотите.
меняете то что нужно, сохраняете в тех же папках под новыми именами
и выполняете примерно вот такие манипуляции с таблицами:
INSERT INTO `SC_division_interface` (`xDivisionID`, `xInterface`, `xPriority`, `xInheritable`) VALUES (211, '58_manage_locations', 0, 0),; INSERT INTO `SC_modules` (`ModuleID`, `ModuleVersion`, `ModuleClassName`, `ModuleClassFile`) VALUES (36, 1, 'locations_list', '/locations_list/class.locations_list.php'); INSERT INTO `SC_divisions` (`xID`, `xName`, `xKey`, `xUnicKey`, `xParentID`, `xEnabled`, `xPriority`, `xTemplate`, `xLinkDivisionUKey`) VALUES (211, 'pgn_locations', '', 'locations_list', 10, 1, 4, '', ''); INSERT INTO `SC_module_configs` (`ModuleConfigID`, `ModuleID`, `ConfigKey`, `ConfigTitle`, `ConfigDescr`, `ConfigInit`, `ConfigEnabled`) VALUES (58, 36, 'locations_list', '', 'Locations', 1002, 1);
только, вместо 'locations_list' вы пишите название своего нового модуля, вместо 'pgn_locations' собственную языковую пременную содержащую название вашего модуля, а вместо 'Locations' уже не помню что.
211 - id нового пункта меню
36 - номер нового модуля
что означает число 58 уже точно помню.
эти три числа у вас возможно будут какими-то своими.
собственно, это всё
если что-то будет не понятно - пишите в эту тему
Отредактировано semen (2009-12-22 01:48)
Неактивен
semen, спасибо огромное! Буду разбираться ![]()
______
Спасибо большое, все работает.) Что бы я без вас делала ![]()
Отредактировано Минта (2009-08-14 10:27)
Неактивен