Wednesday, January 17, 2007
gtalk msn den iyi yaw
msn de mesaj gitmio bilmemne gibi durumlar olurken gtalk hem hafif client msn gibi hantal değil hemde mesajları gidio bide historyde msn in eline vermiş ne ala :D
2. gece
2:34 AM me: burası daha sağlıklı
msn pijlik yapıo bilion
selamtux: hea ya iyi oldu
me: şimdi önce birşey sorcam
2:35 AM bu conguragulations falan yazıo ya
selamtux: he sen sor ben yanıtlayayım
evet
me: bu yazı nerden gelio
selamtux: ok, data/symfony/skeleton içerisinde bir yerlerden geliyo
me: er tarafı kurcaladım amma bulamadım o açıdan
hmm
selamtux: bak şimdi
2:36 AM me: oraya girmedimdi frontend de olur sandım yanılmışım
selamtux: yok aslında frontend'de olması gereiyor
ama henüz orada hazırlanmış bir default module ve default action olmadığından
skeleton içerisinden çağırıyor
me: taam şimdi ben projeyi anlatim sende ona göre yönlendir
2:37 AM proje basit bir şifalı bitkiler sitesi verileri resimler falan yazıları hazır
selamtux: ben sana ilk önce dosya dizin yapısını bir anlatsam?
me: ok
2:38 AM selamtux: apps/frontend/config içerisinde routing.yml diye bir dosya var
bu bize smarty url'ler oluşturmamızı sağlıyor
yani hede.com/login gibi bir url tanımlayıp
2:39 AM bu url'de hangi actions'ın çalışacağını belirtiyoruz
yapısı şöyle
2:40 AM name:
url: /login
param: {module:moduleName, actions:methodName}
url: /login
param: {module:moduleName, actions:methodName}
buradaki name'i ise form, vs. gibi helper'lerin içerisinde kullanabiliyoruz
2:41 AM url_for('@name?deneme=ali') mesela bize /login/deneme/ali çıkarkacaktır
output oluruk
me: he anladım
allahdan çok dosya olmayacak :)
2:42 AM yoksa her dosya için ayrı buna tanım ömür ister
selamtux: neyse şimdi modul yapısını anlatayım apps/frontend/module/ içerisindeki dizinler bizim modullerimizi oluşturur
me: bende sadece login var şimdi
2:43 AM selamtux: bu her dizinin içerisinde ayruıca config, actions, template, validate,lib adlı 5 adet dizin bulunur
2:44 AM her modulun config dizini içerisinde kimi global yapılandırma parametrelerini sadece o modul için özelleştirmek için kullanılır
me: o folder bende boş ama routing yml orayada koysam kendi içinde değişik url ler yapabilirim demi ?
selamtux: yok
o global
2:45 AM me: peki configde neler budaklanabilir
selamtux: modul için view.yml'ı kullanabilirsin mesela
yada security.yml'ı
hepsi aklıma gelmiyo şimdi idare et zate bunlar işimizi görecektir
2:46 AM me: he
selamtux: validate içerisinde ise formlardan yada url'den gelen verileri kontrol etmek için kullanırız
2:47 AM actions içerisinde actions.class.php isimli bir dosya bulunur
template içerisinde ise indexSuccess.php isimli dosya bulunur
bunlar ilk modulu oluşturduğumuzda symfony tarafından yerleştirilir
2:48 AM biz actions.class.php'yi düzenleyerek ve templates içerisinde template dosyaları oluşturarak işimizi hallederiz
me: hajı soru gelio
selamtux: ok
me: bu actions.class.php de en sonuna php kapama şeyi yok
2:49 AM neden
?>
bi kısım dosyadada var
selamtux: symfony içerisindeki tğm dosyalarda bu yok
me: neden nasıl
selamtux: yane yeni versiyonlarında yok
eğer ?> olmadan dosya sonu işareti gelirse php parse etmeyi bırakır
ayrıca ?> belirtmeye gerek yoktur
2:50 AM ama kod düzgün olmalı
me: hmm ben dededen kalma yolları biliom o açıdan bu yeni geldi :D
selamtux: yani if(){ dedin bıraktın php carlar sana
ok.
banada öyle gelmişti bende koymuştum hepsine
sonradan öğrendim :D
2:51 AM şimdi, ne yapacağız?
me: ben siteyi gösterimmi bi düşünelim üstünde
selamtux: yok dur o kadarına gerek yok
şimdi daha temeldeyiz
me: he o zaman napacık
2:52 AM selamtux: şimdi birde bizim apps/frontend/templates dizini içerisinde layout.php diye bir dosyamız var
onu editleyeceğik ilk olarak
ve template'imizin header'ını koyacağık
bu dosya global bir dosyadır
2:53 AM ve actions'dan sonra çalıştırılır
şimdi ilk iş template'in header'ını bu dosya içerisinde belirtmek
2:54 AM me: head bölümü zaten var
include_http_metas()
direk alıo burdan
selamtux: yok yane banner cart curt gibi sayfanın en üstünde bulunan sabit ve değişmeyecek hedeler
2:55 AM menu, şu bu vs.
birde footer
2:56 AM template'in ana yapısını kuralım diye şey ediyom ben
:D
me: ok koyam
selamtux: kontrol et de düzgün dursun :D
2:57 AM sonra bir modul daha oluşturacaz, adı main olsun
2:58 AM me: templati kaybettim :D
selamtux: ok siktiret :D
2:59 AM neyi yapalım o zaman?
ana siteyi yapalım
me: olur
selamtux: ana sayfayı pardon
şuna bi bak
selamtux: ok baktım
3:00 AM me: her bokunun değiştirilebilir cinsinden bi nane düşünüom
selamtux: şimdi buradaki sabitleri o dosyaya aktaracak öylemi?
me: yani menü büyüyebilir
ingilizce almanca yapılabilir
selamtux: ok
şimdi ilk iş
3:01 AM me: neydir
selamtux: ee ben görüyom template'i?
http://sifavi.com/index.php burada?
me: onu nereye koycam şimdilik onu geç
3:02 AM ben sonra sabitleri toplarım içine
mesele dinamizim zaten gerisi kolay
selamtux: eminmisin en zor kısmı bak :D
neyse ok o hald ana sayfayı yazalım
me: yok yaw o işin kolayı
selamtux: yaz konsoldan symfony module frontend main
3:03 AM me: hangi dizinde
selamtux: / dizinde
c:\httpdocs\web içerisinde
symfony.bat'ın olduğu dizinde
3:04 AM me: ok hata vermedi
tokens dir file falan yazdı
selamtux: sonra da apps/frontend/config/routing.yml dosyasını aç
homepage:
url: / li satırı bu
url: / li satırı bu
bul
me: buldum
oraya mainmi eklicez
3:05 AM selamtux: param: lı satırda ne yazıyo?
me: param: { module: default, action: index }
selamtux: ok, default yazanı main ile değiştir
kaydet
kapat
me: ok
selamtux: sonrada symfony cc komutunu ver
3:06 AM me: ok
chmod falan yaptı burda
selamtux: şimdi www.yourdomain.com/ a bir istek yapıldığında main modulundeki index method'u çalışacak
ok ok yapar o
me: win32 bozmasın şimdi serverda çalışırmı bunlar
selamtux: çalışır
3:07 AM me: Module main
Congratulations!
Congratulations!
:D
bunu gördümdü
selamtux: şimdi apps/module/main/actions içerisindeki actions.class.php dosyasını aç
içerisinde public function executeIndex() li satırı bul
3:08 AM me: ok
selamtux: ok şimdi ana sayfa için ne yapmak istiyoruz?
onu bi de sen bana bakem
me: sol ana menü dinamik olan
selamtux: (bu arada sanırım veri tabanında değişiklik yapacaz tam emin değilim ama sanırım yane)
me: bide oraya tıklayınca content bölgesi nde istenenler listelenecek
3:09 AM selamtux: yok oky onları geç
me: misal bitkiye tıklayanda bitkiler listelencek
selamtux: content'de ilk ne çıkacak
ilk sayfa açıldığında
me: sabit bir yazı hiç bi yere tıklamadıysa selam kelam yazsın mesela
selamtux: hoşgeldiniz falan gibi bişiyler mi?
me: he
selamtux: bu veri tabanındanmı alınacak yoksa sabitmi olacak?
3:10 AM me: veri tabanı olsa tam süper olur tabi çok dil desteğinide unutmadan
selamtux: hard coded yane?
ok
şimdi bunları tutacak bir tabloya ihtiyacımız var o vakit
3:11 AM o tablomuz varmı bizmi oluşturacaz?
me: oluşturuom
selamtux: ok
ama create etme
bana yolla yapıyı değiştirmemiz gerekiyor
me: napim ?
ok
selamtux: sana nedenini anlatacam
önce yapıyı değiştirelim
3:12 AM me: bi dk şimdi bu table ana sayfa yazısı içinmi olcek sadece
menüleri falan kapsayan bi olay olsa ?
3:13 AM selamtux: hıms olabilir tabe nasıl tasarladığına bakar olay
menuleri ayrı tabloda tutmak daha mantıklı gibi, alt menu olayından dolayı
3:14 AM me: hmm
hazırı yok dimi bununda
:D
selamtux: şöyle bişi işini görür gibi geliyo, id, moduleName,actionsName, title,body
3:15 AM title, ana başlık, body'de bu site ne iş yapar falan filan
tabe sen daa iyi biliyin emmi :D
oy oy oy böyle ne kadar zor oluyormuş olay yaws :D
3:16 AM yane anlatmak
me: menuler için bi tabel yapam du bakem
3:17 AM selamtux: ok,
id,parent_id, title,link,
id,parent_id, title,link,
:D
is_active, created_at de eklersen iyi olur
3:18 AM me: amını sikim desem yeridir :D
derse anlam kattı :D
3:19 AM selamtux: create table menu( id integer auto_increment primary key, parent_id integer, title varchar(255) not null, is_active boolean default false, created_at timestamp);
gibi bişi olmazmı?
salladım tamamen :D
3:20 AM onlar sabit de olur istersen eğer
me: DROP TABLE IF EXISTS `base`.`menus`;
CREATE TABLE `base`.`menus` (
`id` int(10) unsigned NOT NULL auto_increment,
`name` varchar(100) NOT NULL,
`preface_text` text NOT NULL COMMENT 'alt menülerde ufak bi tanım yazisi tepede',
`table_name` varchar(255) NOT NULL COMMENT 'alt menuler aslinda table daki bir kolondur.',
`table_column_name` varchar(255) NOT NULL COMMENT 'alt menu table dan alinacak column name',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE `base`.`menus` (
`id` int(10) unsigned NOT NULL auto_increment,
`name` varchar(100) NOT NULL,
`preface_text` text NOT NULL COMMENT 'alt menülerde ufak bi tanım yazisi tepede',
`table_name` varchar(255) NOT NULL COMMENT 'alt menuler aslinda table daki bir kolondur.',
`table_column_name` varchar(255) NOT NULL COMMENT 'alt menu table dan alinacak column name',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
açık mı yeterince anlatimmi yapıyı
selamtux: i18n için hangi sütunların değişmesi gerekiyo ?
3:21 AM yane almancası, ingilizcesi vs. si için
me: alt table daki kolonun içindekileri
hmm
i18n için sanırım en mantıklısı yeni table olacakdır
mesela menus_en
btikiler_en gibi
çünkü menü aslında direk table a bağlı
3:22 AM selamtux: zate bunu ikiye bölecez onun için dedim oluşturma tabloyu diye :D
me: adam bitki ye basınca gidip bitikler table dan name kolonu alınacak
oluşturmadım say sen nesini bölcez ?
selamtux: bak şimdi ben sana sallama bir tablo yapam
3:23 AM xml'li yollayacam anlarsın sanırım
3:25 AM
<table name="menus" isI18N="true" i18nTable="menus_i18n">
<column name="id" type="bigint" required="true" primaryKey="true" autoincrement="true" />
<column name="is_enabled" type="boolean" default="false" required="true" description="is disabled or enabled pointer" />
<column name="created_at" type="timestamp" required="true" description="menu record date" />
</table>
<table name="menus" isI18N="true" i18nTable="menus_i18n">
<column name="id" type="bigint" required="true" primaryKey="true" autoincrement="true" />
<column name="is_enabled" type="boolean" default="false" required="true" description="is disabled or enabled pointer" />
<column name="created_at" type="timestamp" required="true" description="menu record date" />
</table>
3:26 AM <table name="menus_i18n">
<column name="id" type="bigint" required="true" primaryKey="true" />
<foreign-key foreignTable="menus" onDelete="CASCADE">
<reference local="id" foreign="id"/>
</foreign-key>
<column name="culture" isCulture="true" type="varchar" size="7" required="true" primaryKey="true" />
<column name="name" size="50" />
</table>
<column name="id" type="bigint" required="true" primaryKey="true" />
<foreign-key foreignTable="menus" onDelete="CASCADE">
<reference local="id" foreign="id"/>
</foreign-key>
<column name="culture" isCulture="true" type="varchar" size="7" required="true" primaryKey="true" />
<column name="name" size="50" />
</table>
me: hmm
3:27 AM selamtux: şimdi aslında bu şöyle bir tablonun bölünmüş hali,
id, is_enabled, created_at, culture, name
id, is_enabled, created_at, culture, name
me: senin dediğin menu table ına bide i18 takalım ordan çoklu dili sokalımmı diosun
selamtux: aynen
me: bana uzun gördündü dediğim daha kolay amma sensin hoca
3:28 AM selamtux: bu symfony için daha kolay
me: ne yapam şimdi bunumu oluşturim benim db ye
selamtux: oluşturma :D
me: ok
selamtux: bunu senin schema.xml dosyası içerisine ekle
3:29 AM ilerde değiştirmek gerekebilir ona göre düşün
me: nerde o dosya
selamtux: config içerisinde
c:\httpdocs\web\config
3:30 AM kaydet çık,
3:31 AM me: ok
selamtux: sonra aynı dizindeki propel.ini dosyasına "propel.mysql.tableType = InnoDB" satıırını ekle en sona
3:32 AM sonrada symfony propel-build-model komutunu ver
sonrada symfony propel-build-sql komutunu ver
3:33 AM me: ok
selamtux: hepsi bittimi?
me: propel ne demek acaba
evet bitti
selamtux: lib'in adı
ok şimdi c:\httpdocs\web\data\sql\ içerisinde bi dosya olması lazım
sonu sql ile biten
onu aç
3:34 AM sonrada içerisindeki monus tablolarını veri tabanında oluştur
menus pardon
menus ve menus_i18n
me: menus yok burda desem
3:35 AM selamtux: sen o sana yolladğım satırları schema.xml'e koymadın mı?
me: koydum
selamtux: alla alla bi yanlışlık var
3:36 AM schema.xml'i ve oluşan sql dosyasını yollasana bi
me: hacı gtalkdan dosya yollayamıom
selamtux: ha pardon
me: sende bi ayarmıdır ?
selamtux: yok, gaimden sanırım
3:38 AM alla alla delirecem hiç hata vermeden bitti mi tüm komutlar?
build finished gördünmü ikisindede ?
symfony propel-build-sql
symfony propel-build-model
3:40 AM me: çıktıda hata yok
ama menus de yok
selamtux: çıktıyı paste et bi bana
symfony propel-build-sql
bu komutun çıktısını
tamamını
3:41 AM me: C:\Program Files\Apache Group\Apache2\htdocs\web>symfony propel-build-sql
>> file+ C:\Program Files\Apache Group\A...e2\htdocs\web\config\pro1A0.tmp
Buildfile: C:\Program Files\Apache Group\Apache2\htdocs\web\data\symfony\bin\bui
ld.xml
sf > build-sql:
[phing] Calling Buildfile 'C:\Program Files\Apache Group\Apache2\htdocs\web\
lib\symfony\vendor\propel-generator\build.xml' with target 'sql'
[resolvepath] Resolved config to C:\Program Files\Apache Group\Apache2\htdocs\we
b\config
propel-project-builder > check-project-or-dir-set:
propel-project-builder > check-project-set:
propel-project-builder > set-project-dir:
propel-project-builder > check-buildprops-exists:
propel-project-builder > check-buildprops-for-propel-gen:
propel-project-builder > check-buildprops:
propel-project-builder > configure:
[echo] Loading project-specific props from C:\Program Files\Apache Group\Ap
ache2\htdocs\web\config/pro1A0.tmp
propel-project-builder > sql:
[phing] Calling Buildfile 'C:\Program Files\Apache Group\Apache2\htdocs\web\
lib\symfony\vendor\propel-generator\build-propel.xml' with target 'sql'
propel > check-run-only-on-schema-change:
propel > sql-check:
propel > sql:
[echo] +------------------------------------------+
[echo] | |
[echo] | Generating SQL for YOUR Propel project! |
[echo] | |
[echo] +------------------------------------------+
[phingcall] Calling Buildfile 'C:\Program Files\Apache Group\Apache2\htdocs\web\
lib\symfony\vendor\propel-generator\build-propel.xml' with target 'sql-template'
propel > sql-template:
[propel-sql] Processing: schema.xml
[propel-sql] Writing to SQL file: C:\Program Files\Apache Group\Apache2\htdocs\w
eb\data\sql\schema.sql
[propel-sql] + anti_angig [builder: MysqlDDLBuilder]
[propel-sql] + dictionary [builder: MysqlDDLBuilder]
[propel-sql] + dictionary_types [builder: MysqlDDLBuilder]
[propel-sql] + minerals [builder: MysqlDDLBuilder]
[propel-sql] + plants [builder: MysqlDDLBuilder]
[propel-sql] + plnt_chemical [builder: MysqlDDLBuilder]
[propel-sql] + plnt_medical [builder: MysqlDDLBuilder]
[propel-sql] + plnt_minerals [builder: MysqlDDLBuilder]
[propel-sql] + plnt_vitamins [builder: MysqlDDLBuilder]
[propel-sql] + vitamin [builder: MysqlDDLBuilder]
BUILD FINISHED
Total time: 4.3785 seconds
>> file- C:\Program Files\Apache Group\A...e2\htdocs\web\config\pro1A0.tmp
C:\Program Files\Apache Group\Apache2\htdocs\web>
>> file+ C:\Program Files\Apache Group\A...e2\htdocs\web\config
Buildfile: C:\Program Files\Apache Group\Apache2\htdocs\web\data
ld.xml
sf > build-sql:
[phing] Calling Buildfile 'C:\Program Files\Apache Group\Apache2\htdocs\web\
lib\symfony\vendor\propel
[resolvepath] Resolved config to C:\Program Files\Apache Group\Apache2\htdocs\we
b\config
propel-project-builder > check-project-or-dir-set:
propel-project-builder > check-project-set:
propel-project-builder > set-project-dir:
propel-project-builder > check-buildprops-exists:
propel-project-builder > check-buildprops-for-propel
propel-project-builder > check-buildprops:
propel-project-builder > configure:
[echo] Loading project-specific props from C:\Program Files\Apache Group\Ap
ache2\htdocs\web\config/pro1A0
propel-project-builder > sql:
[phing] Calling Buildfile 'C:\Program Files\Apache Group\Apache2\htdocs\web\
lib\symfony\vendor\propel
propel > check-run-only-on-schema
propel > sql-check:
propel > sql:
[echo] +-----------------------------
[echo] | |
[echo] | Generating SQL for YOUR Propel project! |
[echo] | |
[echo] +-----------------------------
[phingcall] Calling Buildfile 'C:\Program Files\Apache Group\Apache2\htdocs\web\
lib\symfony\vendor\propel
propel > sql-template:
[propel-sql] Processing: schema.xml
[propel-sql] Writing to SQL file: C:\Program Files\Apache Group\Apache2\htdocs\w
eb\data\sql\schema.sql
[propel-sql] + anti_angig [builder: MysqlDDLBuilder]
[propel-sql] + dictionary [builder: MysqlDDLBuilder]
[propel-sql] + dictionary_types [builder: MysqlDDLBuilder]
[propel-sql] + minerals [builder: MysqlDDLBuilder]
[propel-sql] + plants [builder: MysqlDDLBuilder]
[propel-sql] + plnt_chemical [builder: MysqlDDLBuilder]
[propel-sql] + plnt_medical [builder: MysqlDDLBuilder]
[propel-sql] + plnt_minerals [builder: MysqlDDLBuilder]
[propel-sql] + plnt_vitamins [builder: MysqlDDLBuilder]
[propel-sql] + vitamin [builder: MysqlDDLBuilder]
BUILD FINISHED
Total time: 4.3785 seconds
>> file- C:\Program Files\Apache Group\A...e2\htdocs\web\config
C:\Program Files\Apache Group\Apache2\htdocs\web>
3:42 AM selamtux: evet demekki schema.xml'de yanlışlık yapmışız
me: msn e bak
selamtux: onun içeriği nedir? onuda bir paste etsene menus tablolarının olduğu kısmından sonrasını
3:43 AM me: msn den dosyayı atıom odamı görünmüo
selamtux: bişi demiyo msn?
me: mal işde
:D
selamtux: :D
3:45 AM <table name="menus" isI18N="true" i18nTable="menus_i18n">
<column name="id" type="bigint" required="true" primaryKey="true" autoincrement="true" />
<column name="is_enabled" type="boolean" default="false" required="true" description="is disabled or enabled pointer" />
<column name="created_at" type="timestamp" required="true" description="menu record date" />
</table>
<table name="menus_i18n">
<column name="id" type="bigint" required="true" primaryKey="true" />
<foreign-key foreignTable="menus" onDelete="CASCADE">
<reference local="id" foreign="id"/>
</foreign-key>
<column name="culture" isCulture="true" type="varchar" size="7" required="true" primaryKey="true" />
<column name="name" size="50" />
</table>
</table>
<column name="id" type="bigint" required="true" primaryKey="true" autoincrement="true" />
<column name="is_enabled" type="boolean" default="false" required="true" description="is disabled or enabled pointer" />
<column name="created_at" type="timestamp" required="true" description="menu record date" />
</table>
<table name="menus_i18n">
<column name="id" type="bigint" required="true" primaryKey="true" />
<foreign-key foreignTable="menus" onDelete="CASCADE">
<reference local="id" foreign="id"/>
</foreign-key>
<column name="culture" isCulture="true" type="varchar" size="7" required="true" primaryKey="true" />
<column name="name" size="50" />
</table>
</table>
olm table içinde iken başka bi table daha açmışsın
:D
3:46 AM yanlış yere paste etmişsin :D
me: anladım
selamtux:
</table>
</table>
</database>
</table>
</table>
</database>
me: aşşasına koydum hata verdi
selamtux: ok
me: :D
selamtux: ne hata verdi ?
3:47 AM me: Execution of target "sql-template" failed for the following reason: C:\Program F
iles\Apache Group\Apache2\htdocs\web\lib\symfony\vendor\propel-generator\build-p
ropel.xml:153:1: You have specified autoIncrement for column 'id' but you have n
ot specified idMethod="native" for table 'menus'.
[phingcall] C:\Program Files\Apache Group\Apache2\htdocs\web\lib\symfony\vendor\
propel-generator\build-propel.xml:153:1: You have specified autoIncrement for co
lumn 'id' but you have not specified idMethod="native" for table 'menus'.
iles\Apache Group\Apache2\htdocs\web\lib
ropel.xml:153:1: You have specified autoIncrement for column 'id' but you have n
ot specified idMethod="native" for table 'menus'.
[phingcall] C:\Program Files\Apache Group\Apache2\htdocs\web\lib
propel-generator\build-propel.xml:153:1: You have specified autoIncrement for co
lumn 'id' but you have not specified idMethod="native" for table 'menus'.
selamtux: ha ok
3:48 AM en üstten ikinci satır var ya
me: <column name="id" type="bigint" required="true" primaryKey="true" autoincrement="true" />
3:49 AM selamtux: <database name="propel"> satırını <database name="propel" defaultIdMethod="native"> ile değiştir
yemezse <table name="menus" satırına ve <table name="menus_i18n" satırına IdMethod="native" ekle
3:50 AM me: Warning: mysql_escape_string(): This function is deprecated; use mysql_real_esca
pe_string() instead. in C:\Program Files\Apache Group\Apache2\htdocs\web\lib\sym
fony\vendor\propel-generator\classes\propel\engine\platform\MysqlPlatform.php on
line 95
Warning: mysql_escape_string(): This function is deprecated; use mysql_real_esca
pe_string() instead. in C:\Program Files\Apache Group\Apache2\htdocs\web\lib\sym
fony\vendor\propel-generator\classes\propel\engine\platform\MysqlPlatform.php on
line 95
[propel-sql] + menus_i18n [builder: MysqlDDLBuilder]
pe_string() instead. in C:\Program Files\Apache Group\Apache2\htdocs\web\lib
fony\vendor\propel-generator
line 95
Warning: mysql_escape_string(): This function is deprecated; use mysql_real_esca
pe_string() instead. in C:\Program Files\Apache Group\Apache2\htdocs\web\lib
fony\vendor\propel-generator
line 95
[propel-sql] + menus_i18n [builder: MysqlDDLBuilder]
warning verdi ama yaptı galiba sql e bakıom hemen
3:51 AM hee yapık
bu create leri çalıştırıom ok ?
selamtux: ok
3:52 AM me: tamamdır
selamtux: birde symfony propel-build-model yap, ardından hemen birde symfony cc yap
şimdi hemen sana bişi anlatayım,
şimdi senin bu menu hedeleri var ya
me: bitti
selamtux: aslında bunlar categoriler ya
me: evet
3:53 AM selamtux: ok bunlar birde her sayfada var ya
me: evet
selamtux: o nedenle bunlar bir actions olamazlar
actionslar ile ana content içeriğini değiştirebilirsin sadece
3:54 AM yane orta alanı
diğerleri sabit zaten
me: ok
selamtux: peki bu durumda ne yapacağık
bu durumda bize component denen bi yapı yardımcı olacak
3:55 AM me: module değil yani
selamtux: evet
me: bu arada laluda 3gb ı geçmiş içerik
selamtux: ama şu varki bu componentler module ile birlikte kullanılabilinirler ve actionlar içerisinden "çağırılamazlar"
me: :D
3:56 AM hajı teorik değil pratik yapalım
selamtux: yane module yapısı içerisindedir componentler
ok
me: ok
saat sabahın 4 ü kalmaz bunlar aklımda
selamtux: şimdi apps/frontend/module/main/actions içerisine git bir dosya oluştur adı components.class.php olsun
3:57 AM me: done
3:59 AM selamtux:
<?php
class mainComponents extends sfComponents
{
public function executeMenus()
{
return sfView::SUCCESS;
}
}
<?php
class mainComponents extends sfComponents
{
public function executeMenus()
{
return sfView::SUCCESS;
}
}
bunları içerisine kopyala
me: done
4:00 AM selamtux: ok şimdi apps/frontend/template içerisindeki layout.php'yi aç
içersine bir yere <?php include_component('main', 'menus') ?> yaz
4:01 AM sonrada c:\localhost\web\web'e bir git
pardon http://localhost/web/web
olacak..
4:02 AM me: exception aldık
:)
selamtux: evet peki neden aldık?
ve ne güzel bir exception aldık değilmi :D
me: [sfRenderException]
The template "C:\Program Files\Apache Group\Apache2\htdocs\web\apps\frontend\modules/main/templates/_menus.php" does not exist or is unreadable
The template "C:\Program Files\Apache Group\Apache2\htdocs\web\apps
muhahahahhaa
selamtux: evet bu dosyayı oluştur şimdi
4:03 AM sonra tekrar refresh et
şimdi hiç bişi olmayacak eskisi gibi çalışacak her bişi
ama ekranda bişi çıkmayacak
şimdi yapmamız gereken veri tabanından verileri alıp göstermek (lik etapta)
ilk etapta
hadi yapalım
4:04 AM me: ok exception gitti
selamtux: components.class.php dosyasına geri dönelim
return satırını silelim
ve şunu yazalım
4:05 AM me: executeMenus bu nerden geldiki acaba
selamtux: $c = new Criteria(); //Yeni bir select kriteri oluştururalım
$c->add(MenusPeer::IS_ACTIVE, true); //sadece true olanları alalım
$this->menus = MenusPeer::doSelectWithI18N($c);
$c->add(MenusPeer::IS_ACTIVE, true); //sadece true olanları alalım
$this->menus = MenusPeer::doSelectWithI18N($c
4:06 AM biz yazdık ya lan
me: biz yazdıkda adını diyorum
böyle isim şeyimi var piyasada
4:07 AM selamtux: var nedennini de anlatırım ama sonra :D
me: hah işde bende onu diom :D
bizde bilioz biz yazdık aq
4:08 AM selamtux: şimdi c:\httpdocs\web\lib\model\ içerisinde Menus.php dosyasını aç
içerisine şuınu yaz
me: Fatal error: Undefined class constant 'IS_ACTIVE' in C:\Program Files\Apache Group\Apache2\htdocs\web\apps\frontend\modules\main\actions\components.class.php on line 7
selamtux: public function hydrate(ResultSet $rs, $startcol = 1)
{
parent::hydrate($rs, $startcol);
$this->setCulture(sfContext::getInstance()->getUser()->getCulture());
}
{
parent::hydrate($rs, $startcol);
$this->setCulture(sfContext:
}
4:09 AM ok pardon IS_ENABLED olacak IS_ACTIVE değil
4:10 AM me: [wrapped: mysql extension not loaded [User Info: Array]]
selamtux: hönk?
bu nereden çıktı ?
me: arada bakim dedim bunu dedi
selamtux: du bi sn.
4:11 AM me: ok
selamtux: şimdi en son ne yaptık
hydrate'i ekledik dimi?
me: hydrate
evet
4:12 AM selamtux: apps/frontend/config/i18n.yml 'ı aç. içerisine şunları yaz
all:
default_culture: en
debug: off
default_culture: en
debug: off
4:13 AM
all:
default_culture: en
debug: off
all:
default_culture: en
debug: off
sonra symfony cc komutunu ver
me: verdim
selamtux: cookilerini temizle
kokilerini temizle tarayıcıdan
sonra bir daha çalıştır bakam
4:15 AM hata verdimi ?
me: [PropelException]
[wrapped: mysql extension not loaded [User Info: Array]]
[wrapped: mysql extension not loaded [User Info: Array]]
selamtux: ok.
o hydrate'i comment etsene
me: user info biyerde loadmı olacı
selamtux: $this->setCulture(sfContext::getInstance()->getUser()->getCulture());
burada olacı
4:16 AM ha yok lan
mysql eklentisini bulamıyom diyo php
alla alla
mysql eklentisi yüklü değilmi ?
4:17 AM haaa hım sanırım anladım
bir <?php phpinfo() ?> yapsana sen bi, oradan bi kontrol et mysql eklentisi eklimi değilmi bir bak
4:18 AM değilse php.ini dosyası nerede imiş onu bir bul
me: değil
ama symfony nası okudu db yi
selamtux: anladım
php5'te config dosyalarını ayırabilme yeteneği verdiler
4:19 AM cli için ayrı config dosyası module için ayrı config dosyası çalışabiliyo
php eklentisini ekleyebilicinmi tek başına
:D ana pardon lan özür dilerim küfür gibi olmuş bu
4:20 AM me: beceremeyebilirim usta dur sen
selamtux: bah şimdi c:\php dizinine bir git ne var orada
4:21 AM me: orda tanımlıda zendplatform sikti attı makineyi anasını sikim
ide dir platformdur indirem deneyem dedim yamulttu la
selamtux: yada direk <?php phpinfo() ?> da php.ini dosyasını nereden okuduğunu söyler sana
me: extension=php_mysql.dll
selamtux: o dosyadan extension=mysql.dll'i ekle gitsin
me: sonrada bunu dicen
4:22 AM ekli zaten mesele o :D
selamtux: alla alla
extension_dir= neresi ?
belki orada o dll yoktur
4:23 AM me: var
selamtux: alla alla
4:24 AM me: bu extensionu yükleyende bi blokda mysql için yazıo dimi bu
mssql ming bile yüklü la php de
mysql bloğu yok :D
selamtux: alla alla
deli eder beni böyle şeyler şimdi
me: 3742 mb la lalunun içeriği
selamtux: he dedin
4:25 AM me: yedek alıomda
selamtux: ebeyn mı :D
me: neyse bu symfony bağlandı bu php bağlanamıo ikiside aynı şey halbuki
selamtux: değil :D
la sen phpinfo() da çıkan php.ini'yi buldun dimi başka bi php.ini dosyasına bakıyon gibi geliyo
4:26 AM me: dur bi dk
ne gösterio
pardon
4:28 AM selamtux: açılmıyo :D
me: sonuna 8080 portunu ekle
selamtux: cık
4:29 AM nası cık
selamtux: baya cık
80'den giricik sanırım
ama bağlanılıtyor dedi bekliyor hala
Bağlanma girişimi başarısız
4:30 AM mascix.is-a-chef.net:8080 sunucusuyla bağlantı sağlanamıyor.
selamtux: Site geçici olarak açılamıyor ya da çok meşgul olabilir. Biraz bekleyip yeniden deneyin.
85.105.124.210:8080 sunucusuyla bağlantı sağlanamıyor.
me: amcık modem
reboot istio
4:31 AM selamtux: atacınmı?
yoksa sabahlayacazmı?
4:33 AM me: sesim geliomu :) gelince adrese yine gir
4:34 AM selamtux: C:\Program Files\Zend\ZendPlatform-2.2.3\etc\php.ini
girdim bile
C:\Program Files\Zend\ZendPlatform-2.2.3\etc\php.ini bu dosyaya bak bi birde
me: öyle bi dosya yok artık
:)
uninstall etmişdim
4:36 AM wddx bu neki acep
:D
4:39 AM selamtux: alla alla
bulamadım bi türlü
me: neyi
4:40 AM selamtux: mysql neden yok'u
me: walla onu bende anlamadım
bide dll bulamadım falan diye hata verir mesela bu onuda yapmıo
4:41 AM selamtux: hacı php_mysql'li satırın önünde ";" olmadığına eminmisin?
4:42 AM yane extension=php_mysql.dll'li satırın önünde
4:43 AM birde bişi daha isteyecem senden
me: ekli hajı herşey
selamtux: symfony.bat dosyasında ne yazar hacım
bi paste etsene
4:45 AM me: @echo off
rem ********************************************************************
rem * the symfony build script for Windows based systems (based on phing.bat)
rem ** $Id: symfony.bat 500 2006-01-23 09:15:57Z fabien $
rem *********************************************************************
rem This script will do the following:
rem - check for PHP_COMMAND env, if found, use it.
rem - if not found detect php, if found use it, otherwise err and terminate
rem - check for SYMFONY_HOME evn, if found use it
rem - if not found error and leave
rem - check for PHP_CLASSPATH, if found use it
rem - if not found set it using SYMFONY_HOME/lib
if "%OS%"=="Windows_NT" @setlocal
rem %~dp0 is expanded pathname of the current script under NT
set DEFAULT_SYMFONY_HOME=%~dp0..
goto init
goto cleanup
:init
if "%SYMFONY_HOME%" == "" set SYMFONY_HOME=%DEFAULT_SYMFONY_HOME%
set DEFAULT_SYMFONY_HOME=
if "%PHP_COMMAND%" == "" goto no_phpcommand
if "%PHP_CLASSPATH%" == "" goto set_classpath
goto run
goto cleanup
:run
IF EXIST "C:\php\pear" (
%PHP_COMMAND% -d html_errors=off -qC "C:\php\pear\symfony.php" %1 %2 %3 %4 %5 %6 %7 %8 %9
) ELSE (
%PHP_COMMAND% -d html_errors=off -qC "%SYMFONY_HOME%\bin\symfony.php" %1 %2 %3 %4 %5 %6 %7 %8 %9
)
goto cleanup
:no_phpcommand
REM echo ------------------------------------------------------------------------
REM echo WARNING: Set environment var PHP_COMMAND to the location of your php.exe
REM echo executable (e.g. C:\PHP\php.exe). (Assuming php.exe on Path)
REM echo ------------------------------------------------------------------------
set PHP_COMMAND=php.exe
goto init
:err_home
echo ERROR: Environment var SYMFONY_HOME not set. Please point this
echo variable to your local symfony installation!
goto cleanup
:set_classpath
set PHP_CLASSPATH=%SYMFONY_HOME%\lib
goto init
:cleanup
if "%OS%"=="Windows_NT" @endlocal
REM pause
rem ******************************
rem *
rem ** $Id: symfony.bat 500 2006-01-23 09:15:57Z fabien $
rem ******************************
rem This script will do the following:
rem - check for PHP_COMMAND env, if found, use it.
rem - if not found detect php, if found use it, otherwise err and terminate
rem - check for SYMFONY_HOME evn, if found use it
rem - if not found error and leave
rem - check for PHP_CLASSPATH, if found use it
rem - if not found set it using SYMFONY_HOME/lib
if "%OS%"=="Windows_NT" @setlocal
rem %~dp0 is expanded pathname of the current script under NT
set DEFAULT_SYMFONY_HOME=%~dp0..
goto init
goto cleanup
:init
if "%SYMFONY_HOME%" == "" set SYMFONY_HOME=%DEFAULT_SYMFONY
set DEFAULT_SYMFONY_HOME=
if "%PHP_COMMAND%" == "" goto no_phpcommand
if "%PHP_CLASSPATH%" == "" goto set_classpath
goto run
goto cleanup
:run
IF EXIST "C:\php\pear" (
%PHP_COMMAND% -d html_errors=off -qC "C:\php\pear\symfony.php" %1 %2 %3 %4 %5 %6 %7 %8 %9
) ELSE (
%PHP_COMMAND% -d html_errors=off -qC "%SYMFONY_HOME%\bin\symfony
)
goto cleanup
:no_phpcommand
REM echo ------------------------------
REM echo WARNING: Set environment var PHP_COMMAND to the location of your php.exe
REM echo executable (e.g. C:\PHP\php.exe). (Assuming php.exe on Path)
REM echo ------------------------------
set PHP_COMMAND=php.exe
goto init
:err_home
echo ERROR: Environment var SYMFONY_HOME not set. Please point this
echo variable to your local symfony installation!
goto cleanup
:set_classpath
set PHP_CLASSPATH=%SYMFONY_HOME%
goto init
:cleanup
if "%OS%"=="Windows_NT" @endlocal
REM pause
4:48 AM selamtux: alla alla
deliricim
acaba haksal bir mevzumu
dosya hakları hesabı
birde daha önceden yüklü değilse sen şimdi yükledi isen apache restart isteyebilir
4:49 AM me: çözecim şimdi
selamtux: hacı yatacıkmı yoksam sabahlayacıkmı?
4:50 AM birde bu böyle olmuyo bunu gelip anlatmak daha bi iyi gibi geliyo bana, uzaktan uzaktan zor harbiden
neyse çöz hade bekliyom
me: yatmam ben daha yatarsam kalkamıom
selamtux: ulan varya ben bu windows'un taaaa
4:52 AM me: dll leri kaldırdım extension yükle dio bu hala hata vermio
buda garip
selamtux: he vermez
4:53 AM ama apache loglarına falan yazıyo sanırım
6 minutes |
4:59 AM me: kahve koyam
PHP Warning: PHP Startup: Unable to load dynamic library 'c:/php/ext\\php_mysql.dll' - The specified module could not be found.\r\n in Unknown on line 0
5:00 AM budur son nokta
5:02 AM selamtux: hacım kahvem yok
gücüm kalmadı göz kapaklarım kapanıyo
:(
me: sen uyu hajı
selamtux: eğer çözersen
eksik kalan şey şu
me: sonra devam ederiz
selamtux: hydrate'i yeniden açacaz
5:03 AM sonra _menu.php miz vardı ya
onu editleyecez
şunun gibi bişi yazacaz
5:04 AM <?php foreach($menus as $menu): ?>
<?php echo $menu->getName() ?>
<?php endforeach; ?>
<?php echo $menu->getName() ?>
<?php endforeach; ?>
sonrada db'ye kayıt girecez
me: anladım sağolasın
5:05 AM selamtux: tabe sadece o kadarlık bir foreach döngüsü değil
biraz daha karışık olacak
me: div leri falanmı sokacaz araya
selamtux: aynen
birde link'i nasıl yapacaz onu belirleyecen
o kadar
me: ok saol iyi geceler ben kahve koyam devam :)
5:06 AM selamtux: <div class="main-navigation"> <!-- Navigation Level 3 --> <div class="round-border-topright"> </div> <h1 class="first"> Menü</h1> <!-- Navigation with grid style --> <dl class="nav3-grid"> <dt><a href="?main_category=1">Bitkiler</a></dt> <dt><a href="?main_category=2">Vitaminler</a></dt> <dt><a href="?main_category=3">Mineraller</a></dt> <dt><a href="?main_category=4">Anti Aging</a></dt> <dt><a href="?main_category=5">Sözlük</a></dt> </dl
5:07 AM yuh amma karışık gönderdi sana
37 minutes |
5:44 AM me: taamdır
:)
Subscribe to:
Posts (Atom)