Николай Савин

Николай Савин

С нами с 01 января 1970; Место в рейтинге пользователей: #2
Николай Савин
17 января 2025, 21:18
0
Формула берет просто текущий год и год перед ним. Только числа года.
Николай Савин
17 января 2025, 17:14
0
Так откуда бы им взяться. Молодой крови особо не видно в наших краях.
Николай Савин
13 января 2025, 14:28
+1
Рейтинг поста можно только в течение определенного времени менять. Не помню уже сколько дается. Эта заметка -уже старая.

На MODX 3 + Minishop 3 есть ли какая-то дорожная карта развития и какие инструменты и возможности в нем будут реализованы?
Я честно говоря склоняюсь к разработке Enterprice версии (платной). И в ней встраивать уже поиск и фильтры, работу с изображениями, с контентом, бонусы, модификации, промо-коды и т.п.
Короче чтобы скачал и сразу все было под ключ, вплоть до готовых тем
Николай Савин
13 января 2025, 14:26
+1
Ну вот. Только его подвинули, а он опять вверх ))
Насчет возраста заметки — это кстати отличная идея. Я не подумал. Наверное ради интереса попробую сделать концепт расчета.
Николай Савин
11 января 2025, 11:35
0
Да. Но это грамотный ответ мнение, с которым я согласен
Николай Савин
10 января 2025, 18:57
0
Вопрос о шифровании компонентов для MODX и модифицированных версий MODX связан с интерпретацией лицензий GNU, в частности GNU GPL (General Public License), под которой распространяется MODX.

1. Модифицированная версия MODX
Если вы модифицируете исходный код MODX и распространяете (или продаете) эту модифицированную версию, то лицензия GNU GPL требует, чтобы вы предоставили исходный код модифицированной версии. Шифрование модифицированной версии MODX явно нарушает это требование, так как лицензия GPL требует, чтобы исходный код был доступен для всех, кто получил модифицированную версию.

2. Шифрование компонентов для MODX
Компоненты для MODX (например, плагины, сниппеты, модули) могут рассматриваться как производные работы, если они напрямую используют или модифицируют код MODX. В этом случае они также подпадают под действие лицензии GPL, и их исходный код должен быть предоставлен.

Однако, если компонент является самостоятельным программным обеспечением, которое лишь взаимодействует с MODX через API или другие интерфейсы, не включая и не модифицируя исходный код MODX, то он может не подпадать под требования GPL. В этом случае шифрование такого компонента может быть допустимым, но это зависит от конкретных обстоятельств и интерпретации лицензии.

3. Код, включающий код MODX
Если ваш код включает или модифицирует исходный код MODX, то он считается производной работой и должен распространяться под той же лицензией GPL с предоставлением исходного кода.

4. Код, использующий инструменты MODX
Если ваш код лишь использует API или другие инструменты MODX, не включая и не модифицируя его исходный код, то он может не подпадать под требования GPL. В этом случае шифрование такого кода может быть допустимым.

5. Интерпретация для фреймворков
Для фреймворков, распространяемых под лицензией GPL, обычно применяются те же принципы. Если ваш код является производной работой (включает или модифицирует код фреймворка), то он должен распространяться под GPL с предоставлением исходного кода. Если же ваш код лишь использует API или интерфейсы фреймворка, не включая его код, то он может не подпадать под требования GPL.
Николай Савин
10 января 2025, 10:35
0
Шифрование исходного кода PHP может быть полезно для защиты интеллектуальной собственности или предотвращения несанкционированного доступа к коду. Однако стоит учитывать, что полная защита исходного кода невозможна, так как PHP выполняется на стороне сервера, и расшифрованный код должен быть доступен для интерпретатора. Тем не менее, вот несколько способов, которые могут помочь затруднить чтение исходного кода:

1. Использование инструментов для обфускации кода

Обфускация — это процесс преобразования исходного кода в трудночитаемую форму, сохраняя его функциональность. Существуют инструменты, которые могут обфусцировать PHP-код:

PHP Obfuscator: Инструменты вроде PHP Obfuscator или ionCube PHP Obfuscator могут преобразовать код в нечитаемый вид.
YAK Pro: Бесплатный инструмент для обфускации PHP-кода.

Пример использования:
php yakpro-po.php your_script.php -o obfuscated_script.php
2. Шифрование с помощью ionCube или Zend Guard
Эти коммерческие инструменты позволяют зашифровать PHP-код и запускать его с помощью специального расширения на сервере.
  • ionCube: Шифрует код и требует установки ionCube Loader на сервере.
  • Zend Guard: Аналогично ionCube, шифрует код и требует Zend Optimizer.
Пример использования ionCube:

ioncube_encoder your_script.php -o encrypted_script.php
3. Использование base64_encode и eval
Этот метод не является надежным, но может затруднить чтение кода. Код кодируется в base64, а затем декодируется и выполняется с помощью eval.
Пример:

<?php
$code = '<?php echo "Hello, World!"; ?>';
$encoded = base64_encode($code);
eval(base64_decode($encoded));
?>
4. Самописное шифрование

Вы можете написать собственный алгоритм шифрования и расшифровки кода. Однако это требует глубоких знаний в криптографии и может быть ненадежным.
Пример:

<?php
function encrypt($code, $key) {
    return openssl_encrypt($code, 'AES-128-CBC', $key);
}

function decrypt($encrypted, $key) {
    return openssl_decrypt($encrypted, 'AES-128-CBC', $key);
}

$code = '<?php echo "Hello, World!"; ?>';
$key = 'your_secret_key';
$encrypted = encrypt($code, $key);
eval(decrypt($encrypted, $key));
?>
5. Использование PHP-расширений

Вы можете написать собственное PHP-расширение на C, которое будет содержать зашифрованный код. Это требует навыков программирования на C и работы с PHP API.

Важные замечания:

  • Производительность: Шифрование и расшифровка кода могут замедлить выполнение скрипта.
  • Безопасность: Ни один метод не обеспечивает 100% защиту. Злоумышленник с достаточными знаниями и временем может декомпилировать или расшифровать код.
  • Лицензирование: Убедитесь, что использование инструментов шифрования соответствует лицензионным соглашениям
Выбор метода зависит от ваших требований к безопасности, бюджета и уровня сложности, который вы готовы принять.
Николай Савин
09 января 2025, 17:21
+1
Вот так привязать к шаблонам.

$templates = array(1, 2); 
if(in_array($modx->controller->resource->get('template'), $templates)) {
	$modx->regClientStartupHTMLBlock('<script>Ext.onReady(function() {
if(MODx.loadRTE) MODx.loadRTE("modx-resource-introtext");
});</script>');
};
Вот так выводить для указанных шаблонов, и плюс отдельно для указанных ID.

$templates = array(1, 2); 
$ids = [112, 113];
if(

in_array($modx->controller->resource->get('template'), $templates) 
||  in_array($modx->controller->resource->get('id'), $ids) 
) {
	$modx->regClientStartupHTMLBlock('<script>Ext.onReady(function() {
if(MODx.loadRTE) MODx.loadRTE("modx-resource-introtext");
});</script>');
};
Николай Савин
09 января 2025, 12:14
0
У работы нет стоимости, она у есть у исполнителя.
Соответственно зависит от того, кто будет делать.
Ну, а дальше уже нюансы. Что за файл, откуда он берется. Готовый он или нужно генерировать. Куда, когда отсылать, при каких условиях и т.п.
Николай Савин
08 января 2025, 21:57
0
Да это возможно, но придется писать свой плагин скорее всего. В MODX и minishop2 из коробки такого нет
Николай Савин
05 января 2025, 16:38
0
В нашем случае рейтинг — это же признак квалификации, узнаваемости, признания профессиональных заслуг.
Как то странно донатами влиять на свою узнаваемость или признание.
Николай Савин
03 января 2025, 18:04
+3
Судя по комментариям — возникло небольшое недопонимание.
В недрах проекта есть сложная формула, согласно которой рейтинг складывается из различных параметров.
А именно
За публикацию — начисляется от 0 до 20 баллов в, зависимости от раздела.
За комментарии — начисляются 0 баллов, но зато добавляются баллы за лайки комментарию.
Также учитываются лайки к постам, добавление постов в избранное и т.п.

В общем сложная, многоуровневая формула, которую сделал еще Василий. Она остается неизменной.

Я же лишь реализовал коэффициент активности. Программа высчитывает рейтинг пользователя по формуле Василия, а с сегодняшнего дня помножается на коэф. активности.

Пользователь был активен в последний месяц — его рейтинг равен тому что дала формула рейтинга.
Пользователь пропал и не писал ничего более полугода — его рейтинг помножается на 0.5 (делится пополам). Но стоит ему зайти и написать пост — как его рейтинг сразу восстановится.

В итоге из рейтинга отсеиваются люди, давно потерявшие MODX из виду, а вперед вырываются те, кто регулярно пишет посты и комментарии.
Николай Савин
19 декабря 2024, 15:42
+1
Касательно MiniShop3 — изменения в классах и таблицах товаров не планируются. Так что тут уже стабильно все.
Николай Савин
14 декабря 2024, 11:28
+1
Спасибо за теплые слова Антон.
Документацию пока не начинал делать. Надо бы…
Умные люди советую отдельный проект под документацию и демку поднимать, так как материала много. Мнения разделяются.
Насчет локализации. Ну тут принципы MODX сохранены. В ближайшее время создам каталоги всех языков и далее можно будет помочь с переводами.
Николай Савин
03 декабря 2024, 19:09
0
Расскажи ка мне друг мой, как ты при помощи события отменишь добавление в корзину или отправку заказа?
А как, при подписке на одно событие — ты прервешь выполнение других, если первое событие сигнализирует о прерывании действия. И еще пожалуйста дай знать, как работать в событиях с асинхронными запросами.

Я и сам думал обойдусь событиями. Но основательно взявшись за работу, понял что они нефига не справляются.
Николай Савин
29 ноября 2024, 11:58
+2
Вы не думали сделать его платным
Почти наверняка будет платная Энтерпрайз версия в дополнение к базовой бесплатной.
Николай Савин
29 ноября 2024, 11:56
0
что именно на вас держится MODx
Спасибо за теплые слова. Он держится на вас на всех скорее, кто поддерживает финансово. Ибо без этого не было бы мотивации совсем.