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

В модуле на CMS Joomla есть код загрузки товаров из файла .cvs.
Так вот этот код создает новые элементы вместо перезаполнения существующих. В php полный нуб пока, поэтому прошу помощи.
Код:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$product = JSFactory::getTable('product', 'jshop');
                    $product->set("product_ean", $row[1]);
                    $product->set("product_quantity", $row[2]);
                    $product->set("product_date_added", $row[3]);
                    $product->set("product_price", $row[4]);
                    $product->set("min_price", $row[4]);
                    $product->set("product_tax_id", $listTax[$tax_value]);                                        
                    $product->set("currency_id", $jshopConfig->mainCurrency);
                    $product->set($lang->get("name"), utf8_encode($row[7]));
                    $product->set($lang->get("short_description"), utf8_encode($row[8]));
                    $product->set($lang->get("description"), utf8_encode($row[9]));
                    $product->store();
                    $product_id = $product->get("product_id");
                    $category_id = $listCat[$category_name];
                    if ($category_name!="" && $category_id){
                        $_products->setCategoryToProduct($product_id, array($category_id));
                    }
                    
Я вот не могу понять, что за процедуры store() и $product->get("product_id") и как мне впихнуть создание нового...
Ответ: Taatshi, при чем тут допиливание ядра, если стандартная загрузка только создает новые элементы, нет возможности даже прайсы обновить автоматически.
Суть вашего ответа сводится к тому, чтобы купить доработанную загрузку-выгрузку, но я их и так видел, покупать не стал, а смотрю в интернете как сделать.
Вопрос: Создание новых узлов в XML-файле через JS. Не сохраняет измененный файл

Всем привет!

Я формирую XML-файл с помощью JavaScript, а точнее динамически создаю новые узлы, чтобы потом вывести содержимое этого файла на web-интерфейс.

После создания нового узла, их количество действительно увеличивается. Узнаю я это так:
Код Javascript
1
document.write(xmlDoc.getElementsByTagName("event")[0].length)
Да и информация о новых узлах выводится.

Однако, такой феномен:
Открыв файл на сервере, никаких изменений нет! Такое ощущение, что файл изменился где-то локально, но не на сервере.
Соответственно на web-интерфейс актуальная информация не подгружается...

Может там надо какую-то волшебную функцию вызвать, аля Save()?
Помогите разобраться junior-программистке
Ответ: Да.
Вопрос: Отследить момент создания нового селектора

Приветствую! Есть список пополняющийся динамически.
<ul>
  <!-- Сюда динамически добавляются li-->
</ul>

Мне нужно отследить создание нового элемента li не имеющего класса empty
это как-то можно отследить с помощью wait или другого аналога
wait.until li.hasClass("empty")

?
Ответ:
Сообщение от рони
ligisayan,нужно найти в вашем коде место где происходит добавление li и после добавить код вставки в слайдер.

всё.
более вариантов кроме MutationObserver я незнаю
А если отслеживать изменение размера ul.length или изменение hasclass?
Вопрос: Несколько доменов и создание новых страниц

Пытаюсь использовать два доменных имени на одном apache24.
Сделал всё как в этом примере:
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# Ensure that Apache listens on port 80 
Listen 80 
<VirtualHost *:80> 
DocumentRoot "/www/example1" 
ServerName www.example.com
 
# Other directives here 
</VirtualHost> 
 
<VirtualHost *:80> 
DocumentRoot "/www/example2" 
ServerName www.example.org
 
# Other directives here 
</VirtualHost>
только пути абсолютные на локальном диске.
Всё равно открывается всё из одной директории. Если поменять хосты местами, то само собой теперь всё открывается только из пути к папке второго сайта, то есть директории и имена написаны верно.
Что я мог упустить?

Также был бы рад объяснению директивы Alias, будто вы рассказываете это человеку, который впервые видит кампутер перед собой, так как документация по нему объясняет мне чуть больше чем ничего.

Вопрос с созданием новых страниц решился, наверно.
Ответ: kokoken, решил.
Необходимо было добавить строчку ServerAlias, а в моём случае просто убрать перед ней символ комментария.
В итоге
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# Ensure that Apache listens on port 80 
Listen 80 
<VirtualHost *:80> 
DocumentRoot "/www/example1" 
ServerName [url]www.example.com[/url]
ServerAlias example.com
 
# Other directives here 
</VirtualHost> 
 
<VirtualHost *:80> 
DocumentRoot "/www/example2" 
ServerName [url]www.example.org[/url]
ServerAlias example.org
 
# Other directives here 
</VirtualHost>
Почему без него не работало - так и не понял, но с ним всё всё стало нормально.
Вопрос: Создание новых окон на javascript

Вот классная статья по созданию новых окон на javascript
Ответ: MikkiMouse,

ТС - бот, нагоняет трафик себе на сайт
Вопрос: Подстановка даты доставки в шаблон письма при создании заказа

Добрый день!

Директор захотел что б в письме клиенту при оформлении нового заказа отображалось примерное время доставки, как на Али.
Собственно в самом шаблоне SALE_NEW_ORDER html код, там выборку IF сделать невозможно.

Как я вижу возможно реализовать эту фичу. Где то есть php фаил, который отвечает за отправку письма при создании нового заказа. В него задать массив по регионам и примерное время доставки. И во время заказа, просто сравнивая регион подставлять приблизительное время доставки.

Возможно ли такое реализовать, как вы думаете?
Ответ: Создать "просто":
Админка - Контент - Highload-блок - кнопка "Добавить Highload-блок"
Вводите название сущности, и имя таблицы.

После создания входите в нее (появится в списке). И нажимаете "Добавить запись" - далее "Добавить пользовательское поле". Создаете, например, числовое поле и текстовое. В первое будете вбивать ИД местоположения, во второе срок доставки.

В принципе, можно создавать и свои типы свойств. Тогда можно будет реализовать, чтобы вводить не ИД, а прям поиском выбирать местоположение, и в списке сделать отображение наименования....

Далее выбор из этого блока - из яндекса
Вопрос: Разность 2-х массивов

Доброго дня суток! Помогите написать скрипт разности 2-х массивов (не множеств). Т.е. допустим имеется 2 массива (не важно упорядочен или нет)
newArr = ['P','P','Q','R'];
oldArr = ['P','P', 'Q','Q','R'];

результатом разности должен быть 'Q'.
или
newArr = ['P','P','Q','R'];
oldArr = ['P','P', 'Q', 'p', 'Q','R', 'p'];

результатом разности должен быть 'Q', 'p', 'p'.

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

P.S. новый массив всегда состоит из элементов старого массива, т.е. там не может быт такого:
newArr = [1,5,4,8];
oldArr = [5,1,9,8,10];

(в новом массиве не может быть числа 4, т.к. его нет в старом массиве)
Ответ: спасибо всем, а если теперь попробовать немного усложнить задачу следующим образом:
все тоже самое, только результатом должен быть 2 массива, которые отличается между собой регистром.
т.е. если
newArr = ['P','P','Q','R'];
oldArr = ['P','P', 'Q', 'p', 'Q','R', 'p'];


результатом будет res1=['Q'] и res2=['p', 'p']
Вопрос: Создание ассоциативного массива с динамическими названиями ключей

Задача создать ассоциативный массив из базы

Как правильно реализовать названия ячейки из базы данных в массиве?

Рабочий пример

Код Javascript
1
Array_2.push({ "param" : result_2[i].param, "attribute": result_2[i].attribute})
а нужно что то типа этого

Код Javascript
1
Array_2.push({ result_2[i].param : result_2[i].param, result_2[i].attribute : result_2[i].attribute})

Пробовал вот так
Код Javascript
1
2
Array_2.push(result_2[i_2].param);
Array_2.result_2[i_2].param=result_2[i_2].param;
Есть варианты?

Добавлено через 30 минут
Сделал костыль)
Ответ: Можно удалить)
Вопрос: Как создать вложенный динамический массив объектов?

Собственно, нужно создать массив объектов, внутри которого, в том числе, есть массив объектов(минимум 1 элемент в массиве), внутри которых также есть массив объектов (минимум 1 элемент в массиве).

Я пытаюсь объявить это таким образом:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
var bla = [{
    ctr1: "",
    ctr2: "",
    blabla: [{
        ctr1: "",
        ctr2: "",
        blablabla: [{
             ctr1: "",
             ctr2: ""
        }]
    }]
}]
Компилятор считает, что в массиве 1 элемент, и создавать второй "на лету" не хочет, как это было бы с простым массивом строковых переменных. Т.е. уже просто bla[1].ctr1 он не понимает.


Что посоветуете?
Ответ: Спасибо, я сначала затупил, когда мне svs171 об этом написал.

В итоге, я, при необходимости создания нового элемента массива, создаю его с пустыми полями:
Javascript
1
2
bla[1] = {ctr1: "", 
                ctr2: ""}; 
а потом уже могу их заполнять по отдельности
Javascript
1
2
3
bla[1].ctr1 = "someValueOrObject";
....
bla[1].ctr2 = "someValueOrObject";
а то, если я делаю так:
Javascript
1
2
3
bla[1] = {ctr1: "someValueOrObject"};
....
bla[1] = {ctr2: "someValueOrObject"};
он полностью переопределяет объект, и уже не находит ctr1.
Вопрос: Perl - хитрое сравнение массивов

Есть массив.
И есть его модифицированная (не обязательно) копия.
Подскажите как сравнить новый и старый массивы, и найти в измененном массиве новые элементы, тех которых не было в старом,  удаленные элементы, те которые остались в старом массиве, но нету в новом, и элементы, которые присутствуют в старом и в новом массивах.
 
Буду премного благодарен за подсказку или готовое решение

----------
Отче Наш, иже еси в моем PC. Да святится имя и расширение Твоё. ENTER.
Ответ: Блин который раз в гугле нахожу свою же тему, которая в который раз выручает