Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Modyfikacja skryptu demotywatory
kamiel911
post 24.12.2010, 15:13:44
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 24.12.2010

Ostrzeżenie: (0%)
-----


Witam wszystkich Uzytkownikow forum. Jestem tu nowy,wiec prosze o wyrozumialosc. Mam nadzieje ze zalozylem temat w odpowiednim mijescu.

Pobralem taki skrypt klona demotywatorow: http://hotfile.com/dl/57450212/00bd3db/Dem...neNapr.rar.html
Chcialbym go zmodyfikowac w ten sposob, by uzytkownik mogl dodawac dwa zdjecia, ktore umieszczane bylyby na wspolnym tle, tworzac jeden 'demotywator'.
W temacie php raczkuję. Przez miesiac probowalem jakos uporac sie z tym problemem,ale jakos nie bardzo mi to wychodzi. Chociaz przy okazji nauczylem sie wiele.

Chcialem zapytac jak zabrac sie do modyfikowania tego skryptu? Od czego zaczac? Czy jako poczatkujacy, w ogole jestem w stanie poradzic sobie z takim problemem?

Dziekuje za wszystkie podpowiedzi.
Go to the top of the page
+Quote Post
Kshyhoo
post 24.12.2010, 15:27:49
Post #2





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Chętnie Ci pomożemy, ale "pomożemy" a nie zrobimy za Ciebie. Wklej kod, z którym masz problemy...


--------------------
Go to the top of the page
+Quote Post
kamiel911
post 24.12.2010, 15:42:52
Post #3





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 24.12.2010

Ostrzeżenie: (0%)
-----


Wlasnie o pomoc mi chodzi:)

doszedlem do wniosku ze z dodawaniem zdjec laczy sie kilka dokumentow i tak naprawde nie wiem w ktorym musze zrobic poprawki. Probowalem w sumie we wszystkich ale nic mi nie wyszlo:

glowny plik to:
  1. <?php echo $form->create('Post',array('url'=>array('controller'=>'front','action'=>'add'),'type'=>'file'));
  2. if(!$session->check('step2')):
  3. if($session->check('img') and !$session->check('step2')):
  4. ?>
  5. <img style="margin: 0 132px 30px;" src="<?php echo $dir; ?>pic/sess/<?php echo $session->read('img').'-1'.$session->read('hash').'.jpg'; ?>" />
  6. <?php elseif(!$session->check('img') and !$session->check('step2')): ?>
  7. <?php echo $form->input('Post.img',array('type'=>'file','label'=>'Obrazek','size'=>48)); ?>
  8. <?php endif; ?>
  9. <?php
  10. echo $form->input('Post.title',array('label'=>'Tytuł','onmouseover'=>'this.focus();'));
  11. echo $form->input('Post.body',array('type'=>'textarea','label'=>'Opis','onmouseover'=>'this.focus();'));
  12. ?>
  13. <div class="submit">
  14. <?php if($session->check('img') and !$session->check('step2')): ?><input type="submit" name="data[Post][cancel1]" value="Wyczyść" /><?php endif; ?><input type="submit" name="submit" value="Dalej ť" />
  15. </div>
  16. </form>
  17.  
  18. </div>
  19.  
  20. <?php
  21. else:
  22. ?>
  23. <img src="<?php $dir; ?>pic/sess/<?php echo $session->read('img').'-2'.$session->read('hash').'.jpg'; ?>" />
  24. <?php
  25. $tags = $this->requestAction('front/randomTagCloud');
  26. $tagCloud = $tag->create($tags);
  27. $tagCloud = $tag->shuffleTags($tagCloud);
  28. $cloud = null;
  29.  
  30. foreach($tagCloud as $tagName=>$tagValue) {
  31. $cloud .=
  32. "<a href='#' onClick='addTag(this); return false;' style='font-size:".$tagValue['size']."%; cursor: pointer;' title='".$tagName."'>".$tagName."</a> ";
  33. }
  34. ($tags == false) ? $after = null: $after = '<br /><br />'.$cloud;
  35. echo $form->input('Post.tag',array('label'=>'Tagi','between'=>'(rozdzielaj spacjami)<br />','after'=>$after, 'onmouseover'=>'this.focus();'));
  36. ?>
  37. <div class="submit">
  38. <input type="submit" name="data[Post][cancel2]" value="Ť Popraw" /><input type="submit" name="submit" value="Dodaj ť" />
  39. </div>
  40. </form>
  41. <?php
  42. endif;
  43. $cloud;
  44. ?>





funkcja add:


  1. public function add() {
  2. App::import('Sanitize');
  3. $this->pageTitle .= ' - Dodaj';
  4. if($this->data) {
  5. $u = $this->Upload;
  6. $s = $this->Session;
  7. if(isset($this->data['Post']['cancel1'])) {
  8. @unlink(WWW_ROOT.'pic/sess/'.$s->read('img').'-1'.$s->read('hash').'.jpg');
  9. $this->Post->id =(int) $s->read('id');
  10. $this->Post->delete();
  11. $s->delete('step2');
  12. $s->delete('id');
  13. $s->delete('img');
  14. $s->delete('hash');
  15. $this->redirect($this->referer());
  16. }
  17. if(isset($this->data['Post']['cancel2'])) {
  18. @unlink(WWW_ROOT.'pic/sess/'.$s->read('img').'-2'.$s->read('hash').'.jpg');
  19. $s->del('step2');
  20. return;
  21. }
  22. if((int)$s->read('Auth.User.active')===2) {
  23. $s->setFlash('Twoje konto jest nieaktywne, potwierdź adres email.');
  24. $this->redirect($this->referer());
  25. }
  26.  
  27. $tag = trim($this->data['Post']['tag']);
  28. (!empty($tag)) ? $tag = explode(' ',$tag): $tag = null;
  29.  
  30. if(!$s->check('step2')) {
  31. if(!$s->check('img')) {
  32. $u->upload($this->data['Post']['img']);
  33. } else {
  34. $u->upload(WWW_ROOT.'pic/sess/'.$s->read('img').'-1'.$s->read('hash').'.jpg');
  35. }
  36. if($u->uploaded) {
  37. if($s->check('img')) {
  38. $now = $s->read('img');
  39. } else {
  40. $now = time();
  41. }
  42. if($s->check('hash')) {
  43. $hash = $s->read('hash');
  44. } else {
  45. $hash = $this->Pwd->alphaNumPass();
  46. $s->write('hash',$hash);
  47. }
  48. $title = $this->data['Post']['title'];
  49. $body = trim($this->data['Post']['body']);
  50. $body = explode("\n",$body);
  51. $body[0] = trim($body[0]);
  52. $_size = 0;
  53. $_tsize = 0;
  54. if(!isset($body[1])) {
  55. $_size += 19;
  56. $_tsize += 11;
  57. } elseif((bool)(isset($body[1]) and !isset($body[2]))) {
  58. $_size += 8;
  59. }
  60. $u->file_new_name_body = 'img';
  61. $u->allowed = array('image/*');
  62. $u->image_convert = 'png';
  63. $u->image_resize = true;
  64. $u->image_x = 440;
  65. $u->image_safe_name = false;
  66. $u->image_ratio_y = true;
  67. $res = $u->process();
  68. $img = imagecreatefromstring($res);
  69. imagejpeg($img,WWW_ROOT.'pic/sess/'.$now.'-1'.$s->read('hash').'.jpg',100);
  70. imagedestroy($img);
  71. unset($res);
  72. $u->allowed = array('image/*');
  73. $u->image_convert = 'png';
  74. $u->image_resize = true;
  75. $u->image_x = 436;
  76. $u->image_ratio_y = true;
  77. $u->image_border_color = '#FFFFFF';
  78. $u->image_border = '2px 2px 2px 2px';
  79. $res = $u->process();
  80. if($u->processed) {
  81. $img = imagecreatefromstring($res);
  82. unset($res);
  83. $height = ($u->image_dst_y + 138);
  84. $bg = imagecreatetruecolor(500,$height);
  85. imagecopy($bg, $img,30,30,0,0,440,$height);
  86. $black = imagecolorallocate($bg,0,0,0);
  87. $white = imagecolorallocate($bg,255,255,255);
  88. $font = WWW_ROOT.'fonts/DejaVuSerif.ttf';
  89. $bbox = imagettfbbox(18,0,$font,$title);
  90. $x = $bbox[0] + (imagesx($bg) / 2) - ($bbox[4] / 2);
  91. $y = ($u->image_dst_y + 58 + $_tsize);
  92. imagettftext($bg,18,0,$x,$y,$white,$font,$title);
  93. $bbox = imagettfbbox(10,0,$font,$body[0]);
  94. $x = $bbox[0] + (imagesx($bg) / 2) - ($bbox[4] / 2);
  95. $y = ($u->image_dst_y + 78 + $_size);
  96. imagettftext($bg,10,0,$x,$y,$white,$font,$body[0]);
  97.  
  98. if(isset($body[1])) {
  99. $body[1] = trim($body[1]);
  100. $bbox = imagettfbbox(10,0,$font,$body[1]);
  101. $x = $bbox[0] + (imagesx($bg) / 2) - ($bbox[4] / 2);
  102. $y = ($u->image_dst_y + 96 + $_size);
  103. imagettftext($bg,10,0,$x,$y,$white,$font,$body[1]);
  104. }
  105. if(isset($body[2])) {
  106. $body[2] = trim($body[2]);
  107. $bbox = imagettfbbox(10,0,$font,$body[2]);
  108. $x = $bbox[0] + (imagesx($bg) / 2) - ($bbox[4] / 2);
  109. $y = ($u->image_dst_y + 114);
  110. imagettftext($bg,10,0,$x,$y,$white,$font,$body[2]);
  111. }
  112. $gray = imagecolorallocate($bg,80,80,80);
  113. $bbox = imagettfbbox(8,0,$font,$_SERVER['HTTP_HOST']);
  114. $x = $bbox[0] + (imagesx($bg) / 2) - ($bbox[4] / 2);
  115. $y = ($u->image_dst_y + 134);
  116. imagettftext($bg,8,0,$x,$y,$gray,$font,$_SERVER['HTTP_HOST']);
  117. imagejpeg($bg, WWW_ROOT.'pic/sess/'.$now.'-2'.$s->read('hash').'.jpg',100);
  118. imagedestroy($img);
  119. imagedestroy($bg);
  120. if(!$s->check('id')) {
  121. $this->Post->create();
  122. } else {
  123. $this->Post->id =(int) $s->read('id');
  124. }
  125. $this->Post->set('public',2);
  126. $this->Post->save(array(
  127. 'Post'=>array(
  128. 'id'=>$this->Post->id,
  129. 'user_id'=>$this->Session->read('Auth.User.id'),
  130. 'title'=>Sanitize::html($title),
  131. 'body'=>Sanitize::html($this->data['Post']['body']),
  132. 'img'=>'pic/'.$now.'-'.$hash.'.jpg'),
  133. 'public' => 2
  134. )
  135. );
  136. $s->write('id',$this->Post->id);
  137. $s->write('step2',true);
  138. $s->write('img',$now);
  139. return;
  140. } else {
  141. $s->setFlash('Nie można wgrać zdjęcia.');
  142. return;
  143. }
  144. }
  145. } else {
  146. $u->upload(WWW_ROOT.'pic/sess/'.$s->read('img').'-2'.$s->read('hash').'.jpg');
  147. if($u->uploaded) {
  148. $u->image_convert = 'jpg';
  149. $u->jpeg_quality = 100;
  150. $u->file_safe_name = false;
  151. $u->file_new_name_body = $s->read('img').'-'.$s->read('hash');
  152. $u->process(WWW_ROOT.'/pic/');
  153. if($u->processed) {
  154. @unlink(WWW_ROOT.'pic/sess/'.$s->read('img').'-1'.$s->read('hash').'.jpg');
  155. @unlink(WWW_ROOT.'pic/sess/'.$s->read('img').'-2'.$s->read('hash').'.jpg');
  156. unset($img,$img2);
  157. $this->Post->id =(int) $s->read('id');
  158. $this->Post->set('public', 0);
  159. $this->Post->set('created',date('Y-m-d H:i:s',strtotime('now')));
  160. $this->Post->set('modified',date('Y-m-d H:i:s',strtotime('now')));
  161. $this->Post->save();
  162. if(!empty($tag)) {
  163. $tag = array_unique($tag);
  164. foreach($tag as $k=>$v) {
  165. if($k==(int) $this->getOpt('max_tags'))
  166. break;
  167. $v = trim($v);
  168. $v = strip_tags($v);
  169. $t = $this->Tag->findByName($v);
  170. if($t) {
  171. $this->PostsTag->create();
  172. $this->Tag->id=$t['Tag']['id'];
  173. $this->Tag->save(array('Tag'=>array('post_count'=>($t['Tag']['post_count']+1))));
  174. $this->PostsTag->save(array('PostsTag'=>array('post_id'=>$this->Post->id,'tag_id'=>$t['Tag']['id'])));
  175. continue;
  176. }
  177. $this->Tag->create();
  178. $this->Tag->save(array('Tag'=>array('name'=>trim($v),'post_count'=>1)));
  179. $this->PostsTag->create();
  180. $this->PostsTag->save(array('PostsTag'=>array('post_id'=>$this->Post->id,'tag_id'=>$this->Tag->id)));
  181. }
  182. }
  183. $s->del('id');
  184. $s->del('step2');
  185. $s->del('img');
  186. $s->del('hash');
  187. $this->redirect('/view/'.$this->Post->id);
  188. }
  189. }
  190. }
  191. }
  192. }
  193.  




Ponadto jest jeszcze dlugi plik o nazwie "upload",ale nie wiem czy jest on niezbedny. Probowalem to kopiowac, dodawac podobna funkcje add2 itp. ale nie przynioslo to skutku.
Go to the top of the page
+Quote Post
emajl22
post 24.12.2010, 15:47:15
Post #4





Grupa: Zarejestrowani
Postów: 273
Pomógł: 21
Dołączył: 28.11.2010

Ostrzeżenie: (10%)
X----


Cytat(kamiel911 @ 24.12.2010, 15:13:44 ) *
Chcialem zapytac jak zabrac sie do modyfikowania tego skryptu? Od czego zaczac? Czy jako poczatkujacy, w ogole jestem w stanie poradzic sobie z takim problemem?


Cytat(Kshyhoo @ 24.12.2010, 15:27:49 ) *
Chętnie Ci pomożemy, ale "pomożemy" a nie zrobimy za Ciebie. Wklej kod, z którym masz problemy...


NAUCZ SIĘ CZYTAĆ ZE ZROZUMIENIEM, A POMÓC TO CHYBA TRZEBA TOBIE



--------------------
Go to the top of the page
+Quote Post
kamiel911
post 24.12.2010, 15:57:17
Post #5





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 24.12.2010

Ostrzeżenie: (0%)
-----


Ze zrozumieniem nie umiesz czytac chyba Ty. Jezeli nie masz nic tworczego do dodania to nie zabieraj glosu. Twoja zale, krzyki i mysli bładzace gdzies w intelektualnym brodziku naprawde nikogo nie interesuja. Zaznaczylem w pierwszym poscie ze nie wiem od czego zaczac i chcialbym by ktos mnie naprowadzil.

Go to the top of the page
+Quote Post
markonix
post 24.12.2010, 17:11:22
Post #6





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


Zacznij od znalezienia odpowiedzialnego pliku.
Znajdziesz go w adresie paska przeglądarki (może to być plik albo akcja przekazana GETem typu ?action=add).


--------------------
Go to the top of the page
+Quote Post
Mephistofeles
post 24.12.2010, 20:05:59
Post #7





Grupa: Zarejestrowani
Postów: 1 182
Pomógł: 115
Dołączył: 4.03.2009
Skąd: Myszków

Ostrzeżenie: (0%)
-----


Myślę, że raczej chodzi tu o samo includowanie wielu plików, na to nie ma rady, choć można przy dobrym IDE podejrzeć fragment pliku, w którym funkcja/klasa się znajduje i przejść do tej deklaracji.
Go to the top of the page
+Quote Post
nekomata
post 24.12.2010, 20:56:34
Post #8





Grupa: Zarejestrowani
Postów: 314
Pomógł: 44
Dołączył: 12.11.2010
Skąd: UK

Ostrzeżenie: (0%)
-----


Skoro wiele się nauczyłeś to powiem ci tak... łatwiej będzie ci to napisać od nowa(przynajmniej ja bym tak zrobił) sam się dopiero uczę ale zauważyłem ze jak mam napisać skrypt od nowa to łatwiej mi przychodzi niż edycja czyjegoś,dodatkowo dokładnie wiesz jak ma wyglądać cel.. tylko zaplanuj czynności.Żeby nie było ze ci nie pomogę to ci napisze jak ja bym to rozplanował.
1.Upload obrazków. klik
2.Sprawdzenie wielkości obrazków.( biblioteka gd, getimagesize etc. klik )
3.Skalowanie(if większy od x etc... skaluj jeśli jest mniejszy zrób jakiś padding albo coś... potem znowu gd.)
3.Najłatwiej otwórz sobie tło pod całego "demota" i nałóż najpierw pierwszy obrazek potem na "nałożony" nakładasz następny..
4.zapisujesz do pliku,dodajesz wpis do bazy etc.

No jak widać po mojej rozpisce to nie taki trudny ten skrypt..(z moimi kiepskimi umiejętnościami prawdopodobnie mógłbym go zrobić.. chociaż używałbym pomocy wujka google z 20 razy.
Dziękuję za uwagę mam na dzieję że pomogłem.
Go to the top of the page
+Quote Post
darko
post 24.12.2010, 21:02:34
Post #9





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Dokładnie tak jak napisał ~Mephistofeles zainstaluj dobre IDE z podpowiadaniem składni i nie będziesz miał problemów, co gdzie się znajduje. Przytrzymujesz ctrl lub shift i klikasz na dany obiekt i od razu otwiera się właściwy skrypt z definicją klasy. Polecam eclipse lub netbeans.


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
kamiel911
post 24.12.2010, 23:50:03
Post #10





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 24.12.2010

Ostrzeżenie: (0%)
-----


Dziekuje za wszytskie porady. Z tego co zrozumialem zalecacie pisanie skryptu od nowa,tak? obecnie korzystam z programu php designer.
Go to the top of the page
+Quote Post
darko
post 25.12.2010, 02:02:44
Post #11





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Cytat(kamiel911 @ 24.12.2010, 23:50:03 ) *
Dziekuje za wszytskie porady. Z tego co zrozumialem zalecacie pisanie skryptu od nowa,tak? obecnie korzystam z programu php designer.

Jeśli chcesz/musisz zrobić jakiekolwiek poprawki w skrypcie, którego kodu nie rozumiesz, to najlepiej byłoby, żebyś napisał od nowa swój własny skrypt, podpatrując przy tym, w jaki sposób ktoś inny podszedł do problemu. Przynajmniej się czegoś nauczysz. Inna sprawa to kwestia tego czy masz czas na pisanie od nowa.


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
kamiel911
post 26.12.2010, 21:10:14
Post #12





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 24.12.2010

Ostrzeżenie: (0%)
-----


A edycja tego skryptu to bardzo skomplikowana sprawa? Nie mozna w miare prsoto napisac nowa funkcje np add2? Zmieniajac kilka parametrow?
Go to the top of the page
+Quote Post
240volt
post 1.06.2011, 22:41:17
Post #13





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 31.05.2011

Ostrzeżenie: (0%)
-----


kamiel911 czy wiesz jak w tym skrypcie zmienić tytuł tak aby zamiast tekstu widniał obrazek, tu daje przykład o co mi chodzi http://xxx.host4u.pl/
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 16.06.2025 - 23:21