eaposztrof ::

2008. március 2., vasárnap

drupal img-menu

az ejjel termelekeny drupalozo voltam, ket orok problemat is megoldottam vala.
az egyik a menuelemek szoveget tartalmazo kepre valo csereje, ime:
page.tpl.php modositasa:


<?php if (isset($primary_links)) : ?>
          <?php
// felulirom a $primary_links[$key]['title']-t, ami eredetileg egy string, a keppel.
                 
foreach ($primary_links as $key => $module) {
                 
$primary_links[$key]['title'] = '';
                 
$primary_links[$key]['title'] .= '<img src="/themes/eaposztrof/images/img.php?t='.$module[title].'&s=20">'; // az eredeti szoveges menuelembol ($module[title]) az alab lathato img.php keszit .png-t
                 
$primary_links[$key]['html'] = TRUE;
                  }
             
?>

<div id="menu-img">
          <?php print theme('links', $primary_links, array('class' => 'links primary-links')) ?>
</div>
        <?php endif; ?>

az img.php tartalma:

<?php

    header("Content-type: image/png");

// itt adom meg az alap ertekeket        imagepng(imagettfJustifytext($_GET['t']?$_GET['t']:'eaposztrof.com',"./84_rock.ttf",$_GET['a']?$_GET['a']:'1',$_GET['w']?$_GET['w']:'0',$_GET['h']?$_GET['h']:'28',$_GET['x']?$_GET['x']:'0',$_GET['y']?$_GET['y']:'0',$_GET['s']?$_GET['s']:'22'));

// szinezeshez pelda: #D6DBD6 == array(0xD6,0xDB,0xD6)
   
function imagettfJustifytext($text, $font="./84_rock.ttf", $Justify=1, $W=0, $H=0, $X=0, $Y=0, $fsize=0, $color=array(0x7B,0x79,0x31), $bgcolor=array(0xD6,0xDB,0xD6)){

       
$angle = 0;
       
$L_R_C = $Justify;
       
$_bx = imageTTFBbox($fsize,0,$font,$text);

       
$W = ($W==0)?abs($_bx[2]-$_bx[0]):$W;
       
$H = ($H==0)?abs($_bx[5]-$_bx[3]):$H;

       
$im = @imagecreate($W, $H)
            or die(
"Cannot Initialize new GD image stream");


       
$background_color = imagecolorallocate($im, $bgcolor[0], $bgcolor[1], $bgcolor[2]);
       
$text_color = imagecolorallocate($im, $color[0], $color[1], $color[2]);
       
$bg_color = imagecolorat($im,1,1);
       
imagecolortransparent($im, $bg_color); // ezzel teszem transzparensse

       
if($L_R_C == 0){
           
imagettftext($im, $fsize, $angle, $X, $fsize, $text_color, $font, $text);

        }elseif(
$L_R_C == 1){
           
$s = split("[\n]+", $text);
           
$__H=0;

            foreach(
$s as $key=>$val){

               
$_b = imageTTFBbox($fsize,0,$font,$val);
               
$_W = abs($_b[2]-$_b[0]);
               
$_X = $W-$_W;
               
$_H = abs($_b[5]-$_b[3]);
               
$__H += $_H;
               
imagettftext($im, $fsize, $angle, $_X, $__H, $text_color, $font, $val);
               
$__H += 6;

            }

        }
        elseif(
$L_R_C == 2){

           
$s = split("[\n]+", $text);
           
$__H=0;

            foreach(
$s as $key=>$val){

               
$_b = imageTTFBbox($fsize,0,$font,$val);
               
$_W = abs($_b[2]-$_b[0]);
               
$_X = abs($W/2)-abs($_W/2);
               
$_H = abs($_b[5]-$_b[3]);
               
$__H += $_H;
               
imagettftext($im, $fsize, $angle, $_X, $__H, $text_color, $font, $val);
               
$__H += 6;

            }

        }

        return
$im;

    }

?>

a masik inkabb egy hack mint fejlesztes, a /contact formon ujabb input felvetelet oldottam meg:
/modules/contact.pages.inc-ben eszkozolt modositasok:

<?php
function contact_mail_page() {
...

if (
count($categories) > 0) {
  
$form['#token'] = $user->uid ? $user->name . $user->mail : '';
   
$form['contact_information'] = array('#value' => filter_xss_admin(variable_get('contact_form_information', t('You can leave a message using the contact form below.'))));
   
$form['name'] = array('#type' => 'textfield',
     
'#title' => t('Name'),
     
'#maxlength' => 255,
     
'#default_value' => $user->uid ? $user->name : '',
     
'#required' => TRUE,
    );
   
// a hozzaadott sor
   
$form['phone'] = array('#type' => 'textfield',
     
'#title' => t('Phone number'),
     
'#maxlength' => 20,
     
'#default_value' => '+',
     
'#required' => TRUE,
    );
  
// sor vege
...
  }
}

function
contact_mail_page_submit($form, &$form_state) {
  global
$language;

 
$values = $form_state['values'];
 
$from = $values['mail'];

 
$contact = contact_load($values['cid']);
 
$values['contact'] = $contact;
   
// a hozzaadott sor
<strong>$values['message'].="\n\n name: ".$values[name]."\n phone number: ".$values['phone'];
   
// sor vege

...
}
?>

5 megjegyzés:

aeduard írta...

Gondolkodtam, h a honlapom le kellene csereljem, es olvasgattam egy csomo CMS rendszerrol, ezek kozul a Drupal allt a legkozelebb hozzam. Neki is akartam latni, de elakadtam annal a resznel, ahol a mySQLt kell beallitani, egyaltalan letrehozni, mert soha az eletben nem foglalkoztam ilyesmivel. Az lenne a kerdesem, h ez mennyire bonyolult dolog, autodidakta modon mennyi ido kell ahhoz, h egy egyszeru szemelyes honlapot letre tudjak hozni vele. Minimalista kellene legyen mindenfele csillogas nelkul...esetleg megnezheted az aktualisat is,a mi 2 eve felkesz allapotban van :). aeduard.uv.ro

(arra idokozbe rajottem, h az ingyenes szerverek nem nagyon szeretik a CMSek telelpiteset, es szereztem magamnak egy tarhelyet is)

eaposztrof írta...

abszolute csak johirrel szolgalhatok. a 6.x drupallal kb 10 perc.

termeszetesen hosszu ejszakakat el lehet pocsolni vele, de kozel sem olyan nehez mint az emberek gondoljak elosre

a mysql-hez csak anyit kell erts, h klikkel a szolgaltatodnal a "mysql engeelyezese", es a drupal installalasanal megadd a szolgaltato altal adott felhnevet, jelszot, es host-ot.. ha nem megy lokjed es segitek.

forum es mindenmas nagyon praktikus, a bloggert pedig be tudod kotni menukent, vagy meg tudod jeleniteni a postokat egy kulon oldalon. en az utobbit ajanlom. tehat amint klikkel a kilistazott - mondjuk 5 utolso - bejegyzesre, a drupalodbol atugrik a bloggerre.

mindez mellett ajanlom egy domain regisztralasat. a .ro-s domainek nagyon olcsoak, es erdemes.

ROTLD.RO

tarhelynek pedig hasznalhatod barmely ingyenes szolgaltatast.

aeduard írta...

Ez tenyleg jo hir...a hetvege fele nekilatok butykolni, s amennyibe gondjaim vannak mindenkepp kikerem a segitseged...

SF írta...

Üdv :)

A weblabor.hu-n kívül tudsz még weboldalépítő-tutorialos oldalakat, Eaposztrof?

http://www.rss2java.com/

Szenvedtünk ugyanennek a PHP alapú verziójával, pedig a javás is jó, sőt, minden új rss-értesítésnél valahogyan frissnek láttatja a blogposztot ahova ki van téve, így a freeblog "most nemrég postolták" listájáról érkeznek oda a látogatók rendesen :)

eaposztrof írta...

ScallFast, mar reg keszultem megirni ezt a postot, itt te is megkapod valaszom: php-t-hogyan

egeszsegedre.

ajánld barátaidnak

amennyiben ajánlod az oldalt barátaidnak, következő lépésben megmutatom, hogy blogod, honlapod látogatottságát hogyan tudod egyik pillanatról a másikra sokszorosára növelni

 
 
 





Dictionary.com Word of the Day