am losing my mind  ... i am making the blogs i told u about , but with
images and videos  .. but every post gets all the images and
videos  .. whyyyyy :(( :: like this


here is my Code   please guys help me . am going crazy


................................................................................
db.py:
import datetime
now=datetime.datetime.today()



db.define_table('blogposts',
               SQLField('title', length=64),
               SQLField('author', default=session.username),
               SQLField('datetime', 'datetime',default=now),
               SQLField('post', 'text'),
               SQLField('numcomments', 'integer',default=0))





db.blogposts.title.requires = [IS_NOT_EMPTY(),
IS_NOT_IN_DB(db,db.blogposts.title)]
db.blogposts.author.requires = IS_NOT_EMPTY()
db.blogposts.post.requires = IS_NOT_EMPTY()

db.define_table('blogcomments',
                SQLField('url', default=''),
                SQLField('blogpost_id'), # the blogpost this comment
belongs to
                SQLField('email', default='y...@something.com'),
                SQLField('author'),
                SQLField('datetime', 'datetime',default=now),
                SQLField('comment', 'text'))

db.blogcomments.author.requires = IS_NOT_EMPTY()
db.blogcomments.comment.requires = IS_NOT_EMPTY()
db.blogcomments.email.requires = IS_EMAIL()

db.define_table('image',Field('blog_id',db.blogposts),Field('title'),Field('discription','text'),Field('image','upload'))

db.image.title.requires = IS_NOT_IN_DB(db, db.image.title)
db.image.blog_id.requires = IS_IN_DB(db, db.blogposts.id, '%
(title)s')

db.define_table('youtube',Field('blog_id',db.blogposts),Field('title'),Field('discription','text'),Field('code'))
db.youtube.title.requires = IS_NOT_IN_DB(db, db.youtube.title)
db.youtube.blog_id.requires = IS_IN_DB(db, db.blogposts.id, '%
(title)s')

db.define_table('vimo',Field('blog_id',db.blogposts),Field('title'),Field('discription','text'),Field('code'))
db.vimo.title.requires = IS_NOT_IN_DB(db, db.vimo.title)
db.vimo.blog_id.requires = IS_IN_DB(db, db.blogposts.id, '%(title)s')


............................................................................................................................
controler:
# -*- coding: utf-8 -*-
# this file is released under public domain and you can use without
limitations

#########################################################################
import datetime

def getpostsandcomments():

    blogposts = db().select(db.blogposts.ALL,
orderby=~db.blogposts.datetime)
    blogposts_numcomments = db().select(db.blogposts.ALL,
orderby=~db.blogposts.numcomments|~db.blogposts.datetime)
    commentsnposts = db(db.blogcomments.blogpost_id ==
db.blogposts.id)
    comments = commentsnposts.select(db.blogcomments.author,
db.blogcomments.blogpost_id, db.blogposts.title,
orderby=~db.blogcomments.datetime)
    images=db(db.image.blog_id==db.blogposts.id).select(db.image.ALL)
 
youtube=db(db.youtube.blog_id==db.blogposts.id).select(db.youtube.ALL)
    vimo=db(db.vimo.blog_id==db.blogposts.id).select(db.vimo.ALL)
    return dict(blogposts=blogposts,
blogposts_numcomments=blogposts_numcomments,
comments=comments,images=images,youtube=youtube,vimo=vimo)

#########################################################################
def createblogpost():

        myd = getpostsandcomments()
 
form=SQLFORM(db.blogposts,fields=['title','post','author','video','audio'])
        if form.accepts(request.vars,session):
         response.flash='new blogpost inserted'
         redirect('/' + request.application + "/default/index")
        myd['form'] = form
        return myd

def index():

    return getpostsandcomments()

def createblogpost():

        myd = getpostsandcomments()
        form=SQLFORM(db.blogposts,fields=['title','post','author'])
        if form.accepts(request.vars,session):
         response.flash='new blogpost inserted'
         redirect('/' + request.application + "/default/index")
        myd['form'] = form
        return myd



def showblogpost():
    images=db(db.image.blog_id ==
db.blogposts.id).select(db.image.ALL)
    youtube=db(db.youtube.blog_id ==
db.blogposts.id).select(db.youtube.ALL)
    vimo=db(db.vimo.blog_id == db.blogposts.id).select(db.vimo.ALL)
    myd = getpostsandcomments()

    blogid = request.args[0]
    singleblogpost = db(db.blogposts.id == blogid).select()[0]
    singleblogpost_comments = db(db.blogcomments.blogpost_id ==
blogid).select(orderby=~db.blogcomments.datetime)

    db.blogcomments.blogpost_id.default=singleblogpost.id
    form=SQLFORM(db.blogcomments,fields=['author', 'email',
'comment'],labels={'author':'Your Name', 'email':'Your email address',
'comment':'Comment'})
    if form.accepts(request.vars,session):
        blogpostupdate=db(db.blogposts.id==blogid).select()
        if len(blogpostupdate)>0:
 
blogpostupdate[0].update_record(numcomments=blogpostupdate[0].numcomments
+ 1)
        redirect('/' + request.application + "/default/showblogpost/"
+ str(singleblogpost.id) + "#Reader_Comments")

    myd['form'] = form
    myd['singleblogpost'] = singleblogpost
    myd['singleblogpost_comments'] = singleblogpost_comments
    return myd
    return dict(images=images,youtube=youtube,vimo=vimo)

def user():
    """
    exposes:
    http://..../[app]/default/user/login
    http://..../[app]/default/user/logout
    http://..../[app]/default/user/register
    http://..../[app]/default/user/profile
    http://..../[app]/default/user/retrieve_password
    http://..../[app]/default/user/change_password
    use @auth.requires_login()
        @auth.requires_membership('group name')
        @auth.requires_permission('read','table name',record_id)
    to decorate functions that need access control
    """
    return dict(form=auth())


def download():
    """
    allows downloading of uploaded files
    http://..../[app]/default/download/[filename]
    """
    return response.download(request,db)


def call():
    """
    exposes services. for example:
    http://..../[app]/default/call/jsonrpc
    decorate with @services.jsonrpc the functions to expose
    supports xml, json, xmlrpc, jsonrpc, amfrpc, rss, csv
    """
    return service()


@auth.requires_signature()
def data():
    """
    http://..../[app]/default/data/tables
    http://..../[app]/default/data/create/[table]
    http://..../[app]/default/data/read/[table]/[id]
    http://..../[app]/default/data/update/[table]/[id]
    http://..../[app]/default/data/delete/[table]/[id[
    http://..../[app]/default/data/select/[table]
    http://..../[app]/default/data/search/[table]
    but URLs bust be signed, i.e. linked with
      A('table',_href=URL('data/tables',user_signature=True))
    or with the signed load operator
 
LOAD('default','data.load',args='tables',ajax=True,user_signature=True)
    """
    return dict(form=crud())


.....................................................................................................................................
index.html :

{{extend 'layout.html'}}

    {{#=crud.create(db.image)}}
        <div id="subContent">
          <h3>Most Commented On</h3>
          <ul>
{{for blogpost in blogposts_numcomments:}}
          <li class="statsclass1"><a href={{="/" + request.application
+ "/default/showblogpost/" + str(blogpost.id)}}>{{=blogpost.title}}</
a> ({{=blogpost.numcomments}})</li>
{{pass}}
          </ul>
          <p />
          <h3>Recent Comments</h3>
          <ul>
{{for comment in comments:}}
          <li class="statsclass1"><a href={{="/" + request.application
+ "/default/showblogpost/" + str(comment.blogcomments.blogpost_id) +
"#Reader_Comments"}}>{{=comment.blogcomments.author}}</a> on <a
href={{="/" + request.application + "/default/showblogpost/" +
str(comment.blogcomments.blogpost_id)}}>{{=comment.blogposts.title}}</
a></li>
{{pass}}
          </ul>
        </div>

{{for blogpost in blogposts:}}
        <div class="article" >
            <h2>{{=blogpost.title}}</h2>
            <i><span style="color : #666666;">{{=blogpost.datetime}}</
span></i>
            <div style="margin-left:200px"> <p><b>

            {{=XML(blogpost.post)}}
            </p></b></div>

{{for photo in images:}}
<div style="width:200px ; margin-left:200px">
<div style="width:200px;margin-left:50px">
     <p><b>{{=XML(photo.title)}}</b></p>
     </div>
<img width="200px"
     src="{{=URL('download', args=photo.image)}}" />
     <div style="width:200px;margin-left:50px">
     <p>{{=XML(photo.discription)}}</p>
     </div>
     <div>
{{pass}}
</br>
{{for you in youtube:}}
<div style="width:200px;margin-left:150px">
     <p><b>{{=XML(you.title)}}</b></p>
     </div>
{{=plugin_wiki.widget('youtube',code='' + XML(you.code))}}
<div style="width:200px;margin-left:150px">
     <p>{{=XML(you.discription)}}</p>
     </div>
{{pass}}

{{for v in vimo:}}
<div style="width:200px;margin-left:150px">
     <p><b>{{=XML(v.title)}}</b></p>
     </div>
{{=plugin_wiki.widget('vimeo',code='' + XML(v.code))}}
<div style="width:200px;margin-left:150px">
     <p>{{=XML(v.discription)}}</p>
     </div>
{{pass}}



            <ul class="comments">
            <li><a href="http://www.facebook.com";><img src="/
AZEZ_BLOGS/static/images/Facebook-logo-100x100.png" width="40px"
height="40px" ></img></a></li>
            <li><a href="http://www.vimeo.com";><img src="/AZEZ_BLOGS/
static/images/th_vimeo-icon.png" width="40px" height="40px" ></img></
a></li>
            <li><a href="http://www.youtube.com";><img src="/AZEZ_BLOGS/
static/images/youtube-icon.png" width="40px" height="40px" ></img></
a></li>
                <li>Posted by <a
href={{='mailto:whoe...@wherever.com'}}>{{=blogpost.author}}</a> | </
li>
                <li><a href={{="/" + request.application + "/default/
showblogpost/" + str(blogpost.id) + "#Reader_Comments"}}
>{{=blogpost.numcomments}}</a> comments | </li>
                <li><a href={{="/" + request.application + "/default/
showblogpost/" + str(blogpost.id)}}>permalink</a></li>
            </ul>
        </div>
{{pass}}

Reply via email to