При добавлении в корзину компонент sale.basket.basket.line показывает некорректное количество товаров в корзине.
Решение отсюда:
При вызове компонента ставим «SHOW_TOTAL_PRICE» => «Y» и проблема решена, количество товаров показывается корректно.
При добавлении в корзину компонент sale.basket.basket.line показывает некорректное количество товаров в корзине.
Решение отсюда:
При вызове компонента ставим «SHOW_TOTAL_PRICE» => «Y» и проблема решена, количество товаров показывается корректно.
IDE PHPStorm подсвечивает синтаксис javascript-кода в HEREDOC-строках. Это актуально при разработке с помощью Yii, когда регистрируют с помощью registerJs (Пруф):
1 2 3 4 |
<?php $js = <<<js var id = $('#id').val(); js; |
PHPExcel Notes and code snippets
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
<?php if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die(); $APPLICATION->RestartBuffer(); require_once $_SERVER['DOCUMENT_ROOT'] . '/local/lib/phpexcel/PHPExcel/IOFactory.php'; // Redirect output to a client’s web browser (Excel2007) header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Disposition: attachment;filename="sample.xlsx"'); header('Cache-Control: max-age=0'); // If you're serving to IE 9, then the following may be needed header('Cache-Control: max-age=1'); // If you're serving to IE over SSL, then the following may be needed header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1 header ('Pragma: public'); // HTTP/1.0 $objPHPExcel = PHPExcel_IOFactory::load(__DIR__ .'/sample.xlsx'); $objPHPExcel->setActiveSheetIndex(0); $worksheet = $objPHPExcel->getActiveSheet(); $worksheet->setCellValueByColumnAndRow(0, 2, $header); for ($i = 1; $i <= 5; $i++) { $worksheet->setCellValueByColumnAndRow(0, $i, $i); } $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); $objWriter->save('php://output'); exit; |
Битрикс с некоторых пор позволяет наследовать компоненты. Но при этом не совсем очевидно как сделать наследование шаблона родительского компонента. Помогает такой вот костыль:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<?php if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) die(); CBitrixComponent::includeComponentClass('vendor:cool.parent'); class MyComponent extends CoolParentComponent { protected function getParentTemplatePath() { $parent = new CBitrixComponent; $parent->initComponent('vendor:cool.parent'); $path = $parent->__path . '/templates/' . $this->__template->__name; return $path; } public function executeComponent() { parent::executeComponent(); $this->IncludeComponentTemplate('', $this->getParentTemplatePath()); } } |
Функция CMain::GetTitle — отложенная. Поэтому чтобы выводить заголовок страницы по условию нельзя сделать так:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?php if ($APPLICATION->GetTitle() && substr($APPLICATION->GetCurPage(), 0, 9) != "/catalog/") { ?> <div class="container page-title"> <div class="row"> <div class="panel panel-primary"> <div class="panel-heading gradient">' . $APPLICATION->GetTitle(false) . '</div> </div> </div> </div>'; <?php } ?> |
Нужно делать так:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<?php function ShowCondTitle() { global $APPLICATION; GLOBAL $title_section; if ($APPLICATION->GetTitle() && substr($APPLICATION->GetCurPage(), 0, 9) != "/catalog/") { return ' <div class="container page-title"> <div class="row"> <div class="panel panel-primary"> <div class="panel-heading gradient">' . $APPLICATION->GetTitle(false) . '</div> </div> </div> </div>'; } else { return ''; } } $APPLICATION->AddBufferContent('ShowCondTitle'); ?> |