use Bitrix\Sale\Compatible\DiscountCompatibility;
use Bitrix\Sale\Basket;
use Bitrix\Sale\Discount\Gift;
use Bitrix\Sale\Fuser;
class DiscountsHelper
{
/**
* Возвращает массив id всех доступных подарков для товара
*
* @param int $productId - идентификатор товара
* @return array - массив с id подарков для товара
*/
public static function getGiftIds($productId)
{
$giftProductIds = [];
if (!$productId) {
return $giftProductIds;
}
DiscountCompatibility::stopUsageCompatible();
$giftManager = Gift\Manager::getInstance();
$potentialBuy = [
'ID' => $productId,
'MODULE' => 'catalog',
'PRODUCT_PROVIDER_CLASS' => 'CCatalogProductProvider',
'QUANTITY' => 1,
];
$basket = Basket::loadItemsForFUser(Fuser::getId(), SITE_ID);
$basketPseudo = $basket->copy();
foreach ($basketPseudo as $basketItem) {
$basketItem->delete();
}
$collections = $giftManager->getCollectionsByProduct($basketPseudo, $potentialBuy);
foreach ($collections as $collection) {
/** @var \Bitrix\Sale\Discount\Gift\Gift $gift */
foreach ($collection as $gift) {
$giftProductIds[] = $gift->getProductId();
}
}
DiscountCompatibility::revertUsageCompatible();
return $giftProductIds;
}
}
Много шишек, нервов, денег и времени отнял 1С-Битрикс. Решил уйти на самописанный сайт.самописанный сайт отнимет "нервов, денег и времени" в 10 раз больше. Но правда в том, что самописный интернет-магазин (как вы выразились "сайт без cms, написанный с нуля.) вам никто не сделает. Либо поставят open source, либо сделают такое, что это будет дырявое решето стоящее на протезах и костылях (и что в конечном счете с грохотом упадет).
// По вашему коду:
$source_string = 'abcdefghijklmnopqrstuvwxyz';
$string_randomized = str_shuffle($source_string); // Перетасовали буквы внутри строки
echo substr($string_randomized, 0, 6); // Вывели первые 6, без повторений и каждый раз после str_shuffle - уникально-рандомно (относительно, но задача именно этого и требует)
// По красоте:
$characters = 'abcdefghijklmnopqrstuvwxyz';
echo substr(str_shuffle($characters), 0, 6);
// Тестируем в psych:
>>> $characters = 'abcdefghijklmnopqrstuvwxyz';
=> "abcdefghijklmnopqrstuvwxyz"
>>> echo substr(str_shuffle($characters), 0, 6);
fzpvad
>>> echo substr(str_shuffle($characters), 0, 6);
bzeiyj
>>> echo substr(str_shuffle($characters), 0, 6);
pgkuaq
>>> echo substr(str_shuffle($characters), 0, 6);
otjszx
>>> echo substr(str_shuffle($characters), 0, 6);
zjwaox
>>> echo substr(str_shuffle($characters), 0, 6);
rxuhnv
>>> echo substr(str_shuffle($characters), 0, 6);
rihoec
>>> echo substr(str_shuffle($characters), 0, 6);
uwdfgn
>>>
pdftotext "#FILE_PATH#" -enc UTF-8 -nopgbrk -
<div id="vk_widget">
<div id="vk_groups"></div>
</div>
<script type="text/javascript" src="//vk.com/js/api/openapi.js?116"></script>
<script>
function VK_Widget_Init(){
document.getElementById('vk_groups').innerHTML = "";
var vk_width = document.getElementById('vk_widget').clientWidth;
VK.Widgets.Group("vk_groups", {mode: 0, width: vk_width, height: "241", color1: "2B2B2B", color2: "FFFFFF", color3: "2B2B2B"}, 26292363);
};
window.addEventListener('load', VK_Widget_Init, false);
window.addEventListener('resize', VK_Widget_Init, false);
</script>
#vk_widget, #vk_groups {
width: 100%;
}