Autor | Zpráva | ||
---|---|---|---|
wolfik Profil |
#1 · Zasláno: 31. 3. 2014, 15:38:57
Zdravíčko,
nevěděl jsem kam tento dotaz zařadit, protože se skládá z JS, PHP a MySQL. Ale nejvíc mi dělá potíž JS, takže jsem to dal sem. background info: vytvářím svoje foto portfolio ve Wordpressu. Zjistil sem, že pořadí fotek ve fotogalerii se nedá jednoduše změnit. Fotky se ukazují v pořadí, v jakém byly vytvořeny (vloženy do WP), což není ideální. Jediná možnost jak změnit pořadí fotek, je zfalšovat datum vytvoření příspěvku (fotky) přímo v databázi. Čeho chci dosáhnout: 1. vypsat všechny fotky z dané galerie (selectem vypisuji ID a URL k obrázku) 2. pomocí javascriptu (jQuery .Sortable) změnit pořadí fotek 3. uložit do databáze nové (fiktivní) datumy pro jednotlivé fotky (dle ID) Živá ukázka Problém je v kroku 3, nevím jak v JS zjistit pořadí těch DIVů a jak je předat PHP abych je mohl updatovat v databázi. To tvoření fiktivního datumu bych viděl nějak takto: $s++; $time = strtotime('2014-03-01 12:00:00') - $s; $now = date("Y-m-d H:i:s", $time); Nezáleží mi na správnosti datumu, jde mi jen o to aby se mi fotky seřadili správně Budu rád za každou radu či nasměrovaní. |
||
aDAm Profil |
#2 · Zasláno: 31. 3. 2014, 15:56:31
wtf?
Jediná možnost jak změnit pořadí fotek, je zfalšovat datum vytvoření příspěvku (fotky) přímo v databázi. co takhle změnit select z db na konkrétní podmínku? |
||
wolfik Profil |
#3 · Zasláno: 31. 3. 2014, 16:11:55
Asi jsem to špatně formuloval. Vypisuji všechny fotky z dané kategorie (což mám ošetřené podmínkou). Ale to pořadí fotek chci dělat vizuálně, ne jen podle titulku fotky nebo URL obrázku, to je mi k ničemu.
"zfalšovat datum vytvoření příspěvku (fotky) přímo v databázi" Bylo myšleno, že to nejde (jednoduše a přehledně) udělat přímo v administraci WP. Datum příspěvku samozřejmě lze změnit v administraci WP, ale je to velmi komplikované. Představme si situaci, že chci zařadit fotku mezi další dvě fotky... Nejdříve bych si musel zjistit data fotek mezi které chci vložit novou fotku a té pak následně změnit datum tak, aby byl mladší než první fotka a starší než druhá fotka... Nedokážu si představit toto praktikovat u větších galerií, proto jsem zvolil tuto vizuální formu. |
||
aDAm Profil |
#4 · Zasláno: 31. 3. 2014, 17:06:17
poskočil jsem si ale stále nechápu čeho se snažíš docílit, když nejde aplikovat order při selectu tak si přidat nějaký order sloupec ne?
|
||
wolfik Profil |
#5 · Zasláno: 31. 3. 2014, 17:25:38
Už sem pochopil co se mi snažíš říct :-)
"tak si přidat nějaký order sloupec ne" Chtěl sem si vyhnout zásahům přímo ve zdrojovém kódu WP (měnění SQL příkazů a přidávání sloupců do DB). A i kdyby se mi podařilo přidat tam sloupec order (integer), tak bych stále chtěl to pořadí fotek dělat vizuálně (vidět malé náhledy), takže by to bylo úplně stejné až po krok 3, kdy bych do databáze neupdatoval datum, ale číslo. Moje verze mi přijde jednoduší, protože nemusím zasahovat do zdrojového kódu WP a přidávat nový sloupec do DB. |
||
peta Profil |
Ja bych take vytvoril sloupec poradi a ulozil to do db, upravil ten plugin.
Poradi <script> el = document.getElementById('galerie'); divy = el.getElementsByTagName('DIV'); // getElementByClassName('image') / el.getElementsByTagName('IMG'); for (i=0;i<divy.length;i++) { alert(div.id.substr(3)); // pokud si do divu ulozis id 123 z db jako <div id="img123"> / <img id="img123"> ... } ... </script> Ale, ty si to muzes ocislovat. PHP posila seznam obrazku, ktery si das do pole a pak manipulujes jen s tim polem. seznam = ['aa.jpg', 'bb.jpg', 'cc.jpg', 'dd.jpg', 'ee.jpg'] poradi = [5,2,3,1]; "Moje verze mi přijde jednoduší" - s tim bych nesouhlasil, vysledek je vzdycky stejny, musis zasahovat do db. Upravovat v puvodnim kodu bude treba jen jeden sql prikaz a to budes muset udelat nejspis taky. |
||
wolfik Profil |
#7 · Zasláno: 1. 4. 2014, 09:45:44
peta:
Díky, to je přesně ono, co jsem potřeboval. Děkuji. |
||
Časová prodleva: 10 let
|
0