Шаблони ImageCMS 4.10-4.12.1
Останні шаблони від ImageCMS 4.12, для завантаження потрібна авторизація.
Приклад створення CSV з роздільником рядка ";"
Код:
// 1
$fp = fopen('./fileName.csv', 'w');
if ($fp === false) {
// 2
exit('Can not create file (No Rights) ./fileName.csv');
}
// 3
$models = [
[
'name' => 'Visa',
'type' => 'Card',
'balance' => '10.0'
],
[
'name' => 'Master',
'type' => 'Card',
'balance' => '0'
]
];
// 4
fwrite($fp, '"Имя";"Тип";"Баланс"' . "\n");
foreach ($models as $v) {
fwrite($fp, '"' . $v['name'] . '";"'
. $v['type'] . '";"'
. $v['balance'] . '"'
. "\n");
}
// 5
fseek($fp, 0);
fclose($fp);
// 6
$data = file_get_contents('./fileName.csv');
// 7
header('Content-Type: text/csv'); // 7.1
header('Content-Disposition: attachment; filename="fileName.csv"'); // 7.2
header("Content-Transfer-Encoding: binary"); // 7.3
header('Expires: 0'); // 7.4
header('Pragma: no-cache'); // 7.5
header("Content-Length: ".strlen($data)); // 7.6
// 8
exit($data);
Примітка :
Щоб спрацювали header, перед спрацюванням коду не повинно бути BOM та будь-якого виведення інформації.
1 - Створюємо файл fileName.csv у корені сайту для запису.
2 – Попереджаємо про помилку, якщо немає прав на запис.
3 - Масив значень, який ми оброблятимемо
4 - Запис у файл. '"Ім'я "; " Тип";"Баланс"' . "\n" (";" - роздільник рядка, "\n" - перенесення рядка).
5 - Повертаємо покажчик на початок файлу та закриваємо файл (зберігаємо).
6 – Зчитуємо файл заново.
7 - Даємо заголовки для можливості завантажити файл.
7.1 – Параметр визначальний тип файлу.
7.2 – Покажчик на прикріплення файлу.
7.3 - В якому вигляді передавати (у даному випадку у бінарному).
7.4, 7.5 - Покажчик, щоб не кешувати файл і постійно віддавати актуальний.
7.6 – Розмір контентної частини файлу.
8 - Виводимо інформацію, яка у зв'язці із заголовками дасть можливість завантажити її у CSV файл.
Результат:
Останні шаблони від ImageCMS 4.12, для завантаження потрібна авторизація.
Розглянемо варіанти популярних варіантів зберігання товарів у кошику в інтернет-магазині. Позначимо плюси та мінуси таких зберігання. Розглянемо варіанти довгострокового зберігання корзини.
Створення ключа для imageCMS 4.9-4.12.1 Pro та Pre. Для отримання авторизуватися.
При запуску скрипта з консолі немає DOCUMENT_ROOT в $_SERVER. Спробуємо обійти це своїми шляхами, відловити директорію файлу.
Після розробки будь-якого інструменту на PHP стає питання, наскільки створений код ресурсний і які елементи він зачіпає ще. Розглянемо установку xhprof, налаштування та розглянемо способи роботи з xhprof.
Розберемо можливість об'єднання умов у запиті груп у Propel. Розглянемо приклад фільтрації по полях за допомогою -> condition () і -> combine ().
Зіткнувся із проблемою авторизації 1с на сайті. Сервер чомусь не приймав від неї параметр PHP_AUTH_USER і PHP_AUTH_PW. Розглянемо докладніше рішення та обхід даних параметрів $_SERVER .
Метою статті стало приєднання (join) не оголошеної у схемі (schema.xml) таблиці у propel2. Мабуть, рідкісний випадок або просто недостатньо документації по даній Propel ORM.