Dizi oluşturma

Başlatan ManiaC, 22 May 2016 20:52

« önceki - sonraki »

0 Üye ve 1 Ziyaretçi konuyu incelemekte.



  1. 632

  2. 251
22 May 2016 20:52 Son düzenlenme: 24 May 2016 14:39 ManiaC

Nasıl yaparız

*

  1. 1,131

  2. 105

  3. 331
SimplePortal geçerlidir.

Alıntı yapılan: grafitus - 27 Nis 2010 17:40http://simpleportal.net/index.php?page=blocks_in_block_sample

Yukarıdaki sayfayı açtığınızda toplamda 5, 4'ünün bir blok içinde olduğunu göreceksiniz. Bunu SimplePortal'la yapmak oldukça kolaydır.

Birinci adım: İçte olacak blokları oluşturun. Bu blokların etkin kutucuğunun işaretli olmadığına emin olun. Bu -içteki- blokların forumunuzda herhangi bir yerde görünmesini önleyecektir.

İkinci adım: yeni oluşturduğunuz blokların id değerlerini bulmak. Blok düzenleme linkine bakarak bu değeri bulabilirsiniz:

http://ornekforum.com/index.php?action=admin;area=portalblocks;sa=edit;block_id=2;{session_var}={session_id}

İhtiyacınız olan değer block_id değeridir (yukarıdaki koda göre 2). Aşağıdaki örnekte, biz 49, 50, 52, 53 blok id değerlerini kullanacağız.

Üçüncü adım: blokları içine alacak ve portalda görünecek olan bir PHP İçerik bloğu oluşturun. Ve içeriğine bir örnek olarak şu girilecek:

$columns = 2; // Bloklarımızın kaç sütun olacağı
$block_ids = array(49, 50, 52, 53); // İçteki blokların id değerleri

$block_data = array();
foreach ($block_ids as $block)
{
   $block_data[$block] = current(getBlockInfo(false, $block, false, false)); // Her bir bloğun (içteki) bilerini alıyoruz
   $block_data[$block]['style'] = sportal_parse_style('explode', $block_data[$block]['style'], true); // Her bloğun stil değerlerini alıyoruz.
}

echo '
<table style="width: 100%;">
   <tr>';

$counter = 0;
foreach ($block_data as $data)
{
   if ($counter != 0 && $counter % $columns == 0)
   {
      echo '
   </tr>
   <tr>';
   }

   echo '
      <td style="width: ', ceil((100 / $columns)), '%; vertical-align: top;">
         ', template_block($data), '
      </td>';

   $counter++;
}

echo '
   </tr>
</table>';

Bu kadar. :nervous-happy:


Ya da blok fonksiyonlarını kullanarak, yukarıdaki gibi birden fazla blok oluşturmadan uygun parametreleri kullanarak yapabiliriz. Hatta biraz da JavaScript katarak, bunun gibi güzel bir blok elde edebiliriz:

http://simpleportal.net/index.php?page=blocks_in_block_sample#sp_collapse_54

global $txt;

$txt['recent_topics'] = 'Son İletiler';
$txt['recent_posts'] = 'Son Konular';

$buttons = array(
   'recent_topics' => array(
      'text' => 'recent_topics',
      'image' => '',
      'lang' => true,
      'url' => '#recent_topics" id="b_rt" onclick="change_display(); return false;',
      'active' => true,
   ),
   'recent_posts' => array(
      'text' => 'recent_posts',
      'image' => '',
      'lang' => true,
      'url' => '#recent_posts" id="b_rp" onclick="change_display(); return false;',
   ),
);

echo '
<div style="overflow: auto;">
   ', template_button_strip($buttons), '
</div>
<div id="recent_topics">
   ', sp_recent(array('type' => 1, 'display' => 1), 0), '
</div>
<div id="recent_posts" style="display: none;">
   ', sp_recent(array('display' => 1), 0), '
</div>
<script language="JavaScript" type="text/javascript"><!-- // --><![CDATA[
   function change_display()
   {
      var current = document.getElementById(\'recent_posts\').style.display;

      document.getElementById(\'recent_topics\').style.display = current ? \'none\' : \'\';
      document.getElementById(\'recent_posts\').style.display = current ? \'\' : \'none\';
      document.getElementById(\'b_rt\').className = current ? \'button_strip_recent_topics\' : \'button_strip_recent_topics active\';
      document.getElementById(\'b_rp\').className = current ? \'button_strip_recent_posts active\' : \'button_strip_recent_posts\';
   }
// ]]></script>';

Bu bize "basitliğin gücü"nin çağrısıdır. Umarız bu SimplePortal'ın esnek ve güçlü yapısına bir fikir vermiştir. Eğer herhangi bir sorunuz varsa sorun çekinmeyin. ;)

Asıl konu, [SiNaN] tarafından hazırlanmıştır...
Alıntı yapılan yer
http://simpleportal.net/index.php?topic=5335.0


MENU ×