+380(66)433-69-36 | |
+380(66)433-69-36 | |
+380(66)433-69-36 |
- BitLocker с GUI под linux
- Ищем вирус elTest
- Работаем с бесплатным SSL сертификатом Letsencrypt с помощью certbot
- Синхронизация ресурсов с удаленного сервера локально
- Применение нестандартного SEO и статус 404
- MySQL синхронизируем права с разных серверов
- IPSec VPN соединение между офисами.
- "Зеркало" сайта на стороне. Донастраиваем nginx
- Дефрагментация таблиц всех баз MySQL
- Месяц в родительном падеже strftime PHP
- INIT скрипт для Dropbox
- osCommerce VAM Edition 226. Ошибки
- PositiveSSL порядок сертификатов
- osCommerce. Создаем модуль доставки
- Восстановление mySQL баз данных
- osCommerce.Перенос магазина в другой домен
- osCommerce.Прячем адмику
- osCommerce. Продление жизни сессий
- osCommerce. Создаем платежный модуль
- 10 причин выбрать нас
- GRUB2 восстановление
- osCommerce не пересчитывает общую сумму заказа
- Список потенциально опасных скриптов
- Отправка файлов из Dropbox по e-mail
- "Черный список" почтовых доменов
- Боремся с назойливыми иностранцами
- Яндекс-Диск, и стоит ли им пользоваться.
- Обновление модуля Интеркассы для osCommerce
- Веб-почта на сайте хостинга
- Подключение Outlook Express к хостингу
Механизм сессий и новая версия файлового менеджера
( 1 Vote )
Начиная со сборки 219 в пакете osCommerce VAM Edition в качестве редактора используется обновленная версия tinyMCE с новым файловым менеджером:ajaxFileManager. Для этой и более поздних сборок предназначено нижеследующее описание.
Вся проблема в том, что после обновления редактора tinyMCE до текущей версии появилась проблема с несовместимостью данных сессий, которые хранятся для административной части, и сессии отрабатывающей данные редактора. Несовместимость проявляется в том случае, когда для PHP используется расширение suhosin и включено криптование сессий. Если нет возможности отключить криптование, то придется использовать метод, рассмотренный ниже. Дело в том, что в сессии редактора напрочь отсутствуют данные, связанные со входом в административную панель. И потому приходится прибегать к двойной работе: восстанавливать результаты сессии стандартными средствами, подмешивая данные сессии к результатам сессии редактора. Это происходит примерно так:
$cwd=getcwd();
chdir('../../../../');
require ('configure.php');
require ('functions/database.php');
require ('database_tables.php');
tep_db_connect();
require ('functions/sessions.php');
$session_query=tep_db_query('select configuration_value from '.TABLE_CONFIGURATION.
' where configuration_key like "%SESSION_WRITE_DIRECTORY%"');
$session_result=tep_db_fetch_array($session_query);
if (isset($session_result['configuration_value'])){
session_save_path($session_result['configuration_value']);
}
session_name('osCAdminID');
chdir($cwd);
session_start();
т.е. для корректной отработки механизма сессии (и проверки прав на использование редактора) приходится подключать файл конфигураций, имен таблицы, файл переопределения механизма сессий. Потом устанавливать вручную параметры сессии (имя и путь). И только после этого ее восстанавливать. Ничего страшного в этом нет, кроме того, что увеличивается размер кода и прибавляется лишнее обращение к базе данных. В принципе, на фоне того количества запросов, которые производятся к базе данных при обычном отображении страниц магазина - это вообще не отразится на производительности.
Ниже приведены инструкции по установке пакета, решающего вышеназванную проблему, и добавляющего файловый менеджер в Ваш магазин. Еще раз напоминаем, все это предназначено для сборок 219 и старше.
Инструкция по установке:
1. Загрузить пакет в каталог admin
2. Разархивировать файл в текущей папке (перепишутся файлы file_manager.php, и из пакета
tinyMCE: config.php,config.base.php).
Перенести содержимое папки /admin/images/file_browser в /images/file_browser
3. Исправить /admin/includes/boxes/catalog.php
Заменить
array(
'code' => FILENAME_PRODUCTS_EXPECTED,
'title' => BOX_CATALOG_PRODUCTS_EXPECTED,
'link' => tep_href_link(FILENAME_PRODUCTS_EXPECTED)
),
на:
array(
'code' => FILENAME_PRODUCTS_EXPECTED,
'title' => BOX_CATALOG_PRODUCTS_EXPECTED,
'link' => tep_href_link(FILENAME_PRODUCTS_EXPECTED)
),
array(
'code' => 'file_manager.php',
'title'=>'File Manager',
'link'=>tep_href_link('file_manager.php')
)
4. Создать каталоги: /free, /download, /media - если таких нет.
5. При необходимости добавить права для администратора в группе "Каталог" на файл file_manager.php
Все. Да здравствует новый файловый менеджер.
Вызывается он из бокса "Каталог" - "File Manager"