Лесната работа с изображение си има някои недостатъци. Поставяйки изображение директно в нод използваме статичния път на изображението. В процес на разработка - на локална инсталация, се натрупват доста нодове в които са поставени така нещата. За щастие може с няколко реда код след като качим проекта онлайн да сменим всички пътища на изображенията с нови.
Следващия код ще вземе всички нодове ($query = db_select('node', 'n');) тип Basic page ($query -> condition('type', 'page','=');) и ще замени локалния път (/~sve/site1.com) на изображенията с нов (http://site2.org).
$query = db_select('node', 'n'); $query -> fields('n',array('nid')); $query -> condition('type', 'page','='); $records = $query -> execute(); foreach ($records AS $record) { $node = node_load($record->nid); if (isset($node->body['und'])) { $body = $node->body['und'][0]['value']; $node->body['und'][0]['value'] = str_replace('/~sve/site1.com','<a href="http://site2.org'">http://site2.org'</a>,$body); node_save($node); } }
Забележка: Преди да правите подобни гимнастики се уверете, че познавате много добре съдържанието на въпросните нодове - за да не замените нещо което не би трябвало.
Забележка 2: В случай, че съдържанието е повече и timeout на сървъра прекъсне операцията може да се направи batch процес http://razni-raboti.com/node/19, да се изпълни от конзола или да се ползва VBO.
EDIT:
Коригиране на файловият път за прикачени файлове в друпал 6 при преместване от мултисайт на отделна инсталация:
$q = db_query("SELECT*FROM {files}"); while ($r = db_fetch_array($q)) { $nfp = str_replace('domain_name', 'default', $r['filepath']); if ($nfp) { db_query("UPDATE {files} SET filepath = '%s' WHERE fid = '%d'", $nfp, $r['fid']); } }