pragmaMx Support Forum

pragmaMx => Türkçe (Turkish) => Language Specific Support => Yabancı Modüller => Thema gestartet von: Baran in 12 März 2009, 13:45:23

Titel: Köşe yazıları bloğu
Beitrag von: Baran in 12 März 2009, 13:45:23
merhaba arkadaşlar..

bir iki haftadır uğraşıyorum, bir çok php-nuke sitesine sorduğum halde, net bir cevap alamadım.

şimdi sitede çok fazla yazar olduğu için ben kısıtlamak istiyorum.

Yani haberler blogu gibi 10 tane yapmak istiyorum, her yeni eklenen yazı başa gelecek şekilde, bir türlü kod yazamadım..

size blogun kodunu yazayım, yapabilirseniz sevinirim...

<?php

/************************************************************************/
/* PHP-NUKE: Web Portal System                                          */
/* ===========================                                          */
/*                                                                      */
/* Copyright (c) 2002 by Francisco Burzi                                */
/* http://phpnuke.org                                                   */
/*                                                                      */
/*       Bu blok Köşe Yazıları bölümü için özel yapılmıştır.            */
/*        İstediğiniz gibi kullanabilir editleyerek başka bir           */
/*              modüle uyarlayabilirsiniz                               */
/*  Bloğu Yazan      www.bankaciyiz.biz                                 */
/*  email adresi:   webmaster@bankaciyiz.biz                            */
/************************************************************************/


global $prefix$db;
$result $db->sql_query("select secid, secname, image from ${prefix}_sections WHERE homepage = '1' order by secname ASC");
$content .= "<table cellpadding=\"0\" cellspacing=\"0\">";
while (list(
$secid$secname$image) = $db->sql_fetchrow($result)) {
{
$content .= "<tr>";}
$cresult $db->sql_query("select artid, title from ${prefix}_seccont WHERE secid=$secid ORDER BY artid DESC limit 1");
while (list(
$artid$title) = $db->sql_fetchrow($cresult))

$content .= "<td><table><tr><td width=\"70\"><a href=\"modules.php?name=Niviskar&op=listarticles&secid=$secid\"title=\"$secname\"><img src=\"images/sections/$image\" border=\"0\" width=\"60\" height=\"60\"><br><left>$secname</left></td><td border=\"0\" Alt=\"$secname\"></a><font class=\"tiny\"><a href=\"modules.php?name=Niviskar&op=viewarticle&artid=$artid\"title=\"$title\">$title</a></font></td><tr></table><hr>";
{
$content .= "</tr>";}
$content .= "</td>";}
$content .= "</table>";
?>
Titel: Re: Köşe yazıları bloğu
Beitrag von: Baran in 13 März 2009, 13:12:13
arkadaşkar yokmu bir öneriniz ?, nasıl bir şey bu ben anlamadım gitti :)

aslında bir şey yapiyorum ama sanırım mantık hatası yapıyorum...
Titel: Re: Köşe yazıları bloğu
Beitrag von: navruz in 16 März 2009, 12:04:20
Merhaba :)
Önerim bu işi yapacaksanız php dilini öğrenmek için çalışmanız. Verdiğiniz kodda herşey birbirine girmiş durumda. Orijinal kodları yazarsanız belki yardımcı olabilirim.
Titel: Re: Köşe yazıları bloğu
Beitrag von: Baran in 16 März 2009, 13:44:33
Zitat von: navruz in 16 März 2009, 12:04:20
Merhaba :)
Önerim bu işi yapacaksanız php dilini öğrenmek için çalışmanız. Verdiğiniz kodda herşey birbirine girmiş durumda. Orijinal kodları yazarsanız belki yardımcı olabilirim.


merhaba @navruz.

öncelikle ilgi ve alakan için teşekür ederim.

bir çok kod yazdım ama hiç bir fayda olmadı, ki başkalarıda yazdı oda olmadı :)

yazdıgım kodlar orjinal block'un kodlariydi.

size bir de dosya olarak göndereyim.

Not: şimdiki kullandıgım modul, sections modulune uyarlanmıştır.zaten blockun içinde açıklama yapmış, modulu yazanlar.

Titel: Re: Köşe yazıları bloğu
Beitrag von: navruz in 18 März 2009, 11:51:04
Yapmak istediğiniz yazar sayısını 10'a indirip son yazıları göstermekse aşağıdaki değişikliği yapın.
Bul :
$result = $db->sql_query("select secid, secname, image from ${prefix}_sections WHERE homepage = '1' order by secname ASC");
Değiştir :
$result = $db->sql_query("select secid, secname, image from ${prefix}_sections WHERE homepage = '1' limit 10 order by secid DESC");
Titel: Re: Köşe yazıları bloğu
Beitrag von: Baran in 18 März 2009, 14:03:25
merhaba bu seferde şu hatayı aldım:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order by secid DESC' at line 1

Titel: Re: Köşe yazıları bloğu
Beitrag von: navruz in 18 März 2009, 15:47:40
Bunu denermisiniz
$result = $db->sql_query("select secid, secname, image from ${prefix}_sections WHERE homepage = '1' order by secid DESC limit 10 ");

Titel: Re: Köşe yazıları bloğu
Beitrag von: Baran in 18 März 2009, 20:54:38
evet bu kod işime yaradı, 10 tane'ye indi...

yanlız şöyle bir problem var, yenı eklenen yazı başta değil...

Aynen haber bloğu gibi, hani her eklenen haber başa gelıyor, digerleri düşüyor ya ana syafadan ,  o şekilde...

bunun içinde bir kod yazamaz mıyız ?
Titel: Re: Köşe yazıları bloğu
Beitrag von: navruz in 19 März 2009, 11:01:24
Bunun için işlemi tersine çevirmelisiniz. Şu an önce yazarı sonra son yazısını çekiyor. Siz önce yazıyı sonra yazar bilgilerini veritabanından çekmelisiniz. Kullandığınız modülün veritabanı tablo yapısını görmeden yardımcı olamam.
Titel: Re: Köşe yazıları bloğu
Beitrag von: Baran in 19 März 2009, 13:46:22
merhaba navruz

veritbanından aldıgım sections tablosu şu şekilde... inceliyebilirsiniz..

-- --------------------------------------------------------

--
-- Tablo yapısı: `sql_sections`
--

CREATE TABLE IF NOT EXISTS `sql_sections` (
  `secid` int(11) NOT NULL auto_increment,
  `secname` varchar(40) NOT NULL default '',
  `image` varchar(50) NOT NULL default '',
  `mail` varchar(128) NOT NULL default '',
  `active` int(1) NOT NULL default '0',
  `homepage` int(2) NOT NULL default '1',
  PRIMARY KEY  (`secid`),
  KEY `secid` (`secid`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=126 ;

--
-- Tablo döküm verisi `sql_sections`
--

INSERT INTO `sql_sections` (`secid`, `secname`, `image`, `mail`, `active`, `homepage`) VALUES
(43, 'Ahmet', 'ahmet.jpg', 'mail@hotmail.comm', 1, 1),
(63, 'Editör', 'editor.gif', 'mail@hotmail.com', 1, 1),
(73, 'Medeni', 'medeni.gif', 'mail@hotmail.com', 1, 1),
(83, 'Bülent', 'bulent.gif', 'mail@hotmail.com', 1, 1),
(113, 'Dogan', 'dogan.jpg', 'mail@hotmail.com', 0, 1),
(114, 'Ömer', 'omer.gif', 'omerdilsoz@yahoo.com', 0, 1),
(117, 'İsmail', 'ismail.jpg', 'mail@hotmail.com', 0, 1),
(118, 'Bingöl', 'bingol.gif', 'mail@hotmail.com', 0, 1),
(119, 'Bilge', 'bilge.jpg', 'mail@hotmail.com', 0, 1),
(121, 'Aslan', 'yazar.gif', 'mail@hotmail.com', 0, 1),
(122, 'Musa', 'musa.jpg', 'mail@hotmail.com', 0, 1),
(123, 'Çiftçi', 'ciftci.gif', 'mail@hotmail.com', 0, 1),
(124, 'Yıldız', 'yildiz.gif', 'mail@hotmail.com', 0, 1),
(125, 'Hüseyin', 'huseyin.gif', 'mail@hotmail.com', 0, 1);