Posted by dirka on February 22, 2015 at 8:53pm
drupal botla ilgili bir kaç kez konu açtım , php ile localhost da veri çekip veritabanına kaydettim tabloları drupal veritabanına göre uyarladım fakat drupal sitede çalışmıyor .. localde çalışıyor nerede yanlış yapıyorum acaba ?
Comments
drupal de php kullanma izni vermelisin
kodlarını içerik ile beraber veya arasında kullanacaksan PHP kullanma izni vermelisin
seninsiten.com/#overlay=admin/people/permissions
linki ile izinleri açık FILTRE altında PHP code metin biçimini kullan seçeneği ile kullanıcıya izin vermelisin.
başarılı olan kodları bizimle de paylaşırsan memnun oluruz, belki başka birisinin de ihtiyacı olabilir. kolay gelsin
php code seçeneği yok
Metin biçimleri ve filtrelerini yönet
Filtered HTML metin biçimini kullan
Full HTML metin biçimini kullan
filter altında üç seçenek var php ile ilgili bir seçenek yok,
çok ilginç drupalden bağımsız bir php sayfasına nasıl müdahale edip kısıtlıyorlar şimdi drupali daha çok sevmeye başladım.
localde tıkır tıkır çalışan kodlar aşağıda
<meta http-equiv="Content-Type" content="text/HTML; charset=utf-8" /><?php
function siteConnect($site){
global $field_address_val,$field_website_val,$field_phone_val,$title_val;
$ch = curl_init();
$hc = "YahooSeeker-Testing/v3.9 (compatible; Mozilla 4.0; MSIE 5.5; Yahoo! Search - Web Search)";
curl_setopt($ch, CURLOPT_REFERER, 'http://www.google.com');
curl_setopt($ch, CURLOPT_URL, $site);
curl_setopt($ch, CURLOPT_USERAGENT, $hc);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$site = curl_exec($ch);
curl_close($ch);
// Veriyi parçalama işlemi
preg_match_all('@<h1 property="v:itemreviewed" style="float: left">(.?)</h1>@si',$site,$title);
preg_match_all('@<h3>(.?)</h3>@si',$site,$veri_derece2);
preg_match_all('@</span><span ID="lblPlaceAddress" class="place-address" >(.?)</span>@si',$site,$field_address_value);
preg_match_all('@</span><span ID="lblPlacePhone" class="place-phone">(.?)</span>@si',$site,$field_phone_value);
preg_match_all('@<span class="pi-title"></span>(.?)</a></span>@si',$site,$field_website_value);
preg_match_all('@<div id="liYatsi">(.?)</div>@si',$site,$veri_derece6);
$title_val = strip_tags($title[0][0]);
$field_address_val = strip_tags($field_address_value[0][0]);
$field_website_val = strip_tags($field_website_value[0][0]);
$field_phone_val = strip_tags($field_phone_value[0][0]);
//VERİLER
$isim="business";
$language="tr";
$uid="1";
echo $title[0][0];
echo $field_address_value[0][0];
echo $veri_derece3[0][0];
echo $field_phone_value[0][0];
echo $field_website_value[0][0];
echo $veri_derece6[0][0];
}
siteConnect('http://www.mekanist.net/mekan/177001');
$kullaniciadi="adi";
$sifre= "şifre";
$host="localhost";
$veritabani="tabani";
//VERİTABANI SEÇME
$baglan=mysql_connect($host,$kullaniciadi,$sifre);
mysql_select_db($veritabani,$baglan);
//YENİ KAYIT GİRME ADRES
$sql="insert into field_data_field_address (field_address_value, typ) values ('$field_address_val', '$isim')";
mysql_query($sql);
//YENİ KAYIT GİRME WEBSİTE
$sql="insert into field_data_field_website (field_website_value, typ) values ('$field_website_val', '$isim')";
mysql_query($sql);
//YENİ KAYIT GİRME TELEFON
$sql="insert into field_data_field_phone (field_phone_value, typ) values ('$field_phone_val', '$isim')";
mysql_query($sql);
//YENİ KAYIT GİRME BAŞLIK
$sql="insert into node(title, typ, language, uid) values ('$title_val', '$isim', '$language', '$uid')";
mysql_query($sql);
//BAĞLANTIYI KESME
mysql_close($baglan);
sanırım bir editör kurmadın
CK editörü kurabilirsin, linki;
https://www.drupal.org/project/ckeditor
sonra izinleri kontrol et, PHP code için izin ver (sadece kendine izin vermeni öneririm) kolay gelsin
cke
ckeditör zaten kurulu sorunu hala çözemedim uzun yola girmek istemiyorum yoksa localde veritabanına çektiğim veriyi xml kaydedip yada rss ile yine çekebilirim sanırım ama kısa yolu varken bunu çözebilirsem iyi olur..
kodlamada herhangi bir sıkıntı yok localde çalışıyor siteye atınca veriyi veritabanına hiç yazdırmıyor izin sorunu olduğunu sanmıyorum çünkü php dosyası drupalden bağımsız.
php dosyası drupal den bağımsız mı
o zaman drupal de php iznine gerek yok... server da iilgili dosya veya klasör izinlerini kontrol etmelisin... localhost ile server izinleri farklı olabilir.
CKeditör önerim için özür dilerim... çok soru sordun benim de kafam karıştı :) Drupal de PHP code kullanmak için Drupal core içindeki PHP filter eklentisini kurman gerekiyor, sonra da izinlerden kendine PHP code kullanma izni vermen gerekiyor.
kolay gelsin
sayfa bulunamadı
haklısın biraz fazla soruyorum drupal e yeni başlayınca türkçe kaynakta yok doğru düzgün..
dosyaya normal izin verdiğimde ekrana çektiği veriler basılıyor ama veritabanına yazmıyor.
fazladan izin verdiğimde drupal sitesi açılıyor sayfa bulunamadı çıkıyor
tam olarak izinleri nasıl verdin
kodların bulunduğu dosyana sadece okuma izni verdiğinde okumuş ve monitöre yazmıştır, monitöre yazmada ekstra izine gerek yok ve sorun da yok,
senin dosyan ana dizinde ise bulması gerekir, bir alt dizinde ise bir yol (path) tarifi yapman gerekir.
database ulaşması yeterli değil burada bir tablo ve yazma alanları(fields) oluşturulmuş olması veya kayıttan hemen önce yazdığın kodlar ile önce bunları oluşturman gerekir,
sonra da bu tabloya ve içindeki alanlara veri yazdırman gerekir.
drupal girilen içerikleri node isimli tabloya yazıyor, sana kestirme bir yol; çektiğin dataları bir CSV dosyaya kaydet, FEEDS modülünü kur ve CSV dosyandaki bilgileri 1 saniyede node olarak database e kaydet. çok kolay bu kadar uğreşmana gerek yok
fazladan izin nedir, tam olarak ne yaptığın zaman drupal i çağır ve sayfa bulunamadı mesajı geliyor anlamadım.
Kolay gelsin
chmod izini verdim
chmod izini verdim bu dosyayı csv olarak aldığımda alt field lere mesela adres telefon internetsitesi gibi filed lere veri girebilirmiyim
başlık
adres
telefon
internetsitesi
açıklama
ben bu fieldlere veri girişi yapıcam csv yapısını nasıl ayarlamam lazım - şimdi denedim ne başlık nede diğer fieldler çıkıyor.
csv dosyasını phpmyadminden dışa aktardım
evet csv dosyana veri girebilirsin
csv dosyanı ms excel veya benzer bir program ile açabilirsin, LIBRE OFFICE ( libreoffice.org ) tavsiye ederim, csv dosyanı açtığında excel gibi bir tablo göreceksin ve excel de tabloya veri yazar gibi yazıp kaydedeceksin.
phpmyadmin den dışarı csv doyası alırken (almadan önce) bir tablo seçmelisin, sonra csv olarak dışarı aktar demelisin, istersen başlıkları da aktarmasını seçebilirsin. NODE tablosunu csv olarak dışarı almanı öneririm, çünkü FEEDS modülü NODE içeri eklemek için hazır oldupğunu göreceksin.
Kendin özün bir tablo ve içinde field oluşturmak ve bunu dışarı csv olarak almak ve dışarıda data girip FEEDS ile ekleyebilirsin, arkasından sanıl bir problem çıkar bilemiyorum, bu tablodan drupal ile sürekli data çekmek istersen yine uğraşman gerekecek... benim anlatabileceklerim bunlar, diğer arkadaşlar da bakarlarsa sana yardımcı olabilirler, ben onlar kadar usta değilim. kolay gelsin
teşekkür..
teşekkür ederim hocam her konuda çok iyi bilgiler verdin inşallah üstesinden gelirim.. diğer arkadaşlarında önerisi olursa daha kısa yolla halledebilirsem daha iyi olur iyi çalışamlar ;)