Drag'n'Drop (Ajax) w PF v7
|
pixiproject |
Dodany dnia 26.02.2009 21:13:25
|

Przedszkolak

Postów: 28 Ostrzeżeń: 1
Data rejestracji: 08.02.2009 14:09
Złamana licencja
|
Czy istniej jakakolwiek mo?liwo?? zastosowania tego http://mintajax.p...ag-n-Drop/ w PHP-Fusion v7. Mam na my?li, ?e panele na stronie mog?yby si? porusza? tak jak w linku. Je?li istnieje taka mo?liwo?? prosi?bym o jakie? wskazówki. Z góry dzi?kuj?.
PW od moderatora:
- Przeniesienie tematu - hoopak 26.02 - 21:23
|
|
|
|
W?cibski Go?? |
Dodany dnia 06.09.2025 00:39:49
|
Pan Kontekstualny
Postów: n^x
Data rejestracji: Zawsze
|
|
IP: localhost |
|
|
Pieka |
Dodany dnia 26.02.2009 21:58:53
|


Postów: 19887 Pomógł: 767
v7.02.03 Data rejestracji: 23.02.2005 18:12
|
Nie ma potrzeby mieszania w to jakiejkolwiek odmiany Ajaxa, skoro mamy jQuery do dyspozycji. Idealnym przykladem jest strona testowa Wooyi: http://fusionv7.2.... Tylko zawalu nie dostan przy przegladaniu
Jestem jaki jestem 
|
|
|
|
pixiproject |
Dodany dnia 26.02.2009 22:33:49
|

Przedszkolak

Postów: 28 Ostrzeżeń: 1
Data rejestracji: 08.02.2009 14:09
Złamana licencja
|
Heh. Strona --> ?wietna, przynajmniej jesli chodzi o zastosowanie jQuery. Te zwijanie i chowanie paneli te? genialne. Tylko czy istnieje szansa na stworzenie jakiego? topic'u, w którym by?oby opisane co i jak ? |
|
|
|
DJPromo |
Dodany dnia 26.02.2009 23:41:44
|

Bywalec

Postów: 630 Pomógł: 41
v7.02.07 Data rejestracji: 13.06.2006 18:51
|
Genialne Czy jest mo?liwo??, ?eby kto? opisa? jak to albo mniej wi?cej nakierowa? jak zabra? si? za napisanie tego
Pomog?em Kliknij Pomóg?
?ycie to chwila zbyt krótka aby móc .... ?ycie to chwila / trzeba patrze? i podziwia?  
|
|
|
|
ELO320 |
Dodany dnia 27.02.2009 06:11:38
|

Pocz?tkuj?cy

Postów: 152 Ostrzeżeń: 2
Data rejestracji: 28.04.2007 18:08
|
Powiem ?e to niez?y bajer. xD Sam chcia?bym mie? co? takiego na w?asnej stronie Ma?o co mi ga?y nie wylaz?y jak to zobaczy?em ;p |
|
|
|
pixiproject |
Dodany dnia 27.02.2009 08:21:57
|

Przedszkolak

Postów: 28 Ostrzeżeń: 1
Data rejestracji: 08.02.2009 14:09
Złamana licencja
|
Na stronie mintAjax jest opisane co i jak. Tylko, ?e mam problemy z podpi?ciem tego pod PHP-FUSION. No ale skoro mo?na zrobi? to samo z jQuery - pozostaje tylko czeka? a? Wooya podzieli si? z nami swoim kodem xD. |
|
|
|
Artur-M |
Dodany dnia 14.03.2009 10:53:28
|

Pocz?tkuj?cy

Postów: 225 Pomógł: 5 Ostrzeżeń: 4
Data rejestracji: 16.12.2008 17:42
|
To jak Wooya? O?wiecisz nas instrukcj? na Drag&Drop w panelach?
Edytowane przez Artur-M dnia 26.03.2009 11:00:52
|
|
|
|
Wooya |
Dodany dnia 25.03.2009 17:07:53
|

Zaawansowany

Postów: 1449 Pomógł: 22
Data rejestracji: 30.01.2005 15:40
|
Ok. No to po kolei :)
Jak pozwoli? na dowolne uk?adanie paneli na stronie.
Uwaga! Na przyk?adzie domy?lnego theme z PFv7 czyli Gillette. W innych themach analogicznie.
1) pobieramy jQuery UI dla jQuery 1.2.6 ze strony http://jqueryui.com i wgrywamy plik jquery-ui-1.5.3.custom.min.js do katalogu themes/Gillete (ja go wgra?em pod nazw? jquery-ui.min.js)
2) otwieramy plik themes/Gillette/theme.php i dodajemy za:
require_once INCLUDES."theme_functions_include.php";
kod:
require_once INCLUDES."output_handling_include.php";
add_to_head("
<script type='text/javascript' src='".THEME."jquery-ui.min.js'></script>
<script type='text/javascript'>
$(document).ready(function(){
$('#left_panels').sortable({
connectWith: ['#right_panels'],
placeholder: 'placeholder',
revert: true,
opacity: 0.75,
scroll: true,
zIndex: 2000,
handle: '.scapmain',
tolerance: 'pointer',
scroll: false,
distance: 20,
forcePlaceholderSize: true
}).css('cursor', 'default');
$('#right_panels').sortable({
connectWith: ['#left_panels'],
placeholder: 'placeholder',
revert: true,
opacity: 0.75,
scroll: true,
zIndex: 2000,
handle: '.scapmain',
tolerance: 'pointer',
scroll: false,
distance: 20,
forcePlaceholderSize: true
}).css('cursor', 'default');
});
</script>");
3) odnajdujemy w pliku themes/Gillette/theme.php funkcje render_page() i modyfikujemy linijki odpowiedzialne za sta?e LEFT i RIGHT:
if (LEFT) { echo "<td class='side-border-left' valign='top'><ul id='left_panels'>".LEFT."</ul></td>"; }
if (RIGHT) { echo "<td class='side-border-right' valign='top'><ul id='right_panels'>".RIGHT."</ul></td>"; }
4) odnajdujemy w pliku themes/Gillette/theme.php funkcje openside() oraz closeside() i modyfikujemy j? jak poni?ej:
function openside($title, $collapse = false, $state = "on") {
global $panel_collapse; $panel_collapse = $collapse;
echo "<li id='".$boxname."'>\n";
echo "<table cellpadding='0' cellspacing='0' width='100%'>\n<tr>\n";
echo "<td class='scapmain-left'></td>\n";
echo "<td class='scapmain'>$title</td>\n";
if ($collapse == true) {
$boxname = str_replace(" ", "", $title);
echo "<td class='scapmain' align='right'>".panelbutton($state, $boxname)."</td>\n";
}
echo "<td class='scapmain-right'></td>\n";
echo "</tr>\n</table>\n";
echo "<table cellpadding='0' cellspacing='0' width='100%' class='spacer'>\n<tr>\n";
echo "<td class='side-body'>\n";
if ($collapse == true) { echo panelstate($state, $boxname); }
}
function closeside() {
global $panel_collapse;
if ($panel_collapse == true) { echo "</div>\n"; }
echo "</td>\n</tr>\n</table>\n";
echo "</li>\n\n";
}
5) do pliku themes/Gillete/styles.css dodajemy:
#left_panels,#right_panels li {
list-style-type: none;
margin: 0px;
padding: 0px;
width: 175px;
}
I to wszytko :) Mo?emy teraz uk?ada? sobie panele na stronie jak chcemy ;)
PS1: trza by jeszcze dopisa? funkcj? w JS zapami?tuj?c? w cookie a nast?pnie przywracaj?c? po?o?enie paneli z cookie, ale... mi sie nie chce :P Mo?e kiedy? ;)
PS2: nie do ko?ca prawid?owo wygl?daja panele po prawej, ale to kwestia zabawy z CSS...
Przyk?adowe dzia?anie powy?szych modyfikacji w skórce Gillette na stronie http://fusionv7.2...l/news.php
Edytowane przez Wooya dnia 25.03.2009 17:11:04
... Pomagam tylko przy najnowszych wersjach PHP-Fusion ...

|
|
|
|
Artur-M |
Dodany dnia 26.03.2009 10:57:46
|

Pocz?tkuj?cy

Postów: 225 Pomógł: 5 Ostrzeżeń: 4
Data rejestracji: 16.12.2008 17:42
|
Ok, wszystko fajnie ale...
1. Czy tak mo?na, ?e jak po np. lewej stronie nie ma ju? ?adnych paneli, to cz??? z newsami si? rozci?ga i strona jest 1-stronna? A jak chcemy panel wróci? na lew? stron?, to kolumna z newsami automatycznie si? zmniejsza?
2. Czy mo?na oszuka? wygl?d strony i ustawi? jej uk?ad na: kolumna z newsami, kolumna z panelami, kolumna z panelami? Czyli efekt podobny do tego: http://www.kibice...
Edytowane przez Artur-M dnia 26.03.2009 11:07:43
|
|
|
|
Wooya |
Dodany dnia 26.03.2009 13:11:31
|

Zaawansowany

Postów: 1449 Pomógł: 22
Data rejestracji: 30.01.2005 15:40
|
Pewnie, ?e mo?na. Kwestia odpowiedniego kodu CSS. Czy wszystko mam za was robi?? Troch? pomy?le? i zrobi? sobie samemu!
... Pomagam tylko przy najnowszych wersjach PHP-Fusion ...

|
|
|
|
Maclaw |
Dodany dnia 25.07.2009 16:42:02
|

Przedszkolak

Postów: 22 Pomógł: 2 Ostrzeżeń: 1
Data rejestracji: 09.05.2009 19:16
Złamana licencja
|
I jak z t? fukcj? z cookie? Napisa?by kto?? |
|
|
|
bartek124 |
Dodany dnia 25.07.2009 21:04:25
|

Weteran

Postów: 3264 Pomógł: 236
v7.02.06 Data rejestracji: 26.05.2007 12:25
|
Mo?e sam spróbujesz. Zobacz a accordion_navigation_panel, jak to jest zrobione. Dodatkowo masz tam odpowiedni plugin jQuery obs?uguj?cy cookie przez JS.
Nie pomagam na komunikatorach oraz PW!
|
|
|
|
szyty |
Dodany dnia 28.09.2009 22:04:11
|

Przedszkolak

Postów: 6 Ostrzeżeń: 1
Data rejestracji: 26.04.2009 18:59
|
Ja mam troch? inny problem:
Wyskakuje mi
Notice: Undefined variable: boxname in /home/szyty/domains/7legion.info/public_html/themes/Lineage2/theme.php on line 145
Oto zawarto?? pliku w tym miejscu (funkcja openside() ):
GeSHi: PHPfunction openside($title, $collapse = false, $state = "on") { global $panel_collapse; $panel_collapse = $collapse; echo "<li id='".$boxname."'>\n"; echo "<table cellpadding='0' cellspacing='0' width='100%'>\n<tr>\n"; echo "<td><img src='".THEME."/images/side-left.gif' align='left'></td>\n"; echo "<td class='scapmain' align='center' width='100%'>$title</td>\n"; if ($collapse == true) { echo "<td class='scapmain' align='right'>".panelbutton($state, $boxname)."</td>\n"; } echo "<td><img src='".THEME."/images/side-right.gif' align='right'></td>\n"; echo "</tr>\n</table>\n"; echo "<table cellpadding='0' cellspacing='0' width='100%'>\n<tr>\n"; echo "<td class='side-body'>\n"; if ($collapse == true) { echo panelstate($state, $boxname); } }
Zinterpretowano w sekund: 0.021, wykorzystano GeSHi 1.0.8.10
Widz?, ?e na stronie http://fusionv7.2...l/news.php
te? to nie za dobrze dzia?a bo wyskakuje podobny error.
P.S.
Moja strona równie? troch? si? rozje?d?a.
Edytowane przez szyty dnia 28.09.2009 22:07:33
|
|
|
|
Artur-M |
Dodany dnia 30.09.2009 21:34:29
|

Pocz?tkuj?cy

Postów: 225 Pomógł: 5 Ostrzeżeń: 4
Data rejestracji: 16.12.2008 17:42
|
U mnie wyst?puje dok?adnie ten sam b??d. Co jest nie tak? |
|
|
|
adi2 |
Dodany dnia 29.07.2010 20:14:23
|

Przedszkolak

Postów: 82 Ostrzeżeń: 4
v7.02.03 Data rejestracji: 20.01.2010 15:46
|
Hmmm u mnie to samo tylko, ze w linii 144.
Moja linia 144:
echo "<li id='".$boxname."'>\n";
Panelami te? porusza? nie mog? ;/
Edytowane przez Pieka dnia 29.07.2010 22:18:00
|
|
|
|
Gander |
Dodany dnia 29.07.2010 23:15:23
|

Bywalec

Postów: 720 Pomógł: 37
Data rejestracji: 22.05.2005 23:17
|
To oznacza ?e zmienna $boxname jest niezdefiniowana w momencie gdy próbuje si? wykorzysta? jej zawarto??. W funkcji widocznej w po?cie @szyty-ego wida? ?e ta zmienna nie zosta?a zdefiniowana (co jest dziwne skoro ma by? warto?ci? atrybutu id w znaczniku HTML). Najpewniej mia?a to by? jako? zmodyfikowana nazwa panelu ze zmiennej $title, ale twórca kodu zapomnia? to wstawi?. |
|
|
|
adi2 |
Dodany dnia 30.07.2010 07:29:56
|

Przedszkolak

Postów: 82 Ostrzeżeń: 4
v7.02.03 Data rejestracji: 20.01.2010 15:46
|
To poprawi? mi by to kto? albo na jak? zmienn? mam poprawi?? |
|
|
|
czarny_plock |
Dodany dnia 20.03.2011 17:28:59
|

Przedszkolak

Postów: 15 Ostrzeżeń: 2
Data rejestracji: 06.01.2011 14:19
|
Te? mam ten problem. :/
Notice: Undefined variable: boxname in /var/www/virtual/3887276.cba.pl/fusion/themes/g r e y/theme.php on line 144
Kliknij i zaczekaj na załadowanie kodu ...
Wiadomo?? doklejona:
Pomo?e kto??
Edytowane przez czarny_plock dnia 21.03.2011 15:07:42
|
|
|
|
maad |
Dodany dnia 02.06.2011 19:46:12
|

Pocz?tkuj?cy

Postów: 132 Ostrzeżeń: 2
Data rejestracji: 20.05.2007 19:45
|
Fajny temat a nikt nie chce podjac sie rozwiazania problemu. |
|
|
|
walus16 |
Dodany dnia 10.09.2012 18:42:07
|

Przedszkolak

Postów: 9
Data rejestracji: 22.06.2010 18:10
|
Witam, usiad?em dzisiaj do komputera z my?l? i? w PHP-Fusion v7.02 przyda?aby si? zmiana wygl?du zarz?dzania panelami. Dzia?a ju? przenoszenie paneli tylko nie wiem jak zrobi? zapisywanie efektów przenoszenia do bazy MySQL. Pomo?ecie?
panels.php
<?php
require_once "../maincore.php";
require_once THEMES."templates/admin_header.php";
echo "<script type='text/javascript'>
$(document).ready(function() {
$('.dragbox').each(function(){
$('.dragbox').mouseover(function(){
$(this).find('.dragbox-content').toggle();
})
$('.dragbox').mouseout(function(){
$(this).find('.dragbox-content').toggle();
})
.click(function(){
updateWidgetData();
})
.end()
});
$('.column').sortable({
handle : 'h2',
placeholder: 'placeholder',
connectWith: '.column',
forcePlaceholderSize: true,
opacity: 0.4,
start: function(event, ui){
if($.browser.mozilla || $.browser.safari)
$(ui.item).find('.dragbox-content').toggle();
},
stop: function(event, ui){
ui.item.css({'top':'0','left':'0'}); //Opera fix
if(!$.browser.mozilla && !$.browser.safari)
updateWidgetData();
}
})
.disableSelection();
});
function updateWidgetData(){
var items=[];
$('.column').each(function(){
var columnId=$(this).attr('id');
$('.dragbox', this).each(function(i){
var item={
id: $(this).attr('id'),
order : i,
column: columnId
};
items.push(item);
});
});
var sortorder={ items: items };
// Tutaj powinien zanale?? si? kod do zapisu w bazie danych MySQL.
}
</script>";
if (isset($_GET['action']) && $_GET['action'] == "refresh") {
$i = 1;
$result = mysql_query("SELECT * FROM ".DB_PANELS." WHERE panel_side='1' ORDER BY panel_order");
while ($data = mysql_fetch_assoc($result)) {
$result2 = mysql_query("UPDATE ".DB_PANELS." SET panel_order='$i' WHERE panel_id='".$data['panel_id']."'");
$i++;
}
$i = 1;
$result = mysql_query("SELECT * FROM ".DB_PANELS." WHERE panel_side='2' ORDER BY panel_order");
while ($data = mysql_fetch_assoc($result)) {
$result2 = mysql_query("UPDATE ".DB_PANELS." SET panel_order='$i' WHERE panel_id='".$data['panel_id']."'");
$i++;
}
$i = 1;
$result = mysql_query("SELECT * FROM ".DB_PANELS." WHERE panel_side='3' ORDER BY panel_order");
while ($data = mysql_fetch_assoc($result)) {
$result2 = mysql_query("UPDATE ".DB_PANELS." SET panel_order='$i' WHERE panel_id='".$data['panel_id']."'");
$i++;
}
$i = 1;
$result = mysql_query("SELECT * FROM ".DB_PANELS." WHERE panel_side='4' ORDER BY panel_order");
while ($data = mysql_fetch_assoc($result)) {
$result2 = mysql_query("UPDATE ".DB_PANELS." SET panel_order='$i' WHERE panel_id='".$data['panel_id']."'");
$i++;
}
}
if ((isset($_GET['action']) && $_GET['action'] == "delete") && (isset($_GET['panel_id']) && isnum($_GET['panel_id']))) {
$data = mysql_fetch_assoc(mysql_query("SELECT * FROM ".DB_PANELS." WHERE panel_id='".$_GET['panel_id']."'"));
$result = mysql_query("DELETE FROM ".DB_PANELS." WHERE panel_id='".$_GET['panel_id']."'");
$result = mysql_query("UPDATE ".DB_PANELS." SET panel_order=panel_order-1 WHERE panel_side='$panel_side' AND panel_order>='".$data['panel_order']."'");
redirect(FUSION_SELF.$aidlink);
}
if ((isset($_GET['action']) && $_GET['action'] == "setstatus") && (isset($_GET['panel_id']) && isnum($_GET['panel_id']))) {
$result = mysql_query("UPDATE ".DB_PANELS." SET panel_status='".intval($_GET['status'])."' WHERE panel_id='".$_GET['panel_id']."'");
}
opentable($locale['400']);
?>
<div class='column tbl2 col1' id='column2'>
<?php $result = mysql_query("SELECT * FROM ".DB_PANELS." WHERE panel_side='2' ORDER BY panel_order");
while ($data = mysql_fetch_assoc($result)) { ?>
<div class='dragbox' id='item<?= $data['panel_id'] ?>'>
<h2>
<div class='dragbox-name-content'><img src='<?= ADMIN ?>images/drag.png' alt='' /> <?= $data['panel_name'] ?></div>
<div class='dragbox-content' style='display:none;'>
<a href='panel_editor.php<?= $aidlink ?>&action=edit&panel_id=<?= $data['panel_id'] ?>&panel_side=1' title='<?= $locale['434'] ?>' class='tip'><img src='<?= THEMES ?>templates/images/edit.png' alt='<?= $locale['434'] ?>' /></a>
<?php if ($data['panel_status'] == 0) { ?>
<a href='<?= FUSION_SELF.$aidlink ?>&action=setstatus&status=1&panel_id=<?= $data['panel_id'] ?>' title='<?= $locale['435'] ?>' class='tip'><img src='<?= THEMES ?>templates/images/on.png' alt='<?= $locale['435'] ?>' /></a>
<?php } else { ?>
<a href='<?= FUSION_SELF.$aidlink ?>&action=setstatus&status=0&panel_id=<?= $data['panel_id'] ?>' title='<?= $locale['436'] ?>' class='tip'><img src='<?= THEMES ?>templates/images/off.png' alt='<?= $locale['436'] ?>' /></a>
<?php } ?>
<a href='<?= FUSION_SELF.$aidlink ?>&action=delete&panel_id=<?= $data['panel_id'] ?>&panel_side=<?= $data['panel_side'] ?>' onclick='return confirm('<?= $locale['440'] ?>');' title='<?= $locale['437'] ?>' class='tip'><img src='<?= THEMES ?>templates/images/delete.png' alt='<?= $locale['437'] ?>' /></a>
</div>
<div class='clear'></div>
</h2>
</div>
<?php } ?>
</div>
<div class='column tbl2 col2' id='column1'>
<?php $result = mysql_query("SELECT * FROM ".DB_PANELS." WHERE panel_side='1' ORDER BY panel_order");
while ($data = mysql_fetch_assoc($result)) { ?>
<div class='dragbox' id='item<?= $data['panel_id'] ?>'>
<h2>
<div class='dragbox-name-content'><img src='<?= ADMIN ?>images/drag.png' alt='' /> <?= $data['panel_name'] ?></div>
<div class='dragbox-content' style='display:none;'>
<a href='panel_editor.php<?= $aidlink ?>&action=edit&panel_id=<?= $data['panel_id'] ?>&panel_side=1' title='<?= $locale['434'] ?>' class='tip'><img src='<?= THEMES ?>templates/images/edit.png' alt='<?= $locale['434'] ?>' /></a>
<?php if ($data['panel_status'] == 0) { ?>
<a href='<?= FUSION_SELF.$aidlink ?>&action=setstatus&status=1&panel_id=<?= $data['panel_id'] ?>' title='<?= $locale['435'] ?>' class='tip'><img src='<?= THEMES ?>templates/images/on.png' alt='<?= $locale['435'] ?>' /></a>
<?php } else { ?>
<a href='<?= FUSION_SELF.$aidlink ?>&action=setstatus&status=0&panel_id=<?= $data['panel_id'] ?>' title='<?= $locale['436'] ?>' class='tip'><img src='<?= THEMES ?>templates/images/off.png' alt='<?= $locale['436'] ?>' /></a>
<?php } ?>
<a href='<?= FUSION_SELF.$aidlink ?>&action=delete&panel_id=<?= $data['panel_id'] ?>&panel_side=<?= $data['panel_side'] ?>' onclick='return confirm('<?= $locale['440'] ?>');' title='<?= $locale['437'] ?>' class='tip'><img src='<?= THEMES ?>templates/images/delete.png' alt='<?= $locale['437'] ?>' /></a>
</div>
<div class='clear'></div>
</h2>
</div>
<?php } ?>
</div>
<?
closetable();
require_once THEMES."templates/footer.php";
?>
PW od moderatora:
- Przeniesienie posta - bogdan 10.09.2012 18:42
|
|
|