Taxonomy_xml - проблемы с parent терминами

Главные вкладки

Аватар пользователя beerman beerman 31 июля 2008 в 9:53

Интересный, на мой взгляд, модуль taxonomy_xml
Дабы не лохматить бабушку, написал скриптик переводящий csv в требуемый xml

$vid = 100;
$tid = 999;
$name = "Категория объявления";
$handle = fopen("board.csv", "r");
if ($handle) {
        echo "<?xml version=\"1.0\" standalone=\"no\"?>\n";
        echo "<!DOCTYPE taxonomy SYSTEM \"taxonomy.dtd\">\n";
        echo "<vocabulary>\n";
        echo "<vid>".$vid."</vid>";
        echo "<name>".$name."</name>";
        echo "<description>description</description>";
        echo "<help>help</help>";
        echo "<relations>0</relations>";
        echo "<hierarchy>1</hierarchy>";
        echo "<multiple>0</multiple>";
        echo "<required>1</required>";
        echo "<tags>0</tags>";
        echo "<module>taxonomy</module>";
        echo "<weight>0</weight>";
        echo "<nodes>autos</nodes>";
        while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
                $tid++;
            $num = count($data);
                echo "<term>";
                        echo "<tid>".$tid."</tid>";
                        echo "<vid>".$vid."</vid>";
                        echo "<name>".$data[0]."</name>";
                        echo "<description>description</description>";
                        echo "<weight>0</weight>";
                        echo "<depth>0</depth>";
                        echo "<parent>0</parent>";
                echo "</term>";
                if ( $num > 1 ) {
                        $parent_tid = $tid;
                        $weight = -7;
                        $tid++;
                    for ($c=1; $c < $num; $c++) {
                                echo "<term>";
                                        echo "<tid>".$tid."</tid>";
                                        echo "<vid>".$vid."</vid>";
                                        echo "<name>".$data[$c]."</name>";
                                        echo "<description>description</description>";
                                        echo "<weight>".$weight."</weight>";
                                        $weight++;
                                        echo "<depth>1</depth>";
                                        echo "<parent>".$parent_tid."</parent>";
                                echo "</term>";
                                $tid++;
                    }
                }
        }
        echo "</vocabulary>";
        fclose($handle);
}

Модуль практически справился с задачей импорта таксономии в базу.
НО! По непонятному алгоритму он вычеркивает некоторые parent термины.
Кто-нибудь сталкивался с этой проблемой?

ЗЫ. csv файл в прикрепленном архиве

ВложениеРазмер
Иконка пакета board.zip786 байт

Комментарии

Аватар пользователя mrvoo mrvoo 29 апреля 2009 в 11:55

ваш скрипт у меня почему-то не работает с Вашим же csv-файлом:

"Parse error: syntax error, unexpected T_STRING in /home....public_html/board/parse.php on line 6"

Аватар пользователя byldozer byldozer 10 ноября 2015 в 11:46

mrvoo wrote:
ваш скрипт у меня почему-то не работает с Вашим же csv-файлом:

"Parse error: syntax error, unexpected T_STRING in /home....public_html/board/parse.php on line 6"


что-то нетак скопировал

Я немного исправил и модифицировал.
При инпорте поставить галочку напротив "Allow duplicate terms"