lapozás

familyxx képe

Helló Mindenki!

Most készítek egy oldalt (www.videkiturizmus.hu). Van benne egy szálláshely kereső rész ahol különböző feltételek alapján lehet keresni mysql adatbázisból. A lekérdezés találatait 10-essével szeretném megjeleníteni, tehát szeretnék lapozást építeni az oldalba. Megnéztem már pár helyen, hogy hogy lehetne ezt megvalósítani, de elég tudatlan vagyok. Tudna valaki esetleg segíteni?

Üdv,
Peti

Drupal verzió: 
Fórum: 
tolmi képe

1) Használod a Views modult.
2) Használod a Taxonomy modult és a különböző feltételek szerint adsz szótárakat és benne termeket (lásd EdgarPe tegnapi előadását)
Bónusz) Saját modult írsz.

0
0

--
Tolmács Márk
Drupal bandita

Nagy Gusztáv képe

Mert ez a válasz csak akkor jó, ha az adataid node-okban vannak, és nem a saját moduloddal viszed be/olvasod ki az adatokat.

0
0

Nagy Gusztáv

familyxx képe

Az adatok felvitelét és a lekérdezést is egy általam írt php kód működteti. Ezek szerint ha jól értelmezem, más megoldást kell keresnem.
Írtam php-ban egy kódot, ami a lapozást valósítaná meg, de nem működik. Nem vagyok tapasztalt php programozó, légyszi ha tudtak segítsetek.

#################################################################################
### Ha nincs feltétel ami alapján lekérdezhetne, megjeleníti a kereső-űrlapot ###
#################################################################################
if ((gettype($_POST['megyeszerint'])=="NULL" || $_POST['megyeszerint']=="semmi") && gettype($aktualisOldal=="NULL")){   
 
echo"<table width='400' border='0' align='center'>
	<tr>
		<td><h3 align='center'>SZÁLLÁSHELY KERESÉS</h3>
		</td>
		<td><img src='/karbantart/nagyito.jpg' align='right'>
		</td>
	</tr>
</table><br>";
include("./karbantart/urlap_keres.php");}
#################################################################################
#################################################################################

###################################
### Ha van keresési feltétel... ###
###################################

//Úgy oldom meg, hogy továbblépésnél ne lépjen vissza az első részbe, hogy az url címben újra átadom a feltételeket
 
if (($_POST['megyeszerint']!="" && $_POST['megyeszerint']!="semmi")|| $result!=""){
 
//kapcsolódik a db-hoz
  $kapcsolat = mysql_connect("localhost", "videki_peter", "Koroknai");
  if (!kapcsolat)
    die("Nem lehet csatlakozni a MYSQL kiszolgalohoz");
 
  $adatbazis="videki_proba";
  mysql_select_db($adatbazis) or die ("Nem lehet megnyitni a következö adatbázist: $adatbazis");
 
 
 
//beállítja, hogy milyen feltételek szerint történjen a lekérdezés
 
  if($_POST['megyeszerint']!="semmi") 
  {
    $result.=" and megye='".$_POST['megyeszerint']. "' "; 
  }  
  if($result!="")
  {
    $result=" where ". substr($result,4) ."and stat!='Uj ugyfel'";
  }
 
 
 
//lapozás
 
  //találatok és oldalak száma
  function hanyTalalat($feltetel){
    $lekerdez = "SELECT count(*) FROM szallashely $where";
		$meghiv = mysql_query($lekerdez);
		$row = mysql_fetch_row($meghiv);
		return $row[0];
	}
 
  $lapPerOldal=10;
  $osszesTalalat=hanyTalalat($result);
 
  $oldalakSzama = ceil($osszesTalalat/$lapPerOldal);
 
 
  //aktuális oldal
  if (!isset($aktualisOldal)){
    $aktualisOldal=1;
  }
 
 
  //számok kiíratása
    //ha nincs találat
    if ($oldalakSzama==0){
      echo "Nincs találat<br>";
    }
    //ha csak egy oldal van
    else if ($oldalakSzama==1){
      echo "Találatok száma: 1 találat 1 oldalon<br>";
      echo 1;
    }
    //ha több találat van
    else{
      echo "Találatok száma: $osszesTalalat találat $oldalakSzama oldalon";
      for($i=0; $i<$oldalakSzama; $i++){
          if($i==$aktualisOldal-1){ //így nem lehet az aktuális oldal számára kattintani
            echo $aktualisOldal;
          }
          else{
            echo "<a href=\"6?aktualisOldal=".($i+1)."?result=$result\"><font color=#19528b size=1>".($i+1)."</font></a><font color=#19528b size=1>&nbsp;</font>";
          }
      }
    }
 
    echo "Az aktuális oldal: $aktualisOldal";
 
}
###################################
###################################  

Ez annyit csinálna, hogy kiírja az oldalszámokat és ha pl rákattintok a kettes számra, akkor kíírja, hogy "az aktuális oldal: 2". Az első oldalnál még működik is, de amint a 2-esre kattintok, visszajön a kereső űrlap.
Nem tudom mi lehet a baja, biztos valami olyan dolog amihez nincs megfelelő tudásom. Ezért folyamatosan olvasgatok, tanulgatok, de még nem találtam megoldást.

0
0
aboros képe

többször is felmerül ilyesmi kérdés és soha nem értem, hogy: miért választja valaki keretrendszernek a drupalt, ha utána nem használja a szolgáltatásait, hanem saját php kóddal készít saját űrlapokat saját táblákban tárol saját struktúrában (node rendszer? taxonomy?) saját megjelenítő kódot ír hozzá (dört égetett td/td vs. theme layer) ... miért kell a drupal akkor?

jelen példában nem világos, hogy miért nem cckval készít egy típust (vagy bárhányat) meg készít halmazokat (taxonomy) aztán pakolja a halmazokba a node-okat és valamilyen listázást csinál (automatikus lapozóval, váó!) .. akár views -al, akár saját modulba saját űrlappal saját szűrést

miért nem használod a drupalt, ha már azt választottad?
ismered a cck és taxonomy modulokat?
járatos vagy a sminkrendszerben?
használd őket!
vagy ismerd meg, tetszeni fog!

0
0

-
clear: both;

familyxx képe

Igérem meg fogom tanulni a drupal sok kis okosságának használatát, de addig is nincs lehetőség arra, hogy amit megírtam az működjön? Szeretném minél hamarabb elindítani az oldalt, utána majd ráérek kibogarászni, hogy milyen funkciót milyen modullal érdemes inkább megvalósítani

0
0
aboros képe

illetve biztos van.

én nem fogom tudni megmondani neked a hogyant, mert nem csinálok ilyeneket. tényleg azérft szóltam csak hozzá, mert nem értem, hogy ha drupalban csak ilyen megoldásokkal tudod megvalósítani amit akarsz, akkor miért ragaszkodsz a drupalhoz. (az utóbbi időben ez sokadik ilyen eset volt, rajtad csapódott le, bocs)

ha azzal megy el az időd, hogy a saját logikád és égetett megoldásod ráerőltesd a drupalra, akkor inkább ne használd. ez jótanács, nem cinkelés!

<?php
$kapcsolat = mysql_connect("localhost", "videki_peter", "Koroknai");
  if (!kapcsolat)
    die("Nem lehet csatlakozni a MYSQL kiszolgalohoz");
 
  $adatbazis="videki_proba";
  mysql_select_db($adatbazis) or die ("Nem lehet megnyitni a következö adatbázist: $adatbazis");
?>

amennyire én tudom, ilyet nem csináluk drupalban soha még akkor se, ha saját táblában tároljuk az adatainkat. de ez csak egy példa, sok mást is kiemelhettem volna az idézett kódból. (például nem csinálunk külön saját lapozót és nem égetünk táblázatot, ilyenekre van a sminkréteg, ha jól értem az anatómmiát)

így nehéz segíteni, mert a megközelítés, amiben akarod hogy segítsünk teljesen hibás és rossz, mondhatni "drupal-idegen". ha tippelnem kéne arra tippelnék, hogy ezt itt nem fogja neked megoldani senki.

0
0

-
clear: both;

familyxx képe

Azért ragaszkodtam a drupal-hoz, mert nem tudtam volna megírni az oldal szerkezetét...
Szívesen megtanulnám az egyes modulok használatát, ha tudnám milyen modul kell:
-adatbázis kezeléshez
-űrlapok létrehozásához (arról nem is beszélve hogy el se tudom képzelni, hogy miként adja át egy modul az űrlapban bevitt adatokat egy mások oldal számára)
-adatbázisból lekérdezett adatok megjelenítéséhez (meghatározott formátumban)...
-lapozáshoz
(ha még eszembe jut valami akkor megírom)
Légyszi segíts nekem ezekben, meg hogy hogyan kell az ezekhez szükséges modulokat használni. Esetleg léteznek-e a moduloknak magyarításai?
Továbbá lövésem sincs mit kellene használni táblázatok helyett és nem tudom mit jelent az hogy sminkréteg...
Légyszi segíts ha tudsz!
Előre is köszi

0
0
nevergone képe

Szerintem legyen az, hogy alaposabban beleásod magad a Drupal lelkivilágába, kipróbálgatsz egy valag modult (Webform, Views, CCK, ilyesmi), hogy melyik mit adhat neked.
Aztán nekiugrasz ennek (és ne gyere azzal, hogy nem tudsz angolul), meg ennek, meg ennek...
Vagy ha sürgős, elmész a munkaközvetítőbe, és fizetsz valakinek, hogy megcsinálja.

0
0
familyxx képe

értem, és szívesen nekiugrok a kipróbálgatásnak, meg a kínlódásnak, csak attól félek, hogy szinte teljesen elölről kell csinálnom az egészet, pedig fontos lenne, hogy minél hamarabb működőképes legyen az oldal

0
0
nevergone képe

Mivel az eddigi rendszered nem a Drupal szellemében készült ezért valószínűleg (szinte) teljesen újra kell írnod mindent, de erre számíthattál is. A Drupal itt úgy jelenik meg, mint fejlesztési platform, amelynek sajátos belső működése, rendszere van.

0
0
aboros képe

úgy tűnik, hogy az alaprendszer használatával és képességeivel sem vagy tisztában. ha az idődet amit eddig abba öltél, hogy megpróbáld a saját megoldásod beleerőszakolni a drupalba arra fordítottad volna, hogy megtanuld az alapokat, sokkal előrébb tartanál.

az nem jó út, hogy összefércelem valahogy, aztán majd utólag kibogarászom, hogyan lehetett volna 'szabályosan' megcsinálni drupalban. utólag elég nehéz lesz a mostani saját megoldásodat drupalosítani, mikor már egy futó oldalról van ráadásul szó.

szükséged lesz:
egyedi tartalom típus(ok?)ra -> cck
ezeket különböző szempontok szerint akarod majd csoportosítani -> taxonomy (core modul)
végül ezekből szűrhető listákat, táblázatokat akarsz majd előállítani -> views
egyedi megjelenést szeretnél az oldaladnak -> sminkelés

ezekkel kellene megismerkedned, nem boszorkányvudu, tömve van a net jobbnál-jobb leírásokkal. persze nem árt, ha tudsz angolul. minél jobban, annál jobb. :)

http://drupal.hu/tippek/tartalomszervezes1
http://drupal.hu/tippek/tartalomszervezes2
kezdetnek mondjuk.

ennél többet ezen a szinten most nem tudok segíteni, kezd el és ha konkrét kérdésed van, amire sehogyse találod a választ, kérdezz, szívesen segítünk!

0
0

-
clear: both;

crt képe

Amire Neked szükséged van, azok nem modulok, hanem a modulfejlesztés eszközei. Ezekről a modulfejlesztők kézikönyvében és az API oldalon találsz sok-sok példát, információt.
A drupal sok függvényt és hurkot biztosít a fejlesztéshez, ezek használatával nem kell törődnöd pl. az adatbáziskapcsolatokkal, űrlapküldésekkel, a megfelelő hurokban rendelkezésedre állnak az átadott adatok.
Továbbá ezeknek a függvényeknek a használata megóv a fenti példában is már említett sql injection sebezhetőségektől.

A táblázatokat továbbra is használhatod az adatok megjelenítéséhez, de azt egy különálló ún. theme hurokban célszerű megvalósítani. Így a megjelenést a sminkekben felül tudod definiálni, a kinézet változtatásakor nem kell a modul kódjában nyúlkálni.

Elsőre talán nehéznek tűnik, mert sok az információ, de az olvasgatás, próbálkozás és a problémádhoz hasonló modulok forráskódjának nézegetése után lassan kitisztul a kép.

Üdv: Zoli

0
0
Pasqualle képe

jol latom, hogy ez egy gyonyoru SQL injection pelda

0
0