spravovaný soubor: na soubor použitý v poli se nemusí odkazovat
<p>mám nějaké problémy s typem <a href="http://api.drupal.org/api/drupal/developer--topics--forms\_api\_reference.html/7#managed\_file">managed\_file</a> . kdykoli se pokusím upravit a uložit formulář, který v něm obsahuje prvek manag\_file, dojde k chybě: <em> soubor použitý v poli obrázek nemusí být odkazován. </em></p><p>toto je kód, který používám:</p><pre><code>function foo\_form ($form, &amp;$form\_state, $foo) { ... $form['file'] = array( '#type' =&gt; 'managed\_file', '#title' =&gt; t('picture'), '#default\_value' =&gt; (isset($foo-&gt;file-&gt;fid) ? $banner-&gt;foo-&gt;fid : ''), '#upload\_location' =&gt; variable\_get('foo\_upload\_location'), ); if (isset($foo-&gt;file)) { $form['current\_file'] = array( '#type' =&gt; 'hidden', '#value' =&gt; $foo-&gt;file-&gt;fid, ); } ... $form['submit'] = array( '#type' =&gt; 'submit', '#value' =&gt; t('save'), ); return $form; } function foo\_form\_submit ($form, &amp;$form\_state) { $foo = (object)$form\_state['values']; $current\_file\_set = isset($form\_state['values']['current\_file']); if ($form\_state['values']['file'] != 0 &amp;&amp; !$current\_file\_set) { // load the file uploaded in the form. $file = file\_load($form\_state['values']['file']); $file-&gt;status = file\_status\_permanent; file\_save($file); $foo-&gt;file = $file-&gt;fid; } else if ($form\_state['values']['file'] != 0 &amp;&amp; $current\_file\_set) { // if we are uploading a different picture, delete the old one and save the // new one. if not, don't do anything. if ($form\_state['values']['current\_file'] != $form\_state['values']['file']) { file\_delete(file\_load($form\_state['values']['current\_file'])); // load the file uploaded in the form. $file = file\_load($form\_state['values']['file']); $file-&gt;status = file\_status\_permanent; file\_save($file); $foo-&gt;file = $file-&gt;fid; } } else { file\_delete(file\_load($form\_state['values']['current\_file'])); $foo-&gt;file = null; } ... } </code></pre><p>sledoval jsem chybu zpět k funkci <a href="http://api.drupal.org/api/drupal/modules--file--file.module/function/file\_managed\_file\_validate/7">file\_managed\_file\_validate</a> v <em> modulech/file/file.module </em>, ale nevím nic o odkazy na soubory.</p>
<p>řešením je přidání hovoru do <a href="https://api.drupal.org/api/drupal/includes%21file.inc/function/file\_usage\_add/7">file\_usage\_add</a> po uložení souboru. toto volání přidá odkaz na soubor v databázi. funkce <a href="http://api.drupal.org/api/drupal/modules--file--file.module/function/file\_managed\_file\_validate/7">file\_managed\_file\_validate</a> vyhledá odkaz a nespustí chybu.</p><pre><code>file\_usage\_add($file, 'foo', 'foo', $foo-&gt;id); </code></pre><p>to není zdokumentováno v <a href="http://api.drupal.org/api/drupal/developer--topics--forms\_api\_reference.html/7#managed\_file">form api v příkladu manag\_file</a> .</p><p>tento problém je diskutován v otázkách dokumentace drupal dokumentace: <a href="http://drupal.org/node/979158">link</a> </p>
A není ten soubor zrovna nějakým procesem využíván? Vypadá to tak. jak to myslíš uložit? stačí být přihlášen jako root, upravit zmíněny soubor a následně uložit Podle me o zadnou diru. Proste na te strance udelas novy frame, ktery bude odkazovat na adresu "file://....." Kde tech pet tecek predstavuje pozadovanou cestu <p>ve skutečnosti je velmi snadné připojit obrázky k příspěvkům a stránkám přímo v editoru. stačí kliknout na tlačítko přidat obrázek (hned napravo od položky nahrát/vložit) a získat přístup k uživateli, který video nahrál.</p><p>můžete nahrát tolik obrázků, kolik chcete, do galerie médií pro tuto stránku a upravovat meta informace přiřazené každému. poté klikněte na tlačítko "save changes" (uložit změny) a obrázky uložte.</p><p>pokud jde o wordpress, tyto obrázky budou "připojeny" k příspěvku nebo stránce, na které jste je přidali ... není třeba jít do media gallery udělat upload. zobrazí se pouze na příspěvku nebo na stránce, pokud po nahrání kliknete na možnost vložit do pošty.</p><h3>aktualizace</h3><p>pro ty z vás, kteří to dříve nepoužívali ... můžete přistupovat k tomuto uživateli prostřednictvím těchto ikon:</p><p><img src="https://i.stack.imgur.com/p4bqt.png" alt="upload/insert button toolbar"></p><p>samotný uploader se objeví na stejné stránce - tuto funkci nemusíte používat nikam jinam.</p><p><img src="https://i.stack.imgur.com/1f7wd.png" alt="screenshot of the media gallery"></p><p>můžete nahrát více obrázků najednou. buď klikněte na tlačítko "vybrat soubory" a vyberte je jeden po druhém, nebo vyberte svazek (klikněte a táhněte) a všechny se nahrají současně.</p><p><img src="https://i.stack.imgur.com/f0num.png" alt="upload multiple images at once"></p><p>jakmile jsou obrázky nahrány, můžete je spravovat v interní galerii příspěvku nebo stránky. obrázky můžete znovu označit, měnit podrobnosti přiřazené každému z nich a přetahovat je po sobě.</p><p><img src="https://i.stack.imgur.com/e93gp.png" alt="post media gallery"></p> Do rootu disku se běžně nezapisuje. Vytvoř v něm podsložku a zapisuj do ní - pak to bude bez problému. Spouštět prohlížeč s admin právy (=jako správce) je cesta do pekel....![](/Client.Images/smileys/6.gif) Klikni na foto a vlož smaila zo šuflika, kam sis nejaké naukladal. Google/smail Předpokládám, že je to prostředí s cestovními profily (=profily na serveru).   
  
Pokud má mít Adam to samé co teď má Eva ale pak už může cokoliv měnit a neprojeví se to Evě potom stačí kopie profilu (vlastnosti systému, profily uživatelů... přené umístění záleží na verzi klientského OS)  
  
Pokud má mít Adam i Eva jakoby sdílený profil (co změní Adam se změní i Evě) tak to si skoro troufnu říct, že to nejde (anebo to není vůbec dobrý nápad, co když se přihlásí oba najednou z různých PC....)  
  
Ještě je možné vyrobit mandatorní (neměnný) profil, jako vzor tohoto profilu se použije jeden uživatel, ostatní kterým se tento profil nastaví ho vidí pořád stejný a nemůžou v něm nic změnit (resp. vše co změní se po odhlášení ztratí - používá se třeba na sdílené účty ve školách...)  
  
Každopádně kolem profilů to není jen tak, musí se dát pozor na oprávnění... jinak to nefunguje, pokud se kopírují profily na Windows XP (jinde nemám ověřeno) tak je potřeba dodržet pár věcí:  
- profil nesmí být používaný (operaci dělat z jiného administrátorského účtu a po odhlášení kopírovaného profilu nejlépe restartovat, jinak se může stát že ho kopírovat nejde...)  
- ač to zní divně, je třeba mít nastaveno "zobrazovat skryté a systémové soubory", jinak se tyto soubory nezkopírují, profil je potom neúplný (ztratí se některá nastavení...) Skryté soubory? Videl bych to na prava na slozce. Pouzivam osobne XP, ale na nich se musi v moznostech slozky odzaskrtnout pole pouzivat zjednodusene sdileni. Po te pri kazdem nastavovani sdileni slozky pribude zalozka s pravama, kde se da nastavit uzivatel nebo skupina, ktera do slozky muze vstupovat, zapisovat atd. <p>by obecný sdílení souborů a hostování webu fungovat? pokud umístíte soubor do veřejné složky <a href="http://www.dropbox.com/">dropbox</a> a odkazujete jej z webu? viz výměna webového zásobníku aplikací pro <a href="https://webapps.stackexchange.com/questions/638/online-file-storage-services">více poskytovatelů online ukládání souborů</a> .</p><p>ujistěte se, že zaškrtnete <a href="http://kb2.adobe.com/cps/142/tn\_14213.html">zásadu napříč doménami</a> : pokud soubor flash hostovaný v souboru <code>dropbox.com</code> potřebuje přístup k datům z <code>yourdomain.com</code>, potřebujete soubor <code>crossdomain.xml</code> v souboru <code>yourdomain.com</code>, který určuje, že soubory flash z <code>dropbox.com</code> mají přístup k datům.</p>