Инсталација Модула ?

Started by paleksic, February 02, 2008, 07:02:29 PM

Previous topic - Next topic

paleksic

Занима ме како да инсталирам један модул на више тема.
Нпр. овај модул има ефекта само на главној default теми а мени треба и на осталима. Како то да изведем? Упуство на овој страници нисам баш добро разумео.  >:(

***Teh GodFather***

Vidis koje kodove ubacuje u fajlove default teme i to isto ubacis u temu koju hoces...

manix

Evo jednog mog posta sa www.lendovisanje.com


Jednostavno otvorim xml fajl instalacije i vidim gde sta treba da se doda i to rucno dodam.
Drugi nacin je prepravljanje instalacije tj install.xlm fajla ali to radite samo ako ste 100% sigurni da znate sta radite!!!
Poznato vam je da modovi stizu zapakovani u zip potrebno je da ih raspakujete da bi videli instal.xml i ostale fajlove

Recimo za odrediste teme SMF modovi koriste promenjljivu $themedir zamenom te promenjljive moze se zameniti putanja instalacije moda... Default vrednost te promenjljive je zapravo default SMF tema.

Kako zapravo funkcionisu instalacije modova na smf??? Pa pomocu xml se trazi odredjeni deo koda u odredjenom faju i ispred ili iza se dodaje kod ili se pak neto brise ili se menja odredjeni deo.

Evo recimo jedne instalacije za SMF


<?php
 
<file name="$themedir/BoardIndex.template.php" error="fatal">
  <
operation error="fatal">
   <
search position="after" regexp="false" whitespace="exact">
   <![
CDATA[ // If they are logged in, but SP1 style information is off... show a personal message bar.]]>
   
</search>
   <
add>
    <![
CDATA
       
//Manix proba
       
echo ' Proba instalacije moda';
      ]]>
    </
add>
   </
operation>
 </
file>
?>


Kako stvar u principu funkcionise...

Odredjivanje koji fajl se modifikuje
<?php
<file name="$themedir/BoardIndex.template.php" error="fatal">
?>


Pronalazenje mesta gde ce modifikacija, u okviru fajal(koda), biti izvrsena
<?php
<search position="after" regexp="false" whitespace="exact">
<![
CDATA[// If they are logged in, but SP1 style information is off... show a personal message bar.]]>
</search?>

- znaci treba pronaci poziciju "[// If they are logged in,..." i stati iza nje position="after"

Nacin modifikacije - u ovo slucaju dodavanje
<?php 
<add>
?>


Kod koji se ubacuje
<?php
<![CDATA[
kod koji se ubacu je ovde
]]>
?>

i na kraju zatvarane tagova
<?php
   
</add>
  </
operation>
 </
file>
 </
modification>
?>


Na osnovu ovoga gore kontas da treba da vidis koji se fajl otvara kako se pronalazi mesto gde se sta ubacuje i kod koji se ubacuje. Fajlove koje prepravljas trazis u temi u kojoj zelis da dodas mod...

manix

u konkretnom modulu treba da otvoris fajl Recent.php koji se nalazi u folderu Source
da pronadjes
global $scripturl, $txt, $db_prefix, $user_info, $modSettings, $func;
i da umesto toga stavis
global $scripturl, $txt, $db_prefix, $user_info, $modSettings, $func, $settings;
ztim u istom fajlu da pronadjes
LEFT(m.body, 384) AS body, m.smileysEnabled
i da ga zamenis sa
LEFT(m.body, 384) AS body, m.smileysEnabled, m.icon, t.numViews
zatim, takodje u istom faju treba da nadjes
),
'topic' => $row['ID_TOPIC'],

i ispred te zagrade da dodas
'icon' => file_exists($settings['theme_dir'] . '/images/post/' . $row['icon'] . '.gif') ? $settings['images_url'] . '/post/' . $row['icon'] . '.gif' : $settings['default_images_url'] . '/post/' . $row['icon'] . '.gif',
'views' => $row['numViews'],

zatim otvoris BoardIndex.template.php, iz foldera teme koju hoces da prepravis, i pronadjes
<table cellpadding="0" cellspacing="0" width="100%" border="0">';
i to zamenis sa ovim
<table cellpadding="0" cellspacing="1" width="100%" border="0">
           <tr>
               <td class="catbg2" style="text-align:left;" colspan="2">', $txt[70] ,'</td>
               <td class="catbg2" style="text-align:right;">', $txt[301] ,'</td>
               <td class="catbg2" style="text-align:right;">', $txt[20] ,'</td>
               <td class="catbg2" style="text-align:right;">', $txt[29] ,'</td>
               <td class="catbg2" style="text-align:right;">', $txt[317] ,'</td>
             </tr>';

zatim, u istom fajlu nadjes
foreach ($context['latest_posts'] as $post)
echo '
<tr>
<td class="middletext" valign="top"><b>', $post['link'], '</b> ', $txt[525], ' ', $post['poster']['link'], ' (', $post['board']['link'], ')</td>
<td class="middletext" align="right" valign="top" nowrap="nowrap">', $post['time'], '</td>
</tr>';

i to zamenis sa
$cnt = 0;
foreach ($context['latest_posts'] as $post){
         $cnt++;
         $class = ($cnt % 2) ? 'windowbg' : 'windowbg2';
         
        echo '
<tr>
                <td class="', $class, '"><img src="', $post['icon'] , '" alt="" /></td>
<td class="', $class, '"" title="', $post['preview'] ,'">', $post['link'], '</td>
<td class="', $class, '"" style="text-align:right;">', $post['views'], '</td>
                <td class="', $class, '"" style="text-align:right;">',$post['board']['link'], '</td>
                <td class="', $class, '"" style="text-align:right;">',$post['poster']['link'], '</td>
<td class="', $class, '"" style="text-align:right;" nowrap="nowrap">', $post['time'], '</td>
</tr>';
       }


I TO TI JE TO...  ;)

manix

inace evo ti i install fajla
<?php
<modification xmlns="http://www.simplemachines.org/xml/modification" xmlns:smf="http://www.simplemachines.org/">
<id>Marook:advrecentposts</id>
<version>1.0</version>
<file name="$sourcedir/Recent.php">
<operation>
<search position="replace"><![CDATA[ global $scripturl$txt$db_prefix$user_info$modSettings$func;]]></search>
<add><![CDATA[ global $scripturl$txt$db_prefix$user_info$modSettings$func$settings;]]></add>
</operation>
      <
operation>
         <
search position="replace"><![CDATA[ LEFT(m.body384) AS bodym.smileysEnabled]]></search>
         <
add><![CDATA[ LEFT(m.body384) AS bodym.smileysEnabledm.icont.numViews]]></add>
      </
operation>
<operation>
<search position="before"><![CDATA[ ),
'topic' => $row['ID_TOPIC'],
]]></
search>
<add><![CDATA[ 'icon' => file_exists($settings['theme_dir'] . '/images/post/' $row['icon'] . '.gif') ? $settings['images_url'] . '/post/' $row['icon'] . '.gif' $settings['default_images_url'] . '/post/' $row['icon'] . '.gif',
'views' => $row['numViews'],
]]></
add>
</operation>
</file>
<file name="$themedir/BoardIndex.template.php">
    <
operation>
        <
search position="replace"><![CDATA[ <table cellpadding="0" cellspacing="0" width="100%" border="0">';]]></search>
        <add><![CDATA[ <table cellpadding="0" cellspacing="1" width="100%" border="0">
            <tr>
               <td class="catbg2" style="text-align:left;" colspan="2">'
$txt[70] ,'</td>
               <td class="catbg2" style="text-align:right;">'
$txt[301] ,'</td>
               <td class="catbg2" style="text-align:right;">'
$txt[20] ,'</td>
               <td class="catbg2" style="text-align:right;">'
$txt[29] ,'</td>
               <td class="catbg2" style="text-align:right;">'
$txt[317] ,'</td>
             </tr>'
;
]]></
add>
    </
operation>
    <
operation>
       <
search position="replace"><![CDATA[ foreach ($context['latest_posts'] as $post)
echo '
<tr>
<td class="middletext" valign="top"><b>'
$post['link'], '</b> '$txt[525], ' '$post['poster']['link'], ' ('$post['board']['link'], ')</td>
<td class="middletext" align="right" valign="top" nowrap="nowrap">'
$post['time'], '</td>
</tr>'
;]]></search>
       <
add><![CDATA[ $cnt 0;
foreach ($context['latest_posts'] as $post){
         
$cnt++;
         
$class = ($cnt 2) ? 'windowbg' 'windowbg2';
         
        echo 
'
<tr>
                <td class="'
$class'"><img src="'$post['icon'] , '" alt="" /></td>
<td class="'
$class'"" title="'$post['preview'] ,'">'$post['link'], '</td>
<td class="'
$class'"" style="text-align:right;">'$post['views'], '</td>
                <td class="'
$class'"" style="text-align:right;">',$post['board']['link'], '</td>
                <td class="'
$class'"" style="text-align:right;">',$post['poster']['link'], '</td>
<td class="'
$class'"" style="text-align:right;" nowrap="nowrap">'$post['time'], '</td>
</tr>'
;
       }
]]></
add>
    </
operation>
  </
file>>
</
modification>
?>


PS stavio sam sadrzaj izmedju <?php ?> radi lepseg prikaza koda inace to je xml fajl

paleksic

Који си ти цар  ;) Хвала ти пуно! Само ми реци шта да радим са тим install фајлом што си оставио? И још ме занима, пошто су ови фајлови ручно преправљени те промене су трајне? У Админ панелу вероватно нећу моћу да вратим стара подешавања као што је то случај код модула инсталираних преко њега?

Поздрав  8)

manix

Da, neces moci automatcki da skines taj modul... moraces samo ovaj proces da vratis unazad...

Instal fajl sam ti samo okaci da vidis jer na osnovu njega sam ti sve ovo iznad napisao...

Advertisement: