Kategóriák szintenként.

Kategóriák szintenként.
2012-09-20T15:43:17+02:00
2012-09-25T19:53:47+02:00
2022-11-26T23:25:45+01:00
geeb
Egy kedves segítőkész szakember súgott nekem egy nagy segítséget nemrégiben. Árnyék.
Hogy van nálam az oldalon 7 kategória.

Amiből 1 kategóriát csak bizonyos szinttől engedélyeznék.

1-10 vannak a szintek. A V.I.P. szint az 5-ös illetve attól felfele látható csak a vip videók.

Na már most. Sikeresen meg lett oldva a keresőben a v.i.p kategória amit csak 5-ös szinttől lehet látni.

Most még annyit szeretnék,hogy alapból a listákban is csak az 5-ös szintű tagok lássák a kategóriát.

Van nekem egy config.inc.php file amiben vannak a kategóriák.:


// Torrent kategoriak $torrent_categories = array( "dvdrhu" => array("id" => "dvdrhu", "name" => "Dokumentumfilmek", "desc" => "Filmek, magyarul."), "xvidhu" => array("id" => "xvidhu", "name" => "Új filmek", "desc" => "Filmek tömörített formátumban, magyarul (DivX, XviD)."), "dvd9hu" => array("id" => "dvd9hu", "name" => "Régi filmek", "desc" => "Filmek DVD9 formátumban, magyarul."), "cartoon" => array("id" => "cartoon", "name" => "Rajzfilm", "desc" => "Rajzfilmek, mesék."), "mp3hu" => array("id" => "mp3hu", "name" => "Magyar zene", "desc" => "Zene magyar előadóktól."), "clip" => array("id" => "clip", "name" => "Poén videók", "desc" => "Poén videók."), "sorozathu" => array("id" => "sorozathu", "name" => "V.I.P. tagoknak", "desc" => "Ezen rész csakis Támogatóknak érhető el.") );
A sorozathu lenne az a kategória amit el szeretnék különíteni a sima tagoktól a v.i.p tagoknak.

Ebben szeretnék segítséget kérni.

Így néz ki eredetileg a config.inc.php file-om.:


$mainmenu = array( "index.php|_self|Főoldal", "browse.php|_self|Videók", "keresek.php|_self|Kérés", "rovas.php|_self|Rovás fordító", "vip.php|_self|V.I.P.", "upload_one.php|_self|Feltöltés", "koketaj.php|_self|Játék barlang", "csevego.php|_self|Csevegő", "rules.php|_self|Szabályzat", "faq.php|_self|GY.I.K.", "tv.php|_self|Tv műsor", "users.php|_self|Felhasználók" ); if($staffenabled) array_push($mainmenu, "staff.php|_self|Staff"); else array_push($mainmenu, "staff.php|_self|HelpDesk"); $mainmenu2 = array( "profile.php|_self|<img src='loves.png' alt='Beállítások' title='Beállítások' />", "mailer_inbox.php|_self|<img src='uzenet.png' alt='Üzenetek' title='Üzeneteim' />", "piac.php|_self|<img src='piac.png' alt='Piactér' title='Piactér' />", "friends.php|_self|<img src='haver.png' alt='Barátok' title='Barátok' />", "mytorrents.php|_self|<img src='feltoltom.png' alt='Feltöltéseim' title='Feltöltéseim' />", "mycomments.php|_self|<img src='komment.png' alt='Hozzászólásaim' title='Hozzászólásaim' />", "bookmark.php|_self|<img src='konyvjelzo.png' alt='Könyvjelzők' title='Könyvjelzők' />", "invite.php|_self|<img src='meghiv.png' alt='Meghívó' title='Meghívó' />", "zenelejatszo.php|_self|<img src='zenelejatszo.png' alt='Zenelejátszó' title='Zenelejátszó' />", "kepfeltoltes.php|_self|<img src='kepfel.png' alt='Képfeltöltés' title='Képfeltöltés' />", "logout.php|_self|<img src='lelepes.png' alt='Kilépés' title='Kilépés' />" ); $mainmenu3 = array( "birsalma.php|_self|<img src='adim.png' alt='Admin panel' title='Admin panel' />" ); $mainmenu4 = array( "profile.php|_self|Profi" ); // Torrent kategoriak $torrent_categories = array( "dvdrhu" => array("id" => "dvdrhu", "name" => "Dokumentumfilmek", "desc" => "Filmek, magyarul."), "xvidhu" => array("id" => "xvidhu", "name" => "Új filmek", "desc" => "Filmek tömörített formátumban, magyarul (DivX, XviD)."), "dvd9hu" => array("id" => "dvd9hu", "name" => "Régi filmek", "desc" => "Filmek DVD9 formátumban, magyarul."), "cartoon" => array("id" => "cartoon", "name" => "Rajzfilm", "desc" => "Rajzfilmek, mesék."), "mp3hu" => array("id" => "mp3hu", "name" => "Magyar zene", "desc" => "Zene magyar előadóktól."), "clip" => array("id" => "clip", "name" => "Poén videók", "desc" => "Poén videók."), "sorozathu" => array("id" => "sorozathu", "name" => "V.I.P. tagoknak", "desc" => "Ezen rész csakis Támogatóknak érhető el.") ); // Stilusok function getstyle($id) { $styles = array( "default" => "V.T.M.K. 2012" ); if($id == "all") return($styles); else return($styles[$id]); } // User rangok function getuserclass($class) { global $staffenabled; if($staffenabled) $uc = array( "1" => "Újonc", "2" => "Közlegény", "3" => "Felhasználó", "4" => "Tag", "5" => "ViP", "6" => "Helpdesk", "7" => "Feltöltő", "8" => "Csendőrség", "9" => "Adminisztrátor", "10" => "Tulaj" ); else $uc = array( "1" => "Újonc", "2" => "Közlegény", "3" => "Felhasználó", "4" => "Tag", "5" => "ViP", "6" => "Helpdesk", "7" => "Felhasználó", "8" => "Felhasználó", "9" => "Felhasználó", "10" => "Felhasználó" ); return($uc[$class]); } function isbannedemail($email) { $banned_emails = array( ); if(in_array($email, $banned_emails)) return TRUE; else return FALSE; } function isbannednick($nick) { $banned_nicks = array( "God", "Saddam", "BinLaden", ); if(in_array($nick, $banned_nicks)) return TRUE; else return FALSE; }

Köszönöm a segítséget előre.
Mutasd a teljes hozzászólást!
Lüke Aladár - főokos:


if($szint<5) { $query .= " AND `category` <> 'sorozathu'"; }

Nem ide meg oda magyarázat kell ha nem megoldás. Sok ember olyan mint egy libera foks politikus. Körülmagyarázom-megmagyarázom,hogy nekem hogy lenne a jó. DE érdemleges választ nem adok,hanem a kétes megoldás a legegyszerűbb. Tehát okoskodok,de megoldás nincs. csókolom-csókolom Egy prosztó géplakatos megoldás....
Mutasd a teljes hozzászólást!

  • Igazából ezen példával kezdtem a próbálkozást.:


    if($szint >= 5) echo '"sorozathu" => array("id" => "sorozathu", "name" => "V.I.P. tagoknak", "desc" => "Ezen rész csakis Támogatóknak érhető el.")';
    Mutasd a teljes hozzászólást!
  • Ha az $szint már értelmezhető, amikor ez a php file lefut (2. hozzászólásod alapján igen), akkor a gyors megoldás:


    $torrent_categories = array( "dvdrhu" => array("id" => "dvdrhu", "name" => "Dokumentumfilmek", "desc" => "Filmek, magyarul."), "xvidhu" => array("id" => "xvidhu", "name" => "Új filmek", "desc" => "Filmek tömörített formátumban, magyarul (DivX, XviD)."), "dvd9hu" => array("id" => "dvd9hu", "name" => "Régi filmek", "desc" => "Filmek DVD9 formátumban, magyarul."), "cartoon" => array("id" => "cartoon", "name" => "Rajzfilm", "desc" => "Rajzfilmek, mesék."), "mp3hu" => array("id" => "mp3hu", "name" => "Magyar zene", "desc" => "Zene magyar előadóktól."), "clip" => array("id" => "clip", "name" => "Poén videók", "desc" => "Poén videók.") ); if ($szint>=5) $torrent_categories[ "sorozathu"]=array("id" => "sorozathu", "name" => "V.I.P. tagoknak", "desc" => "Ezen rész csakis Támogatóknak érhető el.");

    De igazából az lenne a legjobb, ha $torrent_categories-ban kategóriánként tárolnád, hogy hányas szinttől érhető el a kategória, pl.:

    "sorozathu" => array("id" => "sorozathu", "name" => "V.I.P. tagoknak", "desc" => "Ezen rész csakis Támogatóknak érhető el.", "min_szint" => 5)

    A kódnak abban a részében, ahol a fenti tömbből generálod a menüt ,ott vennéd figyelembe a szintet és általánosan akkor iratnál ki egy menüpontot, ha a $szint>=$torrent_categories[valami]['min_szint']

    El lehet gondolkozni azon is, hogy a jogosultságokat db-ben tárolod és nem php file-okban.
    Mutasd a teljes hozzászólást!
  • és egy 2 soros SQL lekérés helyett 98 sorban írod meg fele hatékonyan.

    userek SQL ben vannak? akkor jogok és kategóriák is oda valók.
    Fájlokat (meta adatai)is ott tárolod? Minek keseríted meg az életed hardkódolt PHP-kel ?
    Mutasd a teljes hozzászólást!
  • Szia Árnyék.

    kipróbáltam mindkettőt.

    Az első megoldás jobbnak bizonyult,de sajna a listában továbbra is látható egyedül mikor belemegyek valamelyik vip videóba akkor a kategória kép nem látható egyedül.

    Van esetleg ere valami ötleted?
    Mutasd a teljes hozzászólást!
  • Passz, a megjelenítést végző részt egy az egyben lehagytad. Annyit tippelnék, hogy a konfig file-od nem szabályozza a megjelenítést rendesen.

    Ahogy írtam, az 1. megoldás gyors megoldás, de a lehető legrosszabb opció. Vagy tedd rendbe a konfig file-t rendesen vagy használj db-t, ahogy már ketten is javasoltuk!
    Mutasd a teljes hozzászólást!
  • Valami ilyesmire gondoltatok?
    // Torrent kategoriak if($szint >= 1)$torrent_categories ["dvdrhu"] => array("id" => "dvdrhu", "name" => "Dokumentumfilmek", "desc" => "Dokumentumfilmek, magyarul."; if($szint >= 1)$torrent_categories ["xvidhu"] => array("id" => "xvidhu", "name" => "Új filmek", "desc" => "Új filmek magyarul."; if($szint >= 1)$torrent_categories ["dvd9hu"] => array("id" => "dvd9hu", "name" => "Régi filmek", "desc" => "Régi filmek magyarul."; if($szint >= 1)$torrent_categories ["cartoon"] => array("id" => "cartoon", "name" => "Rajzfilm", "desc" => "Rajzfilmek, mesék."; if($szint >= 1)$torrent_categories ["mp3hu"] => array("id" => "mp3hu", "name" => "Magyar zene", "desc" => "Zene magyar előadóktól."; if($szint >= 1)$torrent_categories ["clip"] => array("id" => "clip", "name" => "Poén videók", "desc" => "Poén videók."; if($szint >= 5)$torrent_categories ["sorozathu"] => array("id" => "sorozathu", "name" => "V.I.P. tagoknak", "desc" => "Ezen rész csakis Támogatóknak érhető el.";
    Mutasd a teljes hozzászólást!
  • Nem, nem erre.
    Mutasd a teljes hozzászólást!
  • Sziasztok. Na végre volt gy kis időm és gyakoroltam.


    // Torrent kategoriak $torrent_categories = array( "dvdrhu" => array("id" => "dvdrhu", "name" => "Dokumentumfilmek", "desc" => "Dokumentumfilmek, magyarul."), "xvidhu" => array("id" => "xvidhu", "name" => "Új filmek", "desc" => "Új filmek magyarul."), "dvd9hu" => array("id" => "dvd9hu", "name" => "Régi filmek", "desc" => "Régi filmek magyarul."), "cartoon" => array("id" => "cartoon", "name" => "Rajzfilm", "desc" => "Rajzfilmek, mesék."), "mp3hu" => array("id" => "mp3hu", "name" => "Magyar zene", "desc" => "Zene magyar előadóktól."), "clip" => array("id" => "clip", "name" => "Poén videók", "desc" => "Poén videók.") ); if ($szint>=5) { $torrent_categories = array( "sorozathu" => array("id" => "sorozathu", "name" => "V.I.P. tagoknak", "desc" => "Ezen rész csakis Támogatóknak érhető el.") ); }

    Most megcsináltam ilyenre,de már nincs hiba kód és bejön minden.

    De még sajna az a baj a vip videók is bejönnek mikor már nem kéne.
    Mutasd a teljes hozzászólást!
  • Lazán felülírod a $torrent_categories tömböt, de ne zavarjon...

    Már többször leírtam: nem mutatod meg azt a kódot, ami a menüt generálja, szal lövésünk se lehet arról, hogy mi a gond. A másik kérdésedben a menü fix html volt. Továbbá szvsz még mindig nem tesztelted ki, hogy $szint változó az egyáltalán létezik-e ebben a környezetben.
    Mutasd a teljes hozzászólást!
  • Ez a menüm is.:

    config.inc.php


    $mainmenu = array( "index.php|_self|Főoldal", "browse.php|_self|Videók", "keresek.php|_self|Kérés", "rovas.php|_self|Rovás fordító", "vip.php|_self|V.I.P.", "upload_one.php|_self|Feltöltés", "koketaj.php|_self|Játék barlang", "csevego.php|_self|Csevegő", "rules.php|_self|Szabályzat", "faq.php|_self|GY.I.K.", "tv.php|_self|Tv műsor", "users.php|_self|Felhasználók" ); if($staffenabled) array_push($mainmenu, "staff.php|_self|Staff"); else array_push($mainmenu, "staff.php|_self|HelpDesk"); $mainmenu2 = array( "profile.php|_self|<img src='loves.png' alt='Beállítások' title='Beállítások' />", "mailer_inbox.php|_self|<img src='uzenet.png' alt='Üzenetek' title='Üzeneteim' />", "piac.php|_self|<img src='piac.png' alt='Piactér' title='Piactér' />", "friends.php|_self|<img src='haver.png' alt='Barátok' title='Barátok' />", "mytorrents.php|_self|<img src='feltoltom.png' alt='Feltöltéseim' title='Feltöltéseim' />", "mycomments.php|_self|<img src='komment.png' alt='Hozzászólásaim' title='Hozzászólásaim' />", "bookmark.php|_self|<img src='konyvjelzo.png' alt='Könyvjelzők' title='Könyvjelzők' />", "invite.php|_self|<img src='meghiv.png' alt='Meghívó' title='Meghívó' />", "zenelejatszo.php|_self|<img src='zenelejatszo.png' alt='Zenelejátszó' title='Zenelejátszó' />", "kepfeltoltes.php|_self|<img src='kepfel.png' alt='Képfeltöltés' title='Képfeltöltés' />", "logout.php|_self|<img src='lelepes.png' alt='Kilépés' title='Kilépés' />" ); $mainmenu3 = array( "birsalma.php|_self|<img src='adim.png' alt='Admin panel' title='Admin panel' />" ); $mainmenu4 = array( "profile.php|_self|Profi" ); // Videó kategoriak $torrent_categories = array( "dvdrhu" => array("id" => "dvdrhu", "name" => "Dokumentumfilmek", "desc" => "Dokumentumfilmek, magyarul."), "xvidhu" => array("id" => "xvidhu", "name" => "Új filmek", "desc" => "Új filmek magyarul."), "dvd9hu" => array("id" => "dvd9hu", "name" => "Régi filmek", "desc" => "Régi filmek magyarul."), "cartoon" => array("id" => "cartoon", "name" => "Rajzfilm", "desc" => "Rajzfilmek, mesék."), "mp3hu" => array("id" => "mp3hu", "name" => "Magyar zene", "desc" => "Zene magyar előadóktól."), "clip" => array("id" => "clip", "name" => "Poén videók", "desc" => "Poén videók."), "sorozathu" => array("id" => "sorozathu", "name" => "V.I.P. tagoknak", "desc" => "Ezen rész csakis Támogatóknak érhető el.") ); functions.inc.php
    function page_begin($onloadscript='',$onleavescript='') { global $szint, $nev, $linebreak, $page_title, $page_title, $keywords_hu, $keywords_en, $version, $author, $copyright, $description, $CURRENT, $theme, $mainmenu, $mainmenu2, $mainmenu3, $mainmenu4, $flashlogo; foreach($mainmenu as $item) { if($menustring != NULL) $menustring = $menustring."&nbsp;::&nbsp;"; $itemparts = explode("|", $item); $menustring = $menustring."<a class="menu" href="{$itemparts[0]}" target="{$itemparts[1]}">{$itemparts[2]}</a>"; }
    Mutasd a teljes hozzászólást!
  • Csatolom a config.inc.php-t
    Mutasd a teljes hozzászólást!
    Csatolt állomány
  • Ez pedig a functions.inc.php-m
    Mutasd a teljes hozzászólást!
    Csatolt állomány
  • ha áttérnél az SQL re könnyebb dolgod lenne.

    amit most megírtál 40 sorban, körülbelül:
    menü listázó: 4 sor
    kiértékelő, ami a videó kirakásánál ellenőrzi a jogodat:
    2 sor.

    Kell egy kategoriak tábla:
    katid(elsődleges kulcs, int(11) , auto incr.) , katnev, leiras, jog(int)

    A jog mezőbe írod melyik az a minimum szint, amitől lekérhető!

    Majd kell a videkok táblád:
    videok:
    videoid , videonev, katid(int 11)

    Menü listázó:

    <?php // <------ kapcsolódsz SQLhez, és kiválasztod az adatbázist... $jog = $_SESSION["jog"]; // loginnál kapja meg! $res = mysql_query("select * from kategoriak WHERE jog>= $jog "); while ($m = mysql_fetch_assoc($res)) { echo '<li><a href="videok.php?katid=' . $m["katid"] . '">' . $m["katnev"] . '</a></li>'; } ?>


    Majd ami LEKÉRI a videót $_GET["katid"] alapján az SQL táblából, feltételben szűri eleve adott user jog alapján jogosult-e hozzá.

    <?php $jog = $_SESSION["jog"]; // loginnál kapja meg! $video = mysql_query("select * from videok inner join kategoriak ON kategoriak.katid=videok.katid WHERE kategoriak.jog>=$jog"); // itt meg bejárod a $videok eredményét while-lal és mysql_fetch_assoc() -kal. ?>

    És így nem kell minden fájlba bevinni adott kategória milyen joggal érhető el, és nem kell hardkódolni átláthatatlan tömbökkel.
    Mutasd a teljes hozzászólást!
  • Lüke Aladár - főokos:


    if($szint<5) { $query .= " AND `category` <> 'sorozathu'"; }

    Nem ide meg oda magyarázat kell ha nem megoldás. Sok ember olyan mint egy libera foks politikus. Körülmagyarázom-megmagyarázom,hogy nekem hogy lenne a jó. DE érdemleges választ nem adok,hanem a kétes megoldás a legegyszerűbb. Tehát okoskodok,de megoldás nincs. csókolom-csókolom Egy prosztó géplakatos megoldás....
    Mutasd a teljes hozzászólást!
  • És ezt a megoldást mégis mi alapján kellett volna javasolnia bárkinek is? Hol volt eddig bármilyen célzás arra, hogy a menüt sql-ből generálod? Eddig mindenféle blőd php config file-okkal jöttél, áttekinthetetlen kódokkal!
    Mutasd a teljes hozzászólást!
  • Már ne is haragudj, de te jöttél ide kérdezni prog.hu -ra nem azok akik segíteni próbálnak már "2012.09.20." óta. 5 nap alatt ezt tudtad összehozni?

    DE érdemleges választ nem adok,hanem a kétes megoldás a legegyszerűbb.

    listázó rész mindennemű kókányolás mentesen 4 sor,
    videó listázórész 2-3 sor. Ha ennél rövidebbre írod meg úgy, hogy nem minden szintre írsz SQL lekérést, szívesen várom az ötleteidet programozás terén. Amíg ez nem sikerül, javaslom hallgass a tapasztaltabbakra.

    Plusz még egy jó tanács:
    sose add ki a teljes link listádat, és biztonsági réseidet (functions.inc.php) az oldaladhoz, mert meglepi érhet ha egy rosszakaró ezután legyalulja az oldalad.
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd