-
+152
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
$db = Db::getInstance();
$result = $db->ExecuteS('SELECT * FROM `'._DB_PREFIX_.'payment_module_settings`;');
$text = "";
for($i=2;$i<sizeof($result[0]);$i++)
{
if($i == 2)
{
$text .= "[general]"."\n";
$text .= "url = '".$result[0][url]."'"."\n";
}
if($i == 3)
{
$text .= "[payment]"."\n";
$text .= "sequritySender = '".$result[0][security_sender]."'"."\n";
}
if($i == 4)
{
$text .= "transactionChannel = '".$result[0][transaction_Channel]."'"."\n";
}
if($i == 5)
{
$text .= "transactionMode = '".$result[0][transaction_Mode]."'"."\n";
}
if($i == 6)
{
$text .= "userLogin = '".$result[0][user_Login]."'"."\n";
}
if($i == 7)
{
$text .= "userPwd = '".$result[0][user_Pwd]."'"."\n";
}
if($i == 8)
{
$text .= "paymentType = '".$result[0][payment_Type]."'"."\n";
}
if($i == 9)
{
$text .= "presentationCurrency = '".$result[0][presentation_Currency]."'"."\n";
}
if($i == 10)
{
$text .= "[view]"."\n";
$text .= "src = '".$result[0][src]."'"."\n";
}
if($i == 11)
{
$text .= "language = '".$result[0][language]."'"."\n";
}
if($i == 12)
{
$text .= "style = '".$result[0][style]."'"."\n";
}
}
if($_GET['paymentType'] == 'CC')
{
$text .= "brands[] = 'VISA'"."\n";
$text .= "brands[] = 'MASTER'"."\n";
}
if($_GET['paymentType'] == 'VA')
{
$text .= "brands[] = 'PAYPAL'"."\n";
}
$text .= "[soap]"."\n";
$text .= "url = 'http://debugservices.fine-trade.org/PayOnOrderHandling.svc?WSDL'"."\n";
$text .= "username = 'extensions'"."\n";
$text .= "password = 'testExtensions'"."\n";
$text .= "options[] = false"."\n";
$text .= "importIfPending = false"."\n";
if (file_exists('LoviitLib/config.ini')) {
unlink('LoviitLib/config.ini');
}
$myFile = "LoviitLib/testFile.txt";
$fh = fopen($myFile, 'w') or die("can't open file");
fwrite($fh, $text);
fclose($fh);
rename("LoviitLib/testFile.txt","LoviitLib/config.ini");
Преамбула: для конфигурации библиотеки передаётся ассоциативный массив в конструктор. Если передаётся null, то для конфигурации используется файл config.ini с дефолтными настройками, который находится в корне библиотеки.
Этот код исполняется при каждой инициализации библиотеки (при каждом чекауте).
Ремарка: после запроса к db результатом является ассоциативный массив.
И да, это код из модуля для prestashop cms.
aronsky,
15 Апреля 2014
-
+155
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
$hlblock_id = 3;
$hlblock = HL\HighloadBlockTable::getById($hlblock_id)->fetch();
$entity = HL\HighloadBlockTable::compileEntity($hlblock);
$main_query = new Entity\Query($entity);
$main_query->setSelect(array('*'));
$main_query->setFilter(array('=UF_NAME' => $arOLDItem['material']));
$result = $main_query->exec();
$result = new CDBResult($result);
$row = $result->Fetch();
Bitrix, HIGHLOAD инфоблоки, данная запись равносильна SQL запросу SELECT * FROM %таблица_название_которой_хранится_в_бд_ под_номером_3% WHERE UF_NAME = $arOLDItem['material']
+зацените супер CamelCase от битрикса
TBoolean,
15 Апреля 2014
-
+9
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
template<...many params...>
class Foo
{
template <typename T>
class __Bar
{
T t;
public :
__Bar(T t) : t(t) {}
};
public :
template <typename T>
__Bar<T> Bar(T t)
{
return __Bar<T>(t); // просто __Bar(t) нельзя, вывод не сработает
}
template <typename T>
void Buzz (T t)
{
}
};
...
Foo f;
f.Buzz(Bar(5));
А как вы выкручиваетесь из неумения определять тип результата по типу параметров конструктора?
TarasB,
15 Апреля 2014
-
+133
Сосево из ширинки, ебля с порога.
KonardStuard,
14 Апреля 2014
-
+152
- 1
- 2
- 3
- 4
if (ctype_space($text[$pos] && $pos < $len)) {
while (ctype_space($text[$pos++]) && $pos < $len);
$pos--;
}
Написал я когда-то такое и подумал: а какой смысл в $pos++ в последней итерации, если потом сразу $pos--?
И тут до меня дошло, что
while (ctype_space($text[$pos++]) && $pos < $len);
это не то же самое, что
while (ctype_space($text[$pos]) && $pos < $len) $pos++;
ибо в первом случае $pos++ выполнится в последней итерации, даже если ctype_space возвратит false.
И в итоге заоптимизировал до while (ctype_space($text[$pos]) && $pos < $len) $pos++; (уже без ифа и декремента).
Мораль: нефиг выпендриваться (ставить инкременты и декременты в условия), если можно написать по-простому.
arzeth,
14 Апреля 2014
-
+75
- 1
Integer code = Integer.valueOf(service.getId().toString());
service.getId() возвращает Long
evg_ever,
14 Апреля 2014
-
+153
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
<?php if(isset($the_cat_id)): ?>
<?php
$query_args['showposts'] = $brp_count_category;
$query_args['cat'] = $the_cat_id;
?>
<?php else: ?>
<?php
$query_args['showposts'] = $brp_count_index;
?>
<?php endif; ?>
{ }? Нет, не слышали...
russling,
14 Апреля 2014
-
+9
- 1
BOOST_FOREACH(auto &v, pt.get_child("root"))
Код компилируется и написан таким изначально. Но судя по всему использует копипаст из примеров.
laMer007,
14 Апреля 2014
-
+128
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
(defun primes-under (limit &optional (filter-depth (truncate (log limit))))
(labels ((%purge (prefix table depth)
(iter
(for (key value) :in-hashtable table)
(for mul := (* key prefix))
(while (< mul limit))
(when (> depth 0) (%purge mul table (1- depth)))
(remhash mul table))))
(let ((primes (iter
(with p := (make-hash-table))
(for i :from 2 :below limit)
(setf (gethash i p) t)
(finally (return p)))))
(iter
(for (key value) :in-hashtable primes)
(%purge key primes filter-depth)
(finally
(return
(iter
(for (key value) :in-hashtable primes)
(reducing key :by #'+))))))))
Вопрос к знатокам: почему так работает? (у меня чисто случайно получилось)
Для тех, кому влом разбираться:
Задача выше - код из Прожект Ойлер. Нужно найти сумму всех простых чисел меньше 2000000 (двух миллионов).
Методом подбора было установлено, что если из всех чисел меньше N последовательно удалять их произведения N_0 * N_1 * ... * N_m, где m = floor(log(N)), то, по крайней мере на сколько меня хватило посчитать, не-простых чисел не остается.
Вопрос, как связан log(N), и можно ли вообще надеятся на то, что это правило - универсально (например, что степени двойки никогда не будут меньше N).
wvxvw,
14 Апреля 2014
-
+73
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
StartElement startElement = event.asStartElement();
if(startElement.getName().getLocalPart().equals(REPORT)){
report = new Report();
}else if (startElement.getName().getLocalPart().equals(CODE)){
event = eventReader.nextEvent();
report.setCode(event.asCharacters().getData());
continue;
}else if(startElement.getName().getLocalPart().equals(SHORT_NAME)){
event = eventReader.nextEvent();
report.setShortName(event.asCharacters().getData());
}else if(startElement.getName().getLocalPart().equals(NAME)){
event = eventReader.nextEvent();
report.setName(event.asCharacters().getData());
continue;
}else if(startElement.getName().getLocalPart().equals(TYPE)){
event = eventReader.nextEvent();
report.setType(ReportType.valueOf(event.asCharacters().getData()));
continue;
}else if(startElement.getName().getLocalPart().equals(CON_CMN_REPORT)){
event = eventReader.nextEvent();
String conRepCode = event.asCharacters().getData();
report.setConnectedCommonReport(getReportByCode(conRepCode, reports));
continue;
}else if(startElement.getName().getLocalPart().equals(BEFORE)){
event = eventReader.nextEvent();
report.setAvaliableBefore(Boolean.valueOf(event.asCharacters().getData()));
continue;
}else if(startElement.getName().getLocalPart().equals(QUANTITY)){
event = eventReader.nextEvent();
report.setQuantity(ReportQuantity.valueOf(event.asCharacters().getData()));
continue;
}else if(startElement.getName().getLocalPart().equals(CREATOR_CLASS_NAME)){
event = eventReader.nextEvent();
report.setCreatorClassName(event.asCharacters().getData());
}
и не лень же было
evg_ever,
14 Апреля 2014