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:
az img.php tartalma:
a masik inkabb egy hack mint fejlesztes, a /contact formon ujabb input felvetelet oldottam meg:
/modules/contact.pages.inc-ben eszkozolt modositasok:
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
...
}
?>
Megjegyzések
(arra idokozbe rajottem, h az ingyenes szerverek nem nagyon szeretik a CMSek telelpiteset, es szereztem magamnak egy tarhelyet is)
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.
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 :)
egeszsegedre.